算法步骤
加载并预处理原始脑电信号
读取一段含运动伪迹的脑电数据,去掉直流分量(减去均值),并将信号幅值归一化到 [-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),并绘制时域对比图和功率谱对比图,直观验证去噪效果。