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.
针对256点的FFT,参考TI提供的例程,人为构造了一个512的输入数组buffer1Q15,奇数项为实部,也就是频率已知,幅值已知的模拟采样数据;偶数项为虚部,都为0。指定输出数组为buffer2Q15,同样也是512大小。
调用CFFT的程序:
// Step 1: Initialize CFFT object
CFFT.pInBuffer = buffer1Q15;
CFFT.pOutBuffer = buffer2Q15;
CFFT.init = (void (*)(void *))CFFT_init256Pt;
CFFT.run = (void (*)(void *))CFFT_run256Pt;
// Step 2: Initialize the handle
handleCFFT = &CFFT;
// Step 3: Calling the init() will setup the twiddle factor table
CFFT.init(handleCFFT);
CFFT.run(handleCFFT);
按照正常理解buffer2Q15为FFT计算结果,计算各次谐波的幅值。但是发现计算结果除了输入信号频率的幅值外,还有其他频率的幅值结果。最后发现输入数组buffer1Q15中保存的结果是我们预期想要的,感觉输入输出结果翻转了。这是为什么?
为了验证,对512点的CFFT进行了同样的测试,只是数组变为1024,结果和256点刚好相反,buffer2Q15中保存的是预期的计算结果。
这是为什么?