声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1635|回复: 10

[FFT] zoomfft 密集频率成分的频谱校正方法

[复制链接]
发表于 2015-6-8 18:03 | 显示全部楼层 |阅读模式

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

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

x
假设给定信号 x=cos(2*pi*256.4*t+40*pi/180)+5*cos(2*pi*256.9*t+60*pi/180);
频率,幅值,相位的程序
回复
分享到:

使用道具 举报

 楼主| 发表于 2015-6-8 18:06 | 显示全部楼层
function [f,xz,xzt1,fl]=ZoomFFT6081(x,fs,N,fe,D,L,M)
k=1:M;                          
w=0.5+0.5*cos(pi*k/M);          %Hanning窗

fl=max(fe-fs/(4*D),-fs/2.2);%细化频率上线
fh=min(fe+fs/(4*D),fs/2.2);%细化频率下线

yf=D*fl;         %移频量
df=fs/D/N;
f=fl:df:fl+(N/2-1)*df;
xz=zeros(1,N/2);

wl=2*pi*fl/fs;
wh=2*pi*fh/fs;
hr(1)=(wl-wh)/pi;
hr(2:M+1)=(sin(wl*k)-sin(wh*k))./(pi*k).*w;
hi(1)=0;
hi(2:M+1)=(cos(wl*k)-cos(wh*k))./(pi*k).*w;
k=0:N-1;
w=0.5-0.5*cos(2*pi*k/N);
for i=1:L
     for k=1:N
         kk=(k-1)*D+M+(i-1)*N;
         xrz(k)=x(kk+1)*hr(1)+sum(hr(2:M+1).*(x(kk+2:kk+M+1)+x(kk:-1:kk-M+1)));
         xiz(k)=x(kk+1)*hi(1)+sum(hi(2:M+1).*(x(kk+2:kk+M+1)-x(kk:-1:kk-M+1)));
     end
     xzt=(xrz+j*xiz).*exp(-j*2*pi*(0:N-1)*yf/fs);
     xzt=xzt.*w;
     xzt=xzt-sum(xzt)/N;
     xzt1=fft(xzt);
     xz=xz+(abs(xzt1(1:N/2))/N*2).^2;
end
xz=(xz/L).^0.5;
 楼主| 发表于 2015-6-8 18:07 | 显示全部楼层
D=100;
M=500;
t=(0:D*N+2*M)/fs;
   x=cos(2*pi*256.4*t+40*pi/180)+5*cos(2*pi*256.9*t+60*pi/180);
[f,xz,xzt1,fl]=ZoomFFT6081(x,fs,N,256,D,1,M);
plot(f,xz);

频谱和幅值基波可以算的。但相位怎么求的?????
 楼主| 发表于 2015-6-9 11:14 | 显示全部楼层

,快快来人啊。。。。
发表于 2015-6-9 15:55 | 显示全部楼层
顶一个,跪求大神啊
 楼主| 发表于 2015-6-11 22:42 | 显示全部楼层
 楼主| 发表于 2015-6-11 22:42 | 显示全部楼层
 楼主| 发表于 2015-6-11 22:42 | 显示全部楼层
 楼主| 发表于 2015-6-11 22:43 | 显示全部楼层
 楼主| 发表于 2015-6-15 16:27 | 显示全部楼层
 楼主| 发表于 2015-6-15 16:28 | 显示全部楼层
您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

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

GMT+8, 2024-11-13 11:53 , Processed in 0.072455 second(s), 17 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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