主题中讨论的其他器件:MSP430FR6043
您好!
我们正在使用 MSP430FR6043评估实数 FFT/iFFT、发现了以下问题:
- 使用 MSP_FFT_FIXED_Q15 ()将时域信号 A 转换为频域信号 B。
- 使用 MSP_ifft_fixed_q15 ()将频域信号 B 转换回域信号 C。
- 发现 A 与 C 完全不同,不是由精度损失引起的。
您能帮您研究一下吗?
感谢你的帮助。
Chofan
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.
您好!
我们正在使用 MSP430FR6043评估实数 FFT/iFFT、发现了以下问题:
您能帮您研究一下吗?
感谢你的帮助。
Chofan
器件型号:MSP430FR5994
您好!
我们正在使用 MSP430FR6043评估实数 FFT/iFFT、发现了以下问题:
您能帮您研究一下吗?
感谢你的帮助。
Chofan
测试代码如下所示。
提供的测试矢量是[0、1、2、3、4、 5、6、7、8、9、 10、11、12、13、14、15、 16、17、18、19、20、 21、22、23、24、25、26、 27、28、29、30、31]
FFT 和 ifft 之后、它更改为[-11、-10、12、-11、6、 -3、14、-6、15、-3、 14、-10、22、-5、21、 0、27、2、12、1、 24、-1、20、2、25、 11、22、12、20、9、 13、12]
#include "msp430.h"
#include
#include
#include
#include "DSPLib.h"
define SAples 32
/*输入信号和 FFT 结果*/
DSPLIB_DATA (输入、MSP_ALIGIN_FFT_Q15 (样本))
_q15输入[samples*2];
void main (void)
{
int16_t idx;
MSP_STATUS 状态;
MSP_FFT_Q15_params FFtParams;
/*禁用 WDT */
WDTCTL = WDTPW + WDTHOLD;
对于(idx = 0;idx <样本;idx++)
{
input[idx]= idx;
}
fftParams.length =样本;
fftParams.bitReverse = true;
fftParams.twiddleTable = MSP_cmplx_twidde_table_32_Q15;
/*执行具有固定比例的实数 FFT */
状态= MSP_FFT_FIXED_Q15 (&fftParams、input);
MSP_checkStatus (status);
/*执行具有固定比例的实数 iFFT */
状态= MSP_ifft_fixed_q15 (&fftParams、input);
MSP_checkStatus (status);
/*程序结束。 *
__no_operation();
}