声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 3498|回复: 3

[FFT] FFT对信号补零与不补零的疑问

[复制链接]
发表于 2010-11-19 15:23 | 显示全部楼层 |阅读模式
20体能
第一个例子:
       N  = 15;
       w1  = window(@rectwin,N);
       Out1=abs(fftshift(fft(w1,256)));%256点FFT,相当于补零256-15点
       plot(Out1);
这样可以得到很漂亮的频谱,和教科书上的一样
如果不补零,如下
       N  = 256;%或者N=15
       w1  = window(@rectwin,N);
       Out1=abs(fftshift(fft(w1,N)));%
       plot(Out1);
得到的谱线很难看,不会出现教科书上那样的谱线

第二个例子,信号x10由长度为L的余弦信号部分,以及6000-L个零组成,比如L=200,可以得到很好的谱图。如下:
L=200;%L=200;%改变L的大小分别为10,20,40,100
f1=2000;
f2=2500;
f3=3000;
fs=10000;
t=0:1/fs:0.6-1/fs;
xt=cos(2*pi*f1*t)+cos(2*pi*f2*t)+cos(2*pi*f3*t);
len=length(xt);
zerow=zeros(1,len-L);
xt10=[xt(1:L),zerow];
figure('name','加方窗的时间信号'),plot(t,xt10);%不加窗等于加方窗
ft10=fft(xt10);
figure('name','加方窗的频谱'),plot(abs(fftshift(ft10)));
n=0:length(xt10)-1;
wn=0.54-0.46*cos(2*pi*n/(L-1));
xtw10=xt10.*wn;
%xtw10=[xt(1:L).*wn,zerow];
figure('name','加海明窗的时间信号'),plot(t,xtw10);
ftw10=fft(xtw10);
figure('name','加海明窗的频谱'),plot(abs(fftshift(ftw10)));

但是如果L=6000,即不补零,如果不补零,那么我无法比较不同的窗对信号频谱的影响,因为得到的结果都一样了。

最佳答案

查看完整内容

主要是想解决或了解什么,目的不一样,手段当然也是不一样的。LZ想要比较矩形窗和海明窗的差别。而在程序中信号的频率都和谱线相重合,两种窗的旁瓣正因为信号的频率和谱线相重合,各旁瓣都在栅栏效应栅栏的空挡内,看不到,无法观察到矩形窗的旁瓣与海明窗的旁瓣是完全不同的,以及矩形窗的旁瓣影响的严重性。为了能了解这些特性,就应该补零,补零后使栅栏效应各栅栏加密,能显示出旁瓣影响。
回复
分享到:

使用道具 举报

发表于 2010-11-19 15:23 | 显示全部楼层
主要是想解决或了解什么,目的不一样,手段当然也是不一样的。LZ想要比较矩形窗和海明窗的差别。而在程序中信号的频率都和谱线相重合,两种窗的旁瓣正因为信号的频率和谱线相重合,各旁瓣都在栅栏效应栅栏的空挡内,看不到,无法观察到矩形窗的旁瓣与海明窗的旁瓣是完全不同的,以及矩形窗的旁瓣影响的严重性。为了能了解这些特性,就应该补零,补零后使栅栏效应各栅栏加密,能显示出旁瓣影响。
回复

使用道具 举报

发表于 2010-11-21 20:48 | 显示全部楼层
楼主想问什么?
回复

使用道具 举报

 楼主| 发表于 2010-11-23 16:46 | 显示全部楼层
多谢楼上的
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-15 06:29 , Processed in 0.148137 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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