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

脉冲噪声检测方法

在主动降噪、声音检测、语音信号处理等领域,脉冲噪声对系统构建和算法设计都有着特别大的影响,本文章主要总结一下目前主流的脉冲噪声检测方法,为后续主动降噪学习做一些准备工作。

1. 归一化功率序列的脉冲噪声检测

与正常信号相比,脉冲尖峰具有明显更大的幅度值。因此,可以利用一定时间长度的信号功率来检测脉冲噪声。

首先,数字化信号可以分为多个帧,每个帧包含特定时间段的几个样本。因此第 k 帧的功率计算如下公式(1):

然后,我们按块计算归一化功率,每个块的长度为 L,如下公式(2):

接着计算一个块内归一化功率的方差 pv,如下公式(3)所示:

最后结合设定的阈值判断是否有脉冲噪声。

公式(1)详解

第一步主要进行分帧,把长信号分成一小段一小段的。

  • N:每一帧里包含的“采样点”数量。采样点是数字信号的最小单位,就像电影是一帧一帧画面拼起来的,数字信号是一个一个数值点拼起来的,一帧里有 N 个点。

  • k:第 k 帧,也就是第几个小段,k=0 是第一帧,k=1 是第二帧,以此类推。

  • x(i+kN):第 k 帧里第 i 个采样点的数值,可以理解成“第 k 个小段里,第 i 个位置的信号大小”。

第二步算每一帧的功率,把这一帧里每个采样点的数值先平方,再全部加起来,得到的结果 p(k) 就是第 k 帧的功率。

公式(2)详解:

第一步先做分块,把好多帧打包成一个大组,我们把 L 个帧(也就是 L 个小段)拼成一个更大的组,叫一个块。

  • j:第 j 个块,也就是第几个大组;
  • pw(j,k):第 j 个块里第 k 帧的功率(就是第一步算出来的 p(k),只是归到了第 j 个块里)。

第二步进行归一化。归一化就是:把这个块里所有帧的功率,统一换算到 0 到 1 之间的数值。举个例子:离麦克风近的信号整体音量就大,离得远的整体音量小,直接比功率不公平。归一化之后,我们只看这个块里,每一帧能量的相对高低,不受整体音量大小的影响。

公式是怎么算的?

  • 分子:当前这一帧的功率,减去这个块里最小的功率值;
  • 分母:这个块里功率的总范围 = 这个块里最大的功率值 - 最小的功率值。
  • 算出来的 pn(j,k),就是归一化之后的功率:按比例落在 0~1 之间。

公式(3)详解:该公式就是标准的无偏样本方差离散公式。

2. 条件中值滤波器检测脉冲噪声

首先讲解一下中值滤波器,中值滤波器广泛用于消除图像和音频文件中包含的脉冲噪声。中值滤波器的输出是有序输入序列的中值,如下公式所示:

中值滤波器消除脉冲噪声的原理就是:对极端异常值完全不敏感

举个最直观的例子:一个窗口里的 5 个信号点是:[2.1, 2.3, 100, 2.2, 2.4],其中第三个点 100 是脉冲噪声尖峰。

  1. 从小到大排序后:[2.1, 2.2, 2.3, 2.4, 100]
  2. 中位数是正中间的2.3

条件中值检测脉冲噪声是怎么实现的呢?

完整的检测流程分 3 步:

  1. 滑动窗口取数:窗口从信号开头往后滑动,每次移动 1 个采样点,每次取窗口内的 L 个连续信号点。
  2. 计算窗口中值:对窗口内的数排序取中位数 mf(k),作为正常信号的参考值。
  3. 条件判断(检测噪声):设定一个噪声阈值 Th,计算当前点原始值和中值的差值绝对值,做判断:

3. 信号相关的阶序均值算法检测脉冲噪声

SD-ROM 全称是信号依赖型排序均值算法(Signal-Dependent Rank-Order Mean),它是普通中值滤波 / 条件中值滤波的改进版。

