亿迅智能制造网
工业4.0先进制造技术信息网站!
首页 | 制造技术 | 制造设备 | 工业物联网 | 工业材料 | 设备保养维修 | 工业编程 |
home  MfgRobots >> 亿迅智能制造网 >  >> Industrial Internet of Things >> 嵌入式

掌握嵌入式单片机数字滤波:LPC55S69 PowerQuad 双 Biquad IIR 引擎

探索时域数据滤波最常用技术,考察 LPC55S69 PowerQuad 双 Biquad IIR 引擎如何加速 DSP 任务

处理随时间采集的数据时,首要步骤往往是应用数字滤波器。理解各种滤波策略不仅改善信号质量,还能为嵌入式单片机释放 CPU 处理其他关键任务——这至关重要。

本文涵盖最广泛使用的时域滤波方法,深入剖析 LPC55S69 MCU 中 PowerQuad 单元的双 Biquad IIR 引擎,这是一个强大的 DSP 构建模块,可用于多种滤波场景。

连续采样数据的常用滤波器

在时域采集系统中,样本以固定已知速率到达。时域滤波器处理这些样本并产生新信号,可进一步处理或送往数模转换器 (DAC)。任何滤波器的核心是其对正弦波的响应——跨频率改变幅度和相位。频谱上的集体行为称为滤波器频率响应。

有限冲激响应 (FIR) 滤波器是标准方法。它们通过将最新数据与历史样本组合生成每个输出样本。

掌握嵌入式单片机数字滤波:LPC55S69 PowerQuad 双 Biquad IIR 引擎

图 1. 利用输入历史逐样本滤波处理。

一种直接实现将历史样本存入数组并应用以下方程:

x[n] // 最近输入样本
x[n-1], x[n-2] // 前两个输入样本
y[n] // 下一输出样本

y[n] = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2]

这种简单乘累运算使用常数系数和定义历史长度塑造滤波器频率响应。调节系数可使滤波器作为低通、高通或带通器件。

概念虽简单,但 FIR 滤波器常需大量历史样本以实现精确控制,在传统 CPU 上计算开销大——尤其当历史增长时。

为减少所需历史,许多设计引入反馈,构成无限冲激响应 (IIR) 滤波器基础:

// 遵循前文命名约定
y[n] = b0 * x[n] + b1 * x[n-1] + b2 * x[n-2] + a1 * y[n-1] + a2 * y[n-2]

上例说明二次节 (biquad) 滤波器,一种常见 IIR 构建模块,可级联实现高阶响应。相比 FIR 滤波器所需系数更少,但系数选择需谨慎以避免不稳定和振荡。

许多工具可为标准滤波器设计生成最优系数。这些“食谱”提供快速通往高质量滤波器的路径。

掌握嵌入式单片机数字滤波:LPC55S69 PowerQuad 双 Biquad IIR 引擎

图 2. 众多自动生成系数工具之一。

使用 PowerQuad IIR Biquad 引擎

LPC55S69 PowerQuad 单元提供专用硬件执行 IIR biquad 滤波器。将滤波工作卸载给此协处理器,释放 Cortex®-M33 核心专注应用逻辑。

虽滤波算法本身简单,但会消耗大量 CPU 周期。PowerQuad 硬件专门针对滤波和其他复杂数学运算优化。它通过 AHB 总线和 Arm® Cortex®-M33 协处理器接口连接系统。

开发者通常使用免费的基于 Eclipse 的 MCUXpresso IDE 和 LPC55S69 SDK,后者包含多个 PowerQuad 示例应用。

掌握嵌入式单片机数字滤波:LPC55S69 PowerQuad 双 Biquad IIR 引擎

图 3. 选择 PowerQuad 数字滤波器示例。

“powerquad_filter”示例演示多种滤波器配置。核心逻辑位于 powerquad_filter.c,展示基础滤波器设置。

文章介绍了直接 I 型实现,但 PowerQuad 内部将运算重排为直接 II 型结构。这种安排消除同时存储输入和输出历史的需求,改为维护单个中间状态向量 v[n]。

AHB 总线上多个寄存器保存配置 PowerQuad IIR 滤波操作所需的状态和系数。SDK 示例中,状态通过 PQ_BiquadRestoreInternalState 初始化。

初始化后,滤波器使用 fsl_powerquad_filter.c 中的 PQ_VectorBiquadDf2F32 处理数据块:

/* 函数按 8 的倍数处理输入样本。 */

掌握嵌入式单片机数字滤波:LPC55S69 PowerQuad 双 Biquad IIR 引擎

图 4. 向量化 IIR 滤波器实现

此例程通过 MCR 指令将数据从主 CPU 传输到 PowerQuad 协处理器。PowerQuad 执行乘加运算,通过另一 MCR 传输将滤波结果返回 CPU。与在 Cortex®-M33 核心执行相同算法相比,这种卸载大幅降低 CPU 负载。

双 Biquad IIR 引擎用于数字滤波

LPC55S69 PowerQuad 单元包含两个独立 biquad 引擎,支持并行或级联滤波操作。AHB 总线配置寄存器设置 IIR 功能,数据交换通过协处理器接口进行。

MCUXpresso SDK 提供可靠起点,但提供的代码优先清晰度而非极致性能。开发者可通过最小化 CPU 与 PowerQuad 间数据传输进一步优化。

NXP 提供 IIR Biquad 滤波器设计与可视化工具,协助生成和可视化滤波器系数。NXP 社区页面也提供 LPC55S69 PowerQuad 单元及其能力的深度文档。

行业文章是一种内容形式,允许行业合作伙伴以编辑内容不太适合的方式,与 All About Circuits 读者分享有用的新闻、信息和技术。所有行业文章均遵循严格的编辑准则,旨在为读者提供有用的新闻、技术专长或故事。行业文章中表达的观点和意见属于合作伙伴,不一定代表 All About Circuits 或其作者的观点。

嵌入式

  1. 实时数据洞察重塑数字化制造团队:从数据饱和到关键参数聚焦
  2. GE Digital:数据与分析驱动制造运营卓越
  3. 加速数字化转型:实时MES数据驱动工厂效能跃升
  4. 带反馈的数字逻辑:从确定性门到多谐振荡器
  5. 为什么数字存储器很重要
  6. IC技术与微控制器:现代嵌入式系统的基石
  7. 加速工业自动化:优化RS-485现场总线以提速、延距、强EMC
  8. 利用嵌入式AI将大数据转化为可执行智能洞察
  9. OT与IT无缝融合:现代工业软件连接智能传感器至企业系统
  10. 可靠性互联网中的数据驾驭:高效管理策略
  11. 加速数字化转型:Cisco与IBM的边缘到云IoT平台
  12. 预测性维护:借力工业 4.0 实现不间断生产