【小波域+自适应SG滤波】基于小波分解和参数优化Savitzky-Golay滤波的运动伪迹自适应去除算法(MATLAB)

作品简介

算法步骤

加载并预处理原始脑电信号

读取一段含运动伪迹的脑电数据,去掉直流分量(减去均值),并将信号幅值归一化到 [-1, 1] 范围,让后续处理更稳定。

小波分解

对预处理后的信号进行 5 层小波分解(使用 db4 小波),得到 5 层细节分量(高频部分)和 1 层近似分量(低频部分)。一般认为运动伪迹主要集中在低频段,因此近似分量是我们要重点处理的对象。

准备滤波参数网格

定义 SG 滤波器的两个关键参数:多项式阶数(从 1 到 10)和窗口长度(以采样点数为单位,从 0.5 倍采样率到 1.5 倍采样率,步长 0.1 倍采样率)。同时将窗口长度强制调整为奇数,因为 SG 滤波器要求窗口长度为奇数。

遍历参数组合,计算评价指标

对每一组(阶数, 窗口长度):

对近似分量做 SG 滤波,得到平滑后的低频成分。

计算残差(近似分量减去平滑后分量)。

用残差加上所有细节分量,重建出滤波后的完整信号。

计算重建信号与原始信号的功率谱密度在 Delta 频段(0–4 Hz)的平均绝对误差(MAE_D),作为该组参数的评分。

记录所有参数组合的 MAE_D 值。

选择最优参数

在所有参数组合中,找出 MAE_D 最小的那一组,即让滤波前后信号在低频段功率谱差异最小的参数。这个参数就是针对当前脑电数据的最优 SG 滤波设置。

最终滤波与信号重建

用选出的最优阶数和窗口长度,再次对近似分量进行 SG 滤波,得到最优平滑后的低频成分,然后与所有细节分量相加,重建出最终去噪后的脑电信号。

效果评估与输出

计算去噪信号与原始信号的互信息(MInfo)以及最终的功率谱密度平均绝对误差(MAEDfinal),并绘制时域对比图和功率谱对比图,直观验证去噪效果。


创作时间: