TI中文支持网
TI专业的中文技术问题搜集分享网站

关于6678中的dspf_sp_fftspxsp对一组数据循环作fft问题

我想用该函数对一个3200个复数数据进行FFT转换,具体操作是每8个复数进行fft,循环作400次;但是我用一个for循环来做,第一次8个数据是对的,之后的变换结果都是错的,我一步一步调试发现,第一次做完FFT,原始数据被覆盖改变了,我想是因为函数中间变量用到了原始数据的空间

想问问各位前辈,如何做循环的FFT

Andy Yin1:

函数都有接口指定输入及输出数据的存储地址,这地址是外部应用维护的,我怀疑你代码每次循环处理给的地址重复使用了。

user4712072:

回复 Andy Yin1:

dspf_sp_fftspxsp里面的buff盛放的是原始数据,循坏做fft;第一次做完之后,buff里面的部分数据被改变了

Andy Yin1:

回复 user4712072:

如你所述输入buffer可能被中间值覆盖,原始数据被覆盖是正常的,只要输出结果正确即可。

user4712072:

回复 Andy Yin1:

可能是我表达有误吧,说明一下pulsenum=8,fft_num=400

buffer有3200个复数,一共是400组,每组8个,实部虚部放的;然后用一个for循坏400次,第一次做8点fft取值应该是buffer[0]~buffer[15],但是做完第一次fft之后,buffer[16]之后的数据很大一部分被改变了;

之后我单独试验了一下,buffer里面只放8个复数,后面的数据全部为零,也就是buffer[16]~buffer[6399]全部等于零,做完fft之后那些0没被改变;

但是如果改成buffer[16]=1.0,buffer[17]=2.0,做完fft之后buffer[16]之后的数据又被一些莫名其妙的数值覆盖;

赞(0)
未经允许不得转载:TI中文支持网 » 关于6678中的dspf_sp_fftspxsp对一组数据循环作fft问题
分享到: 更多 (0)