【问题标题】:Does NFFT = 2^nextpow2(L) improve not only computation time but precision of the fft?NFFT = 2^nextpow2(L) 是否不仅提高了计算时间,而且提高了 fft 的精度?
【发布时间】:2018-08-19 00:54:09
【问题描述】:

基本上我的标题包含所有内容:在估计计算有效的 N 点以计算 FFT 时使用 2^nextpow2(L) 是否也会影响系数的精度?例如,将 xcorr 的输出与 FFT 的输出进行比较(根据 Wiener-Khinchin 定理)。谢谢。

【问题讨论】:

    标签: matlab fft


    【解决方案1】:

    第二个参数相当于用零填充输入。这做了两件事:

    1. 它会改变您的信号。 DFT 假设信号是周期性的。通过用零填充,您可以更改此周期性信号的形状。

    2. 它改变了频域中样本的位置。计算的频率取决于信号的长度,你改变这个长度,你就改变了变换的频率轴。

    这些是否会影响您以后的计算取决于这些计算是什么。

    【讨论】:

    • 谢谢,克里斯。但是,如果第二个参数等于信号的长度,则没有填充。我首先问,因为我注意到在计算没有参数的 fft(= 信号中的样本数)并使用 2nextpow2() 计算它时,只有在后一种情况下,IFFT 的值(FFT(x))与计算信号 x 的 xcorr 相同。
    • 当然,第二个参数填充到那个长度,所以如果你的信号已经是那个长度,就不会发生填充。请注意,ifft(fft(x))==x。互相关为ifft(abs(fft(x)).^2)。我认为互相关不会受到填充的影响。
    • 对不起,你是对的,我忘了包括绝对值(或者乘以复共轭)。我检查了互相关是否受填充的影响。 fft 中的 N 越高,越精确。如果您能检查一下,我将不胜感激,因为我是 Matlab 的新手。
    • @EmmanuelGoldstein:填充越大,您在 xcorr 信号中获得的值就越多。但我认为这不一定会转化为更高的精度。看看您是否可以通过对未经插值获得的 xcorr 信号进行插值来获得相同的结果。
    • 哦,我明白了。我会试试的。谢谢!
    猜你喜欢
    • 2023-03-25
    • 1970-01-01
    • 2017-10-20
    • 1970-01-01
    • 2020-08-07
    • 2013-11-08
    • 1970-01-01
    • 1970-01-01
    • 2017-01-17
    相关资源
    最近更新 更多