This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

关于controsuite中的例程fft_adc计算结果出错的问题



如题,使用controsuite中的v1_50_00_00中的rfft_adc例程,读出RFFTin1Buff中的数据用matlab分析得到的结果和计算后的RFFTmagBuff结果非常不一致,求问大家有没有遇到过这种问题以及怎么解决的,谢谢。下面是分析结果的对比,上面一张是RFFTin1Buff中的数据用matlab做的fft,下面一张是例程中的fft结果。

  • 请问您是使用的哪款芯片?直接使用TI例程进行测试的?是否有进行修改?
  • 不好断定哪个是正确的 如果采集的是直流的话下图是正确的
    matlab需要分析程序不确定是否正确
  • 您好,我使用的是·28377d芯片,照搬controsuite中的fpu里面的v1_50_00_00里面的rfft_adc例程,关键是把RFFTin1Buff中的数据放在matlab中计算完全正确,用例程中的fft计算完的结果就不对了上图是RFFTmagBuff中的数据,为什么在0频附近的能量远大于其它点?我的fft配置和使用代码如下,您觉得有没有问题呢?谢谢
    hnd_rfft_adc->Tail = &(hnd_rfft->OutBuf);
    hnd_rfft->FFTSize = RFFT_SIZE; //FFT size
    hnd_rfft->FFTStages = RFFT_STAGES; //FFT stages
    hnd_rfft_adc->InBuf = &RFFTin1Buff[0]; //Input buffer (12-bit ADC) input
    hnd_rfft->OutBuf = &RFFToutBuff[0]; //Output buffer
    hnd_rfft->CosSinBuf = &RFFTF32Coef[0]; //Twiddle factor
    hnd_rfft->MagBuf = &RFFTmagBuff[0]; //Magnitude output buffer

    RFFT_f32_sincostable(hnd_rfft); //Calculate twiddle factor
    RFFT_adc_f32(hnd_rfft_adc); // Calculate real FFT with 16-bit
    RFFT_f32_mag(hnd_rfft); //Calculate magnitude
  • 您看看我下面回复的fft代码配置和使用有问题吗?
    hnd_rfft_adc->Tail = &(hnd_rfft->OutBuf);
    hnd_rfft->FFTSize = RFFT_SIZE; //FFT size
    hnd_rfft->FFTStages = RFFT_STAGES; //FFT stages
    hnd_rfft_adc->InBuf = &RFFTin1Buff[0]; //Input buffer (12-bit ADC) input
    hnd_rfft->OutBuf = &RFFToutBuff[0]; //Output buffer
    hnd_rfft->CosSinBuf = &RFFTF32Coef[0]; //Twiddle factor
    hnd_rfft->MagBuf = &RFFTmagBuff[0]; //Magnitude output buffer

    RFFT_f32_sincostable(hnd_rfft); //Calculate twiddle factor
    RFFT_adc_f32(hnd_rfft_adc); // Calculate real FFT with 16-bit
    RFFT_f32_mag(hnd_rfft); //Calculate magnitude
    还有,我用matlab分析的是RFFTin1Buff中的数据,而dsp正是用这个数据来计算fft的,可是得到的却是rfftmagbuff中的数据,也就是下图。
    谢谢您。
  • 我采集的数据是存在rfftinbuff中的,按道理应该得到图一的结果,不知道为什么计算出来不对,我中间没有其它的步骤