基于二进边界经验小波变换和Savitzky‑Golay-TV滤波的眼动伪影自适应去除方法(MATLAB)

作品简介

完整代码由知乎学术咨询获取

https://www.zhihu.com/consult/people/792359672131756032?isMe=1

如果你对信号滤波/降噪,机器学习/深度学习,时间序列预分析/预测,设备故障诊断/缺陷检测/异常检测有疑问,或者需要论文思路上的建议,欢迎咨询

担任《MSSP》《中国电机工程学报》《宇航学报》《控制与决策》等期刊审稿专家,擅长领域:信号滤波/降噪,机器学习/深度学习,时间序列预分析/预测,设备故障诊断/缺陷检测/异常检测

脑电图(EEG)在采集过程中极易受到眼动和眨眼产生的电生理伪影干扰,这些伪影主要集中在低频段(通常<4 Hz,即delta节律)。传统去噪方法如带通滤波会同时损失脑电中的有用低频成分,而经验模态分解(EMD)虽自适应但存在模态混叠。经验小波变换(EWT)通过自适应划分频谱构建小波滤波器组,能更精细地分离信号成分。在此基础上,二进边界EWT采用倍频程划分频带,使分解更符合生理信号的节律特性。得到各子带后,针对伪影集中的低频子带(delta节律),首先用Savitzky Golay滤波器进行平滑,再用全变分去噪进一步抑制残留噪声,最后将处理后的低频分量与其余高频子带叠加,得到干净的重构EEG。

这个方法先利用二进边界EWT把脑电信号拆成不同频段的子带,找到眼动伪影主要集中的最低频子带,用SG滤波和TV去噪联手把里面的伪影“拔掉”,再和其他子带拼回去,就能得到干净无伪影的脑电信号。

算法步骤

读入含伪影的EEG信号 将原始EEG信号(含眼动、眨眼伪影)与一个干净参考信号(如果有)加载到工作区。

设计二进边界EWT滤波器组 根据采样率,按倍频程划分频带(例如6层,覆盖0~Fs/2),计算每个频带的边界频率,并将其转换为归一化角频率,然后构建Meyer小波滤波器组。

分解信号 对原始EEG信号做FFT,再与滤波器组中每个滤波器的共轭相乘,逆变换得到各个频带的子带分量(共6个子带,其中第一个子带对应最低频段,即delta节律)。

对低频子带进行SG滤波 取第一个子带(delta节律),用Savitzky Golay滤波器(阶数2,窗口长度由信号长度和采样率决定)对其进行平滑,减少毛刺。

用全变分(TV)去噪 将SG滤波后的结果作为输入,使用迭代Majorization Minimization算法求解TV去噪问题,得到干净的低频成分,并计算残差(即被剔除的伪影)。

重构无伪影信号 将TV去噪后的低频分量与其余子带(theta、alpha、beta等)直接相加,得到最终干净的EEG信号。

评估效果 计算重构信号与干净参考信号之间的互信息、相关系数、信噪比改善等指标,并绘制功率谱对比图,验证伪影消除效果。


创作时间: