STM32F405的FFT,衰减很严重,怎么解决?

2019-07-21 02:37发布

用STM32F405的DSP库做64点FFT,衰减很大, 是我用错了么,有用过的老师么,指导一下。
另这个信号怎么用F4的FFT,插值的话,误差很大。

#define Fs 14400.0f
#define PI2 PI*2.0f

for(i=0;i<288;i++)
     adcfft=1000.0f+100.0f*arm_sin_f32(PI2*i*50.0f/Fs)+ 10.0f * arm_cos_f32(PI2*i*100.0f/Fs) + 1.0f*arm_sin_f32(PI2*i*150.0f/Fs);
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
13条回答
liujinyi016
2019-07-21 23:11
一、程序
    #define FFS 3200.0f
    for(i=0;i<128;i++)
        adcfft=1000.0f+100.0f*arm_sin_f32(PI2*i*50.0f/FFS)+ 10.0f * arm_cos_f32(PI2*i*100.0f/FFS) + 1.0f*arm_sin_f32(PI2*i*150.0f/FFS);
    __NOP();

    __nop();

      status = ARM_MATH_SUCCESS;
      status = arm_cfft_radix4_init_f32(&S,64,ifftFlag, doBitReverse);
      arm_cfft_radix4_f32(&S,adcfft);
    __nop();
      arm_cmplx_mag_f32(adcfft,testOutput,64);
    __nop();
二、用128点做64FFT结果



三,用128点做64FFT幅值
直流分量: 90509.67/1.414/64=1000.15 
基波分量:4297.978/1.414/32=94.980   ........


一周热门 更多>