3. 平滑处理基础
降采样解决了“数据太多”的问题,但采样点减少后,噪声的相对影响会被放大:原本被高频采样平均掉的随机抖动,在低采样率下可能变成明显的毛刺。平滑处理的目标是在保留有用信号特征的前提下压制噪声。本节介绍四种最常用的平滑方法,重点不是背公式,而是理解每种方法“对什么样的噪声有效、会损伤什么样的信号特征”,从而在实际实验中做出正确选择。
四种方法的原理与信号视角
移动平均是最直观的方法:对每个点取前后共 N 个点的算术平均作为输出。它本质上是一个矩形窗的卷积,等效于一个低通滤波器。窗口越宽,平滑越强,但通带边缘越模糊,阶跃响应会出现明显的斜坡过渡。移动平均对白噪声抑制效果与 √N 成正比,计算量极小,适合作为快速预处理或对实时性要求高的场合。缺点是它会削弱甚至抹平窄脉冲和陡峭边沿,且对脉冲型噪声(如偶发尖峰)几乎无效——一个大幅值野值会被平均进窗口内的所有输出点,造成“污染扩散”。
指数平滑用递推方式实现:y[k] = α·x[k] + (1−α)·y[k−1],其中 α 在 0 到 1 之间。它相当于一个一阶 IIR 低通,只需保存上一个输出值,内存占用极小,非常适合嵌入式系统逐点流式处理。α 越小平滑越强、滞后越大;α 越大响应越快、平滑越弱。指数平滑的相位滞后是频率的函数,对动态信号的时延影响比对称移动平均更明显,因此常用于对实时性要求高但允许一定滞后的监测类信号,而不适合需要精确对齐时间轴的波形分析。
Savitzky-Golay 滤波(SG 滤波)的核心思想是在滑动窗口内用低阶多项式做最小二乘拟合,取拟合多项式在窗口中心处的值作为输出。与移动平均的“常数拟合”不同,SG 滤波能更好地保留信号的局部形状——峰高、峰宽和拐点位置基本不变,这正是它在光谱、色谱、生物电信号等领域广受欢迎的原因。其效果由两个参数决定:窗口长度和多项式阶数。窗口越长平滑越强;阶数越高保形能力越强但噪声抑制越弱。工程上常用 2 阶或 3 阶多项式配 5~15 点窗口。需要注意,SG 滤波对脉冲噪声同样敏感,且窗口长度必须为奇数。
中值滤波则完全不同:它取窗口内所有点的中位数作为输出。中位数对极端值不敏感,因此中值滤波专门用于去除脉冲型噪声(椒盐噪声、偶发尖峰、传感器跳变),同时能较好地保留阶跃边沿。窗口长度一般取 3、5、7 等奇数。它的局限在于对高斯白噪声的抑制能力不如线性平滑,且对缓变信号的细微结构可能产生“台阶化”效应。实际工程中常把中值滤波与线性平滑串联使用:先用中值滤波剔除野值,再用移动平均或 SG 滤波压制剩余随机噪声。
参数选择与实际操作
以一段采样率 1 kHz、含高斯白噪声和偶发尖峰的高频实验数据为例(以下为教学示例参数,非实测结果)。若直接做 10 倍降采样,尖峰会被保留并混叠进低频段,因此应先平滑再降采样。合理的处理链是:先用 5 点中值滤波剔除尖峰,再用 11 点、2 阶 SG 滤波压制随机噪声,最后做 10 倍抽取。窗口长度 11 对应约 11 ms 的时间跨度,需确认它远小于信号中关注特征的宽度,否则会把真实峰展宽。
参数选择有一条通用原则:平滑窗口的时间跨度必须明显小于有用信号的最快变化时间尺度。例如关注的特征宽度约 50 ms,则窗口不宜超过 10~15 ms。对于移动平均,窗口 N 与噪声抑制的关系约为 1/√N,但边沿过渡宽度也约为 N 个采样点;对于 SG 滤波,可先固定阶数为 2 或 3,再逐步增大窗口,观察峰高和峰位是否开始偏移,一旦偏移明显即停止增大。指数平滑则通过 α 调节:α = 0.1~0.3 适合缓变监测信号,α = 0.5 以上适合需要快速响应的场合。
适用场景速查
- 移动平均:实时预处理、对计算量敏感、信号特征较宽缓的场合;不适合含尖峰或需要保峰形的数据。
- 指数平滑:嵌入式逐点流式处理、监测类缓变信号;不适合需要精确时间对齐的波形分析。
- Savitzky-Golay:光谱、色谱、生物电等需要保留峰高、峰宽和拐点位置的波形分析;窗口须为奇数,阶数取 2~3。
- 中值滤波:传感器跳变、椒盐噪声、偶发尖峰的剔除;常作为线性平滑的前置步骤串联使用。
实际工程中很少只用一种方法。更稳妥的做法是先诊断噪声类型:画出原始数据的局部放大图,若看到孤立的大幅值跳变,优先中值滤波;若噪声呈均匀随机分布,则用移动平均或 SG 滤波。平滑之后务必与原始数据叠加比对,确认有用特征未被损伤,再进入降采样环节。