SuperAPI AI 工具集

sensor-signal-filtering

编程与开发

查看项目

更新于 10-16 10:38

技能介绍

传感器信号滤波(Sensor Signal Filtering)

从传感器输出到上报值设计整条信号链。保持原始采样、滤波值、时序、饱和与故障标志可观测;滤波器不得掩盖损坏的传感器或不安全的电压。

接入门槛(Intake gate)

在选择元件或算法之前,记录或标注未知项:

  • 具体板卡、MCU、核心/框架、ADC 通道、分辨率、参考电压、输入范围、采集时间,以及工具链版本
  • 传感器零件/模块、输出类型与驱动阻抗、供电、线缆长度、期望信号带宽、有效范围、预热,以及故障行为
  • 采样周期/抖动预算、可接受延迟、阶跃响应要求、阈值策略、校准模型,以及可用的测量工具

在给出板卡相关 ADC 建议前,先用 board-support 解析板卡。对于物理或多会话工作,先加载 embedded-project-loop 并保持其测量门开启。

工作流程

  1. 在滤波前以明确、可重复的速率捕获原始采样。将传感器动态与尖峰、混叠、量化、ADC 建立时间、电源/地噪声、EMI 和校准误差区分开。
  2. 根据信号带宽和延迟预算设定采样率。检查奈奎斯特与混叠衰减;不要用软件滤波器恢复已被混叠进入频带的信息。
  3. 选择一种带显式窗口/alpha/模型的滤波器,并计算其启动行为、延迟、内存、CPU 成本以及对阈值的影响。常见起点:有界窗口用移动平均,孤立尖峰用中值,低成本平滑用 EMA/IIR;基于模型的滤波器需要明确的模型与噪声假设。
  4. 检查模拟路径:传感器负载、RC 截止频率、ADC 采集/建立、参考与地、线缆/噪声耦合、输入保护、电压限制、去耦,以及电机/射频电流回流路径。
  5. 实现原始加滤波的遥测,以及故障/饱和指示。在目标编译前先在主机上验证确定性向量。
  6. 每次硬件迭代只改变一个因果变量。用固件相同的配置测量 ADC 引脚和电源/地。

按需加载

  • 阅读 references/filter-selection.md 了解采样数学、算法权衡、校准顺序和延迟选择。
  • 阅读 references/analog-front-end.md 了解 RC/输入网络、ADC 驱动/建立、接线、保护和测量。
  • 阅读 references/verification-and-tdd.md 了解主机、仿真、构建、目标和系统各级门。
  • 使用仅用于诊断的 examples/adc-filter-pipeline.ino 作为与板卡无关的固定速率 EMA 起点;在把计数值转换为电压前,先填入板卡相关的 ADC 假设。可复用的生成式滤波模式仍归 arduino-code-generator 所有。
  • 用 python3 scripts/filter_benchmark.py --help 或捕获的向量运行确定性辅助工具。它是设计/TDD 辅助,不能替代目标时序或电气测量。

已有的 arduino-code-generator 滤波模式 拥有可复用代码片段。本技能负责信号链诊断、滤波器选择、硬件交互与证据边界。故障隔离使用 circuit-debugger,逻辑与电源轨限制使用 wiring-safety-check,只有在检测与信号完整性确立后才使用 sensor-calibration-workbench。

输出契约

使用 共享 Arduino 技能契约:说明假设、所需工具与版本、实现步骤、测试/证据、已知限制,以及恢复/安全说明。

  • 构建证明: 主机测试与精确板卡编译(如已运行)。
  • 烧录证明: 指定端口/镜像的烧录器结果(如已运行)。
  • 硬件证明: 实测的 ADC 引脚、电源轨/地、波形或接线结果。
  • 系统证明: 真实负载/环境下观测到的传感器行为。
  • 部署证明: 现场发布、回滚与维护证据。

切勿把通过的主机测试、HTTP 响应、串口横幅或 CI 任务提升为硬件或系统证明。如果板卡、传感器、电路或测量未知,请止步于有界计划并指明下一项测量。