当前位置: 首页 > news >正文

滑动窗口去抖动:连续 N 次满足条件才算数

一句话: 用 ADC 监测模拟信号时,单次读数可能被干扰毛刺影响导致误判。滑动窗口法:连续 N 次读数都满足条件才确认状态变化——既抗干扰又不延迟响应。

适合谁读:适合嵌入式开发者、单片机初学者及遇到类似问题的工程师

为什么单次阈值不够

用 ADC 读取电压来判断"稳定了没有":

if (abs(vtec - vtec_last) < 100) { // 判为稳定 }

问题:

  • 刚启动时 VTEC 恰好经过零点→ 单次满足条件 → 误判为稳定(实际还在剧烈变化)
  • 外部干扰导致 VTEC 瞬间跳变→ 单次不满足条件 → 误判为不稳定(实际已经很稳了)

滑动窗口法

不只看本次,看连续 N 次:

#define STABLE_THRESHOLD 100 // 波动阈值 #define STABLE_COUNT 3 // 连续稳定次数 int16_t i16LastVal; uint8_t u8StableCnt; void Monitor(int16_t i16CurrentVal) { int16_t i16Delta = abs(i16CurrentVal - i16LastVal); if (i16Delta < STABLE_THRESHOLD) { u8StableCnt++; // 这次稳了,计数+1 if (u8StableCnt >= STABLE_COUNT) { SetState(STABLE); // 连续N次都稳 → 真稳了 } } else { u8StableCnt = 0; // 波动超阈值 → 清零,重来 } i16LastVal = i16CurrentVal; }

为什么比单次阈值好

单次: ✓ ✓ ✗ ✓ ✓ → 毛刺触发误判 滑动窗口: ✓ ✓ ✗ ✓ ✓ → 计数被清零,等连续 3 次才判稳
单次阈值滑动窗口
抗毛刺差,一次干扰就误判好,需要连续 N 次
响应速度延迟 N 个采样周期
参数只有阈值阈值 + 连续次数

参数怎么设

#define STABLE_THRESHOLD 100 // mV,靠实测定——太小误报多,太大漏报 #define STABLE_COUNT 3 // 次数,愿意多等就改大

THRESHOLD × COUNT决定了判断窗口的长度。100ms 采样 × 3 次 = 300ms 判稳——既抗干扰又不至于等太久。


总结

要点说明
原理不只看本次,看连续 N 次
好处单次毛刺不触发误判
代价延迟 N 个采样周期
适用任何需要"稳定判据"的 ADC 监测场景

不需要复杂的滤波器,一个滑动窗口计数器就够了。


有用的话点个收藏,下次调试直接用。有问题欢迎评论区交流,看到了都会回。

下一篇:用分和元讲透(附代码)——NTC测温、SPI通信、I2C从机、定点数运算——外设驱动从入门到精通

http://www.jsqmd.com/news/1199853/

相关文章:

  • Java 内存管理:从堆到垃圾回收的工程实践
  • AI技术演进:从深度学习革命到现代大模型实践
  • C# 泛型详解:从入门到掌握 Generics,写出高复用、高性能代码
  • 拆解与洞察:从一枚18元的光电烟感报警器看国产消防电子的设计哲学
  • 网页字体优化:从格式选择到性能提升实战
  • Elsevier投稿追踪终极指南:告别焦虑,实时掌握审稿进度的完整教程
  • 2026苏州卫生间漏水维修怎么办?对比3家正规公司报价与施工方案(7月) - 防水企业百科
  • Python操作MySQL:从基础连接到CRUD实战
  • Windows文件扩展名安全与操作全解析
  • 如何免费在线查看SQLite数据库?这个浏览器工具让你3分钟上手
  • Windows系统光标自定义:从原理到实践的完整指南
  • 互联网大厂 Java 求职面试:从视频直播到微服务的挑战
  • Java集成友盟推送实战与优化指南
  • AI学习工具实战:xiaozhiAI应用与效率提升指南
  • 电商评论数据分析系统开发与情感分析实践
  • 三层交换机VLAN间通信与隔离:从基础互通到精细化ACL策略实战
  • 从零开始玩转业余无线电:新手快速上手指南
  • 音频发生器原理与硬件设计实战指南
  • Sopro TTS模型架构解析:轻量级设计背后的技术原理
  • VS Code本地接入DeepSeek V4 Pro替代Claude Code
  • 实测徐汇浦东长宁多家回收商!百达翡丽 Calatrava 裸表差价上千,哪家无盒证按实时行情估价 - 融媒生活
  • Linux系统运维实战:从环境搭建到性能调优
  • 数据库连接池配置陷阱与性能调优实战
  • 深入理解bpftrace与eBPF事件探测技术
  • Claude Code子代理机制:提升AI开发效率的并行处理方案
  • 终极Blender到虚幻引擎数据转换指南:免费Datasmith插件完整教程
  • Xen虚拟化架构详解:OpenEuler环境下的核心组件与工作原理
  • AI编程助手协作架构:多Agent分工提升开发效率
  • Python操作MySQL数据库实战指南
  • 2026南宁外墙渗水维修怎么处理?对比3家正规公司报价与施工方案(7月) - 防水企业百科