工具/软件:TI C/C++编译器
在这里的第一个帖子、所以我可以轻松地发布!
我正在尝试让我的头围绕 MSP DSPLIB 中的定点 FFT 代码、尤其是 MSP_FFT_FIXED_Q15。
示例代码使用 MSP_sinusple_Q15实用程序初始化输入数组、这大概会将 Q15结果放入输入数组中、以便 FFT 可以运行。
作为 Q15、我传递到正弦波的振幅参数为0.5、MSP_SINUSoid 返回的结果具有大约+/-16384十进制的峰值振幅、这是有道理的。
当我运行 FFT 时、我无法解释结果的缩放。
MSP DSP 库用户指南指出、256点 FFT 的结果可以解释为 Q8结果+/- 127.00000、也可以解释为 int16_t 结果除以128。
如果我想计算每个复数结果的幅度、最好在 Qmath 库中使用_QNmag 函数、并使 N=8、即_Q8mag()吗?
如果我这么做、结果是否采用 Q8格式? 我希望最终将幅度放大到 dB、因此我假设我可以保持 Q8格式、以获得使用+/- 128dB 的 dB 结果、还是过于简单?
如果我不使用 QNmag、如何从内部实部和虚部获得正确缩放的幅度?
我是否需要将每个乘以128、然后再乘以平方、再加和平方根?
我已经在这方面圈过、但我对 FP 数学的复杂性非常陌生!
目前、我不太担心精度和分辨率等问题
TIA。