我现在希望用K210的硬件FFT对麦克风采集到的数据进行频谱分析
I2S采样的数据精度是16bit的,
按照FFT接口,讲采集到的数据输入到函数fft_complex_uint16_dma()里面(shift=0)
返回的结果有一些问题
因为硬件FFT的数据精度是16bit的,所以返回的结果只要超过16bit,就全部都是32767或者-32768
问题:
1、函数fft_complex_uint16_dma()里面的shift参数好像跟我的问题相关,但是我不太理解这个参数,判断9层里面的哪一些层需要移位是什么意思?
2、如果输出精度只有16bit,是不是在不移位情况下,我只能输入8bit左右的数据进去才不会溢出(结果变成32767或者-32768)?那这样,我的数据精度会损失很多呀
3、有没有办法绕过16bit这个限制呀,我现在在移植之前的算法,FFT的输入输出都是float(32位)
麻烦大家帮忙解决一下
