声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1568|回复: 2

[综合] 求助!频谱校正法

[复制链接]
发表于 2007-6-14 13:05 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
烦劳各位大侠帮我修改个简单的程序;谢谢
%%%不补偿,根据离散频谱时移相位差校正法(多个频率),取点从1:2N.第一段取1:N;第二段取N+1:2N
clc;clear;close all;
N=1024;
w=2*pi/N;
m=1:6;
f(m)=[15.2 50 150 156.5 250 350]         %%%实际频率
n=1:2*N;
a1=0.08*310;a2=310;a3=0.2*310;a4=0.05*310;a5=0.14*310;a6=0.12*310;
x=a1*sin(w*f(1)*n+10*pi/180)+a2*sin(w*f(2)*n+5*pi/180)+a3*sin(w*f(3)*n+20*pi/180)+a4*sin(w*f(4)*n+150*pi/180)+a5*sin(w*f(5)*n+120*pi/180)+a6*sin(w*f(6)*n-150*pi/180);  %%%采样序列  2n个点
x1=x(1:N);   %%%序列1
win=hanning(N)';
xin1=x1.*win;  %%%加窗
     Faw1=fft(xin1);  %%%是除窗还是除N
    phase_ap1=angle(Faw1);
    subplot(2,1,1)
    stem(abs(Faw1),'.')
   
x2=x(N+1:2*N);  %%%序列2
xin2=x2.*win;     %%%加窗
    Faw2=fft(xin2);
    phase_ap2=angle(Faw2);
    subplot(2,1,2)
    stem(abs(Faw2),'.')  %%%纵坐标是??
%%%
kk=1:N
  delta_phase(kk)=phase_ap2(kk)-phase_ap1(kk)-2*pi*kk;
   ph(kk)=mod(delta_phase(kk),2*pi);
  if ph(kk)>pi
      ph(kk)=ph(kk)-2*pi;
  else if ph(kk)<-pi
      ph(kk)=ph(kk)+2*pi;
  end
  delta(kk)=ph(kk)/(2*pi);     %%%归一化的频谱校正量  
fre(kk)=kk+delta(kk);  %%% 估计频率
Ri=real(Faw1);Ii=imag(Faw1)
phase_ap=arctan(Ii/Ri)+delta_phase(kk)  %%% 估计相位
Ai=faw1/W(delta)   %%% 估计幅值  ( W(delta) 是窗函数的频谱模函数)
disp('真实频率')
f(m)
disp('估计频率')  %%%估计频率有1024个???
fre(kk)
disp('估计相位')
phase_ap
disp('估计幅值')   %%%
Ai
回复
分享到:

使用道具 举报

发表于 2007-6-14 13:52 | 显示全部楼层
做校正的时候不需要对所有的谱线都做校正,而是在有频率的地方才做校正,这些频率用寻峰得到
发表于 2007-6-14 16:08 | 显示全部楼层
版主已在http://forum.vibunion.com/forum/thread-41740-1-1.html中给出了重心法的修正程序,楼主可参考一下修改自已程序。

[ 本帖最后由 zhlong 于 2007-6-14 16:25 编辑 ]

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-7-3 21:35 , Processed in 0.089000 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表