Thread 中讨论的其他器件: controlSUITE
您好!
我们希望使用具有库 C28x_vcu2_library_fpu32.lib 的 TMS320f28377D 对256个实例数据(数组)执行正向和反向 FFT。
因此、我们一直在探索 controlSUITE 示例项目2837x_vcu2_rfft_256。
使用以下步骤完成正向 FFT:
//步骤1:初始化 CFFT 对象
CFFT.pInBuffer = buffer1Q15;
CFFT.pOutBuffer = buffer2Q15;
CFFT.init =(void (*)(void *)) CFFT_init128Pt;
CFFT.run =(void (*)(void *)) CFFT_run128Pt;
//步骤2:初始化句柄
handleCFFT =&CFFT;
//步骤3:调用 init()将设置 Twiddle 因子表
//并运行前向 FFT,然后运行解包例程
CFFT.init(handleCFFT);
CFFT.run(handleCFFT);
CFFT_UNPACK (handleCFFT);
该项目中没有逆向 FFT、因此我们将其包括在内、并执行以下步骤:
//步骤1:切换 CFFT 对象的输入和输出指针
pTemp = CFFT.pInBuffer;
CFFT.pInBuffer = CFFT.pOutBuffer;
CFFT.pOutBuffer = pTemp;
//步骤2:将 IFFT 函数分配给运行指针
CFFT.run =(void (*)(void *)) ICFFT_run128Pt;
//步骤3:运行例程
CFFT_pack (handleCFFT);
CFFT.run(handleCFFT);
CFFT_conGATE (handleCFFT->pOutBuffer、handleCFFT->nSamples);
我们在同一示例中执行了正向和反向 FFT。
提供的输入阵列为256点。
在反向 FFT 之后获得的输出与输入不同。
输入(用于正向 FFT)和输出(来自 ICFFT_run128Pt)数组绘制如下:
输入:(+/- 4096 Vpk)
输出:(+/- 1000Vpk)失真。
ICFFT_run128Pt 的输出失真并按系数4缩小。
这个问题是否有任何解决方案?
如果我们出错、请提供指导。
此致、
Shashank.