利用 LPC55S69 PowerQuad 引擎实现高效 FFT 计算
利用 LPC55S69 PowerQuad 引擎实现高效 FFT 计算
NXP LPC55S69 微控制器专为高性能信号处理设计。其 PowerQuad 协处理器内置两个专用引擎:Biquad 滤波器和变换引擎。Biquad 处理时域滤波,而变换引擎以最小 CPU 参与执行快速傅里叶变换 (FFT),释放 Cortex®-M33 核心执行其他任务。
理解离散傅里叶变换
时域采集的信号往往在频域中最易解读。离散傅里叶变换 (DFT) 量化采样信号与不同频率正弦和余弦基函数的相关程度。
观察 图 1 所示采样输入信号:

用参考余弦说明相关性
将输入与参考余弦波(图 2)比较,点积产出标量表示相关强度。但输入与参考间 90° 相移会导致点积消失,即使信号明确相关。

为捕捉同相和正交分量,使用第二个相移 90° 的参考,产生两个相关值共同形成复数:
output = B + i·A
将此方法扩展至一系列频率,即得完整 DFT 频谱。

数学公式
DFT 定义为:
X(k)=\sum_{n=0}^{N-1} x(n)·e^{-j2πkn/N}
其中 N 为采样点数,k 为输出频率箱索引。
快速傅里叶变换 (FFT) 局限
- 输入长度必须为 2 的幂。
- 频率箱均匀间隔
fs/N(如 48 kHz 采样率配 256 点得 187 Hz 间隔)。 - 实值输入产生对称输出;后半部分含前半部分共轭。
使用 PowerQuad FFT 引擎
PowerQuad 变换引擎使用定点乘累运算实现 FFT 算法,适合低功耗实时应用。NXP SDK 提供即用型示例;powerquad_transform 项目演示定点 16 位 FFT 工作流。
核心例程 PQ_RFFTFixed16Example 初始化引擎处理 16 位整数数据。浮点采样需预先缩放为定点。
关键配置参数:
FILTER_INPUT_LEN— 输入采样数。- 输出数组长度 — 输入长度两倍,存储实部和虚部。
FILTER_INPUTA_PRESCALER— 缩放输入防溢出(如 32 点设为 5)。
示例代码片段见 图 6 和 图 7。


配置后,PQ_transformRFFT 启动计算。CPU 可轮询完成或继续其他任务,实现真正异步处理。
要点总结
- LPC55S69 PowerQuad 为嵌入式 DSP 提供高效、低延迟 FFT 路径。
- 定点运算需谨慎缩放;SDK 示例项目自动处理此项。
- 异步执行释放主核心,提升整体系统性能。
深入了解请参考 NXP LPC55S69 SDK 和 PowerQuad 论坛 社区讨论。
嵌入式