请教STM32F4 的DSP库 FFT运算的问题.求高手指点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教STM32F4 的DSP库 FFT运算的问题.求高手指点相关的知识,希望对你有一定的参考价值。

参考技术A 代码如下;

int32_t main(void)

for(index=0;index<2048;index++)

testInput_f32_10khz[index]= 100*sin(3.14*index/512);


arm_cfft_f32(&arm_cfft_sR_f32_len1024, testInput_f32_10khz, ifftFlag, doBitReverse);

arm_cmplx_mag_f32(testInput_f32_10khz, testOutput, fftSize);

arm_max_f32(testOutput, fftSize, &maxValue, &testIndex);

for(index=0;index<1024;index++)

printf("index%d =%d\r\n",index,(u32)testOutput[index]);



while(1); /* main function does not return */


1. 如果2048个点,我直接取正弦波的值,那么打印出来是

index2 =72203
index1022 =72647
貌似是对称的。。。
for(index=0;index<2048;index++)

testInput_f32_10khz[index]= 100*sin(3.14*index/512);


2.但是如果2048个点,我按照下面方式
for(index=0;index<2048;index++)


if(index%2==0)
testInput_f32_10khz[index]= 100*sin(3.14*index/512);
else
testInput_f32_10khz[index]= 100*cos(3.14*index/512);

那么测试出来是
index1022 =102399
不对称。。。

3.如果我虚部为0,实部位正弦值:
for(index=0;index<2048;index++)


if(index%2==0)
testInput_f32_10khz[index]= 100*sin(3.14*index/512);
else
testInput_f32_10khz[index]= 0;


出来是
index2 =51212
index1022 =51212
是对称的。。本回答被提问者和网友采纳

以上是关于请教STM32F4 的DSP库 FFT运算的问题.求高手指点的主要内容,如果未能解决你的问题,请参考以下文章

STM32F4使用FPU+DSP库进行FFT运算的测试过程

stm32f4的DSP库可以做4096点FFT吗

如何使用STM32F4的DSP库

如何使用STM32F4 的CCM RAM

STM32F4基于库函数移植DSP源码“DSP简介及工程创建“

STM32F4基于库函数移植DSP源码“DSP简介及工程创建“