FFT输入样本数

Ali*_*Ali 1 matlab sample fft

我想知道如果我使用10000个样本并且做fft,我的结果将会有很大的不同,相比之下我的样本恰好等于2的幂,或者它只影响fft的速度?Matlab是否自动进行零填充?或者我应该做零填充?

更多的信息 :

我正在使用matlab版本2012b,fft函数来对我的样本执行dft.我有10分钟的时域数据,采样率为50 KHz.我的工作类型需要我在200毫秒的窗口中分配时域数据.在这些200毫秒的窗口上执行fft后,我对不同的窗口结果进行了平均.在50Hz频率系统中200ms,由50Khz采样意味着每个fft操作大约10000个样本.

亲爱的,阿里

Mar*_*ing 5

FFT的原始Cooley-Tukey形式仅限于2的幂.很多人仍然坚持这种心态.甚至教授们仍然认为FFT需要2 ^ K才能保持快速的神话.事实是现代FFT库使用混合基数方法.它允许快速变换的大小是小素数的集合.通常,{2,3,5}上的数字是一个很快的因素.如果不是,则将零填充到下一个数字,该数字小素数的集合,但不是(必然)2的幂.

顺便说一句,有一些技巧可以在技术上实现具有大质数的O(n log n)可伸缩性,例如Chirp-Z和Rader的Prime算法,但它们通常在它们前面有一个非常大的常量,如果可能应该避免.

结论:你的大小10000在{2,3,5}上很好地计算,所以它对于大多数现代FFT实现(甚至是kissfft)都会很快.如有疑问,请立即预测!