|
Fly哥,您好:
           最近在学习《安富莱STM32-V5开发板_数字信号处理教程(V1.0)》,关于“第32章实数FFT的实现”这一部分:第392页,32.2.2 arm_rfft_q15章节,
static void arm_rfft_q15_app(void)函数中有两个疑问:
/* 按照实部,虚部,实部,虚部..... 的顺序存储数据 */
for(i=0; i<1024; i++)
{
/* 51.2Hz正弦波,采样率1024Hz。arm_sin_q15输入参数的范围[0, 32768), 这里每20次为一个完整的正弦波,32768 / 20 = 1638.4*/
     j = i % 20;
     testInput_q15_50hz = arm_sin_q15(1638*j);
}
/* 1024点实序列快速FFT */
arm_rfft_q15(&S, testInput_q15_50hz, testOutput_q15_50hz);
/* 由于输出结果的格式是Q5,所以这里将定点数转换为浮点数 */
for(i = 0; i < fftSize; i++)
{
      testOutput_f32_10khz = (float32_t)testOutput_q15_50hz/32;
}
1、testInput_q15_50hz为FFT变换输入数组,文档上说按照实部,虚部,实部,虚部..... 的顺序存储数据,可是testInput_q15_50hz = arm_sin_q15(1638*j);这个明显连续的实部,对于数组的1、3、5....没见有赋值0啊
2、arm_rfft_q15变换的输出结果的格式问题,官方文档说明如下:1024点的fft变换,输出格式是10.6,10.6格式不就是Q6吗,为啥咱们的这个文档里说输出格式是Q5??
谢谢哈,打扰了!望解释一下哈,谢谢![s:149]
|
|