可以看到,ys's fft by zmm是文本的FFT 实现的结果。ys'fft by scipy是scipy库中的fft,结果一致,说明代码理论上是 正确的。
代码中的采样频率为32,信号本身频率为5,可以看到,在5的位置有峰值出现。
读者可以更改信号本身频率,以及采样频率,接着去做实验。
不过,目前代码只支持ys的长度刚好为2的几次方,不是2的几次方,奇偶分解就进行不下去了。
解决这个的改进思路:如果遇到长度不是2的几次方的ys,就把ys用线性插值法,把长度插值成2的几次方,再进行蝶形FFT就可以了.
如果,不使用蝶形FFT,用for循环实现DFT, 就不用担心ys的长度是否刚好为2的几次方。
至此,从本科时期就想做的事情:用蝶形算法实现DFT的加速:FFT。
今天终于完成了