前面讲的中值滤波方法,遇到持续时间长、密度高的强脉冲噪声时,窗口里的噪声点会变多,计算量会大幅上升,检测准确率也会下降。SD-ROM 最早是用来给图片去除脉冲噪声(比如照片的椒盐噪点)的,这里改成了 1 维信号版本,用固定的 5 点滑动窗口,计算量小,对高密度脉冲噪声的检测效果比普通中值法更好。

它的核心思路:不直接拿当前点和中位数比大小,而是先把窗口里的数按大小排序,根据信号的局部分布自动选择差值的计算方式,通过排序后的差值大小判断中间的点是不是异常脉冲。

具体的实现过程如下:

步骤 1:取 5 点滑动窗口

窗口每次取连续的 5 个信号点,记为 X1, X2, X3, X4, X5,其中 X3 是窗口正中间的点,也就是我们当前要检测的目标点。窗口每次向后滑动 1 个位置,下一个窗口就变成 X2, X3, X4, X5, X6,继续检测新的中间点 X4,以此类推滑完整个信号。

步骤 2:排序得到

把这 5 个数从小到大排序,得到排序后的序列 r1, r2, r3, r4, r5。

步骤 3:计算排序差值 di

步骤四:脉冲噪声检测

如果满足以下两个条件中的任何一个,则算法检测到脉冲噪声X3

三种方法对比

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

相关文章:

  • 20-搜索越输越乱-用防抖序号和空态统一异步结果
  • 一维数组的使用
  • 2026年7月最新积家杭州未来科技城万达广场维修保养服务电话 - 积家官方售后服务中心
  • Unity技能系统开发:基于Game Creator 2的Abilities插件实战指南
  • Chowla猜想:刘维尔函数自相关与数论随机性的核心挑战
  • 使用Visual C++创建Windows快捷方式:IShellLink与IPersistFile接口详解
  • Windows环境iOS应用砸壳实战:Frida逆向QQ与淘宝完整指南
  • 2026年7月游览船企业推荐,画舫游览船/观光游览船/观光船/游船/新能源电动船/电动巡逻艇,游览船供应商哪家可靠 - 品牌推荐师
  • 2026年7月最新南宁百达翡丽官方售后热线及客户服务网点地址 - 百达翡丽服务中心
  • 2026年7月最新嘉兴帝舵官方售后服务网点地址及客服电话一览 - 帝舵中国官方服务中心
  • 21-缓存越用越脏-给本地数据加版本过期和重建策略
  • java数据类型:Long 和 long 在雪花算法ID下的陷阱
  • Java语言中的类
  • 多态与虚函数:面试官问“底层怎么实现的”,这样答直接拿满分
  • static关键字的四种用法:面试官问“static有几种用法”,90%的人答不全
  • Unity XR开发入门:从SDK导入到交互配置的完整指南
  • CSS字体样式(font)[实战指南]
  • 亲身探访广州泰格豪雅官方售后服务中心|详细网点地址与售后热线(2026年7月最新) - 亨得利官方服务中心
  • Unity BlendShape与Animation Clip实现角色动态表情完整指南
  • 2026年7月最新温州劳力士官方售后客服中心地址电话及服务网点分布 - 劳力士官方服务中心
  • 卫星视频目标跟踪:从相关滤波到深度学习的演进与挑战
  • Folium地图可视化实战:从数据到交互式地理看板
  • 宝珀手表网上预订售后保养服务指南权威公示(2026年7月最新) - 宝珀官方售后服务中心
  • Pandas数据清洗速查手册:12个高频函数实战指南
  • Gifski跨平台视频转GIF终极指南:高质量转换与自动化脚本
  • 基于C++20协程的异步网络编程:libfv框架解析与实践指南
  • YOLOv8道路坑洼检测实战:从数据到部署全流程解析
  • 图像锐度评分算法实战:从方差、点锐度到梯度法的选择与优化
  • C++跨平台开发中整数类型陷阱与<cstdint>解决方案
  • 劳力士中国官方售后服务中心|全部网点地址及24小时热线权威信息通告(2026年7月更新) - 劳力士服务中心