caichengtao 发表于 2007-8-30 21:49

汉宁窗函数的fft变换问题(附程序)??

%%%程序代码如下:
fs=1000;
t=0:1/fs:0.6;
N=length(t);
f=fs*(0:N-1)./N;
n=0:N-1;
w=0.5+0.5*cos(pi*n/N); %Hanning窗
figure(1);
plot(t,w);
title('窗函数');
xlabel('time');
Y=fft(w,N);
PY = Y.* conj(Y)/N;   %%求幅值
figure(2);
plot(f,PY);         
title('窗函数FFT变换');
xlabel('Frequence');
%%%程序结束

问题:上述程序运行后,得到%Hanning窗的频谱特性,但是发现在0赫兹附近有峰外,在结尾处还有峰,不知道这个分析对不对?结尾的峰值是什么原因?还是应该仅对一半时间显示FFT频谱结果?我猜想是fft系数的对称性,但是发现他们的幅值不一样高啊??请教大家啊!

caichengtao 发表于 2007-8-31 07:58

大家有什么意见啊?

yangzj 发表于 2007-8-31 09:09

首先你程序里的窗只是一半的hanning窗

songzy41 发表于 2007-8-31 09:12

本帖最后由 wdhd 于 2016-9-7 15:34 编辑

原帖由 caichengtao 于 2007-8-30 21:49 发表
%%%程序代码如下:
fs=1000;
t=0:1/fs:0.6;
N=length(t);
f=fs*(0:N-1)./N;
n=0:N-1;
w=0.5+0.5*cos(pi*n/N); %Hanning窗
figure(1);
plot(t,w);
title('窗函数');
xlabel('time');
Y=fft(w,N);
PY ...
问题:上述程序运行后,得到%Hanning窗的频谱特性,但是发现在0赫兹附近有峰外,在结尾处还有峰,不知道这个分析对不对?结尾的峰值是什么原因?还是应该仅对一半时间显示FFT频谱结果?我猜想是fft系数的对称性,但是发现他们的幅值不一样高啊??请教大家啊!
1,楼主给的程序只是一半海宁窗,应改为
w=0.5-0.5*cos(2*pi*n/N);
2,结尾峰值的原因是因对称,应该仅对一半频率(不是时间)显示FFT频谱结果。
3,最后一条谱 线PY(N)对称于PY(2),这两条一样高。

caichengtao 发表于 2007-8-31 14:06

感谢songzy41 !!!通过你的回答,对信号处理有新的认识,知道了为什么采样定理要2倍了啊!振动论坛!!!每天的好朋友!!
页: [1]
查看完整版本: 汉宁窗函数的fft变换问题(附程序)??