原因
栅栏效应简明地说就是做FFT的点数过少,使得产生的频谱看起来不连续
分析
现在举个例子:信号fun为f1=5、f2=4的余弦信号之和,采样频率fs=100,时域采样点数N为100,分别进行100点FFT、50点FFT、10点FFT
clc;clear all;close all; fs=100; f1=5; f2=4; N=100; n=0:N-1; x=n/N*fs; fun=cos(2*pi*f1*n/fs)+cos(2*pi*f2*n/fs); figure;subplot(411);plot(fun);title('时域信号'); re1=fft(fun); subplot(412);plot(x,abs(re1));xlabel('频率(Hz)');title('100点FFT'); re3=fft(fun,50); x=(0:49)/50*fs;%只做了50点FFT,所以频率点只有0-49共50 subplot(413);plot(x,abs(re3));xlabel('频率(Hz)');title('50点FFT'); re2=fft(fun,10); x=(0:9)/10*fs;%只做了10点FFT,所以频率点只有0-9共10 subplot(414);plot(x,abs(re2));xlabel('频率(Hz)');title('10点FFT');
讯享网
可以看到,当FFT点数过小时,不仅频率分辨能力下降,频谱图也显得不连续
10点FFT频谱图看起来不连续的原因在于:此时的频谱图只由10个离散点来表示,数据少便忽略了很多细节,这个可以体现在横轴的划定:x=(0:9)/10*fs一共才10 点。
而到本质来说是:当FFT点数N过小时,频域的采样间隔
太大,导致了栅栏效应。此处参考了其他文章。
注意:matlab中,假如FFT点数小于时域信号长度,那么将会对时域信号进行截断到FFT点数再做FFT。所以上面的FFT点数N是等同于截断后的时域信号长度

解决办法
从分析阶段可以知道,解决栅栏效应的根本办法就是增加FFT点数。而实际上鉴于matlab对于处理FFT的方式,通常会采取增加时域信号采样点数,再做对应长度的FFT来实现

增加时域信号采样点数有两种方式:
- 补0(并不会增加实际信号的长度)
- 增加时域信号的实际长度
两者的区别在于下图:

现在举个例子:信号fun为f1=5、f2=4的余弦信号之和,采样频率fs=100,由
以及

可知,fun周期为100

进行如下操作:
- 截断信号的0.1周期,进行10点FFT;
- 截断信号0.1周期,并补零50点,进行60点FFT;
- 截断信号的0.6周期(相当于截断0.1T再增加50点数据),进行60点FFT;
讯享网fs=100; f1=5; f2=8; %周期T=100 %取0.1T N=10; n=0:N-1; x=(0:9)/N*fs; fun=[sin(2*pi*f1*n/fs)+sin(2*pi*f2*n/fs)]; figure; subplot(321);plot(fun);title('原始信号'); q=abs(fft(fun,10)); subplot(322);plot(x,q);xlabel('频率(Hz)');title('原信号的10点FFT'); %进行50点补0 N=10; n=0:N-1;%实际数据长度0-10 x=(0:59)/60*fs;%补0后长度0-59 fun=[sin(2*pi*f1*n/fs)+sin(2*pi*f2*n/fs),zeros(1,50)]; subplot(323);plot(fun);title('补0后(补50)'); q=abs(fft(fun,60)); subplot(324);plot(x,q);xlabel('频率(Hz)');title('补0信号的60点FFT'); %进行50点延长 N=100; n=0:N-1; x=(0:59)/N*fs; fun=[sin(2*pi*f1*n/fs)+sin(2*pi*f2*n/fs)]; subplot(325);plot(fun);title('增加实际长度'); q=abs(fft(fun,60)); subplot(326);plot(x,q);xlabel('频率(Hz)');title('增长信号的60点FFT');

- 观察①与②,虽都不能分辨出两种频率,但②明显比①光滑,即缓解了栅栏效应。所以补0能够使频谱图光滑,一定程度上减小了栅栏效应的影响。
- 将②与③对比,发现补0,并做对应点数的FFT并不能够分辨出两个频率,即频率分辨率没有提升。
总结下来就是:通过补0和增加时域信号的实际长度提高FFT点数能够减清栅栏效应的影响,但补0并不会提高频率分辨率

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/43454.html