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

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

代码如下;

int32_t main(void)

{

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

{

testInput_f32_10khz[index]= 100sin(314index/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]= 100sin(314index/512);

}

2但是如果2048个点,我按照下面方式

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

{

if(index%2==0)

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

else

testInput_f32_10khz[index]= 100cos(314index/512);

}

那么测试出来是

index1022 =102399

不对称。。。

3如果我虚部为0,实部位正弦值:

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

{

if(index%2==0)

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

else

testInput_f32_10khz[index]= 0;

}

出来是

index2 =51212

index1022 =51212

是对称的。。

使用STM32官方提供的DSP库进行FFT,虽然在使用上有些不灵活(因为它是基4的FFT,所以FFT的点数必须是4^n),但其执行效率确实非常高效,看图1所示的FFT运算效率测试数据便可见一斑。该数据来自STM32 DSP库使用文档。

可以,函数 arm_cfft_radix4_init_f32,用于初始化 FFT 运算相关参数,其中: fftLen 用于指

定 FFT 长度(16/64/256/1024/4096)

以上就是关于请教STM32F4 的DSP库 FFT运算的问题.求高手指点全部的内容,包括:请教STM32F4 的DSP库 FFT运算的问题.求高手指点、如何使用STM32提供的DSP库进行FFT、stm32f4的DSP库可以做4096点FFT吗等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/10000814.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-04
下一篇 2023-05-04

发表评论

登录后才能评论

评论列表(0条)

保存