急需解答:
现在用的STM32想做FFT,256点即可。下载了网络上说的DSP库,STM32F10x_DSP_Lib_V2.0.0,因为是用汇编写的,所以具体我也没看懂~~~
但是使用时有问题想请教:
.最大的问题就是FFT的结果,和MATLAB跑出来的不一样。
#define NPT 256
long lBUFIN[NPT]; /* Complex input vector */
long lBUFOUT[NPT]; /* Complex output vector */
for(ii=0; ii<NPT; ii++)
{
lBUFIN[ii] = ii;
}
这是我的测试数据,因为我看DSP库的说明:All the signal samples must be 32-bit data containing the 16-bit real part followed by the 16-bit imaginary part (in the little Endian order: imaginary_real).我查了一下STM32是小端格式,所以高16位虚部,低16位实部。【输出文档里面没有说,我也就认为它是高虚部,低实部了】
然后调用函数cr4_fft_256_stm32(lBUFOUT, lBUFIN, NPT);
在watch窗里看输出lBUFOUT明显数值不对呀~~~我也不知道为什么
还有关于IFFT的问题,我的方法是:先取共轭,然后FFT,再共轭然后实部虚部分别除以NPT,这样做是正确的么??
总之我现在FFT和IFFT都做出来不对,求做过的人指点~~~ |