声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1492|回复: 0

[FFT] 求实测信号FFT之后得到的正确幅值和相位,很困惑啊

[复制链接]
发表于 2011-8-29 14:41 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 期待着一天 于 2011-8-29 19:53 编辑

file:///C:/Documents%20and%20Settings/Administrator/桌面我用传感器实测了一组数据,转速是6000转/分,FFT之后应该得到信号的频率是100HZ,因为我的采样频率是20000HZ,采样数一般为2的整数幂,所以就使信号不是整周期采样,要想得到正确的频率,幅值和相位,必须通过频率校正,我在下面的程序中用的是比值校正法,但是程序运行的结果,频率只有97和90多一点,并且校正之后还不如不校正的好,我不知道程序那里不对还是这个频谱校正的方法不适合?下面是程序,希望大侠们仔细阅读提出修改,不胜感激。数据在附件里) 1024x.txt (66.02 KB, 下载次数: 8)
function bizhi1()
close all;clear all;clc  
Fs=20000;N=2048;
t =(0:N-1)/Fs;
tt=0:N-1;
hanning=0.5-0.5*cos(2*pi*tt/N);%汉宁窗的表达式
x=load('1024x.txt');
x=x(1:N)
x_hanning=x'.*hanning;
y = fft(x);
yh=fft(x_hanning);
Y=y(1:N/2)/N*2;
Yh=yh(1:N/2)/N*2;
f = Fs/2*linspace(0,1,N/2);
A=abs(Y);
Ah=abs(Yh);
subplot(221);stem(f,A(1:N/2));title('加矩形窗未校正');
subplot(222);stem(f,2*Ah(1:N/2));title('加汉宁窗未校正');%作图函数中的2倍是幅值恢复系数
%加矩形窗
[Amax,k]=max(A);
phmax=angle(Y(k));
if A(k-1)>A(k+1);
    deltf=1/(1+A(k)/A(k-1));
    f0=(k-1-deltf)*Fs/N    %校正后频率
    am=Amax/sinc(deltf)     %校正后幅值
    ph=(phmax+pi*deltf)*180/pi  %校正后相位
else A(k-1)<A(k+1);
    deltf=1/(1+A(k)/A(k+1));
    f0=(k-1+deltf)*Fs/N
    am=Amax/sinc(deltf)
    ph=(phmax-pi*deltf)*180/pi
end
A(k)=am;f(k)=f0;
subplot(223);stem(f,A(1:N/2));title('加矩形窗校正后');
%加汉宁窗
[Amaxh,kh]=max(Ah);
phmaxh=angle(Yh(kh));
if Ah(kh-1)>Ah(kh+1);
    deltfh=(Ah(kh)/Ah(kh-1)-2)/(1+Ah(kh)/Ah(kh-1));
    f0h=(kh-1+deltfh)*Fs/N
    amh=2/sinc(deltfh)*Amaxh*(1-deltfh^2)
    phh=(phmaxh-pi*deltfh)*180/pi
else Ah(kh-1)<Ah(kh+1);
    deltfh=(Ah(kh)/Ah(kh+1)-2)/(1+Ah(kh)/Ah(kh+1));
    f0h=(kh-1-deltfh)*Fs/N
    amh=2/sinc(deltfh)*Amaxh*(1-deltfh^2)
    phh=(phmaxh+pi*deltfh)*180/pi
end
Ah(kh)=amh;f(kh)=f0h;
subplot(224);stem(f,Ah(1:N/2));title('加汉宁窗校正后');
tu.jpg
f0 =
   96.1969
am =
    0.5659
ph =
  116.4117
f0h =
   96.0570
amh =
    0.6109
phh =
  121.8247

回复
分享到:

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-17 07:21 , Processed in 0.053933 second(s), 21 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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