您的位置:首页 > 其它

一篇关于fft补零提高频率分辨率的讨论

2012-06-08 16:41 471 查看

这是一篇值得讨论的问题,作者认为补零fft可以提高频率分辨率,并给出了试验结果,可以看出确实提高了对频率细节的观察能力,本人可以肯定这个试验是真实的试验。但是所有的数字信号教课书上都认为补零fft并不能提高频率分辨率,是不是有矛盾?

1 从分析角度, 设fs为采样频率,fft长度为N, 那么频率分辨率为fs/N, 如果N增加那么频率分辨率增加。这是下面一篇文章的用的论据。

2 从另一角度,设fs为采样频率,fft长度为N, 则频率分辨率为fs/N, 我们引进另一个概念:时间长度DT(duration of time), 可以看出DT = 1/频率分辨率.
则频率分辨率=1/DT 。从这一角度看只要DT不变,频率分辨率就不会变。因此尽管补零或插值,都不会提高分辨率。这是所有目前信号处理教科书的观点,但这些教科书都没有给出原因,不知道为什么,我发现这个问题是曾经找过不少教科书,没有一本给出原因,问老师也答的含糊不清。后来我反复考虑,感觉应该如此解释,如若有意见,欢迎讨论。

为什么两个角度看竟然矛盾?同样一个问题为什么有不同的解释

从1 我们看出,增加的值全为零,不是原信号内容,这就造成了特殊性,我们的信号变了不是原来信号了!而是新的补零信号的周期延拓。但是可以证明两个信号在对应点上的频谱值相同(直接利用定义即可推出)。至于补零后其它多点处的频谱是否是原信号的内容,这是问题的关键。

事实上,用于实用的方法不是下文里提到的方法,而是利用采样数据抽取,降低采样频率的方法来实现。因为数据长度一般在使用时都是最大长度,尤其是这种应用,肯定已经采用最大数据处理长度,不用问的。

我有一个试验,是多年前和一位同学讨论此类问题的试验,有兴趣的不妨试试.

%% 用于检验补零FFT是否提高分辨率

%% 结论: 1。 补零fft提高分辨率是指信号加窗后的合成信号的分辨率。

% 这种情况下fft可以帮助分辨真实的峰值,但分辨率你可以计算一下应该改是不变的。

% 2。 如果信号=加窗后的合成信号 提高分辨率,如果加入点为真实的数据,当然提高分辨率。

% 4。 提高分辨细节的本质是由于窗的展宽,窗分辨细节率的提高引起的。这是一个用大窗观 察含有小窗信号的小窗的过程。补零而看到的频率细节不是信号本身的细节,而是窗的细节。

clear;

Nfft=16;

span=[0:Nfft-1];

omga=[1:3]*pi/8;

x=exp(j*omga(1)*span)+exp(j*omga(2)*span)+exp(j*omga(3)*span);

stem(pi/Nfft*[0:Nfft-1],abs(fft(x,Nfft)),'r'); figure(2);

stem(pi/Nfft/2*[0:Nfft*2-1],abs(fft(x,Nfft*2)),'b'); figure(3);

stem(pi/Nfft/16*[0:Nfft*16-1],abs(fft(x,Nfft*16)),'g');

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: