跪求大师用C语言帮我编一个8点基-2按时间抽取的FFT程序

来源:百度知道 编辑:UC知道 时间:2024/06/22 20:28:18
跪求大师用C语言帮我编一个8点基-2按时间抽取的FFT程序吧,我实在是编不出来,我想看一看,谢谢!

用递归应该比较容易写的, 虽然效率差一些

大概思路:

用一个函数做准备:
把数组排列成到位序
计算Wn
对整个数组调用 do_fft函数

do_fft函数:
如果需要计算的序列长为2,两个位置分别写为x[0]+x[1]和x[0]-x[1]然后返回
对需要计算的序列前半部分调用do_fft函数
对需要计算的序列后半副本调用do_fft函数
for (int i=0; i<length/2; ++i) {
x[i+length/2] *= Wi;注意这里需要先确定需要的是哪个W
x[i]和x[i+length/2] 分别改写为 x[i]+x[i+length/2]和x[i]-x[i+length/2]
}

这样两个函数应该就差不多了