基于MATLAB的表面肌电信号(sEMG)带通与陷波联合滤波系统
项目介绍
本项目是一个专注于生物医学信号处理的MATLAB仿真系统,旨在解决表面肌电信号(sEMG)采集过程中常见的噪声干扰问题。sEMG信号作为一种微弱的生物电信号,极易受到低频运动伪影、高频测量噪声以及电力线工频干扰(50Hz/60Hz)的影响。
本系统通过构建级联数字滤波器方案,结合了高阶Butterworth带通滤波器和高Q值IIR陷波滤波器,能够有效提取20Hz至500Hz的有效肌电能量成分,并精准剔除50Hz工频干扰。系统采用零相移滤波技术,确保了信号波形的相位完整性,并提供了完整的时域与频域(PSD)可视化分析工具。
关键功能特性
- sEMG信号仿真模拟:内置高保真信号生成器,能够模拟包含基线漂移、工频干扰、高频噪声以及高斯调制肌肉爆发活动的原始EMG数据。
- 联合滤波策略:
*
带通滤波:去除运动伪影(<20Hz)和高频电子噪声(>500Hz)。
*
陷波滤波:针对性去除50Hz电力线干扰。
- 零相移处理:全流程采用双向滤波技术,消除IIR滤波器带来的非线性相位失真,保持肌电信号的时域特征。
- 频域功率谱分析:计算并对比滤波前后的功率谱密度(PSD),量化评估去噪效果。
- 多维度可视化:提供时域波形对比、PSD频谱对比以及滤波器幅频响应特性的直观展示。
系统环境要求
- MATLAB R2016b 或更高版本
- Signal Processing Toolbox(信号处理工具箱,用于
butter, iirnotch, filtfilt, pwelch 等核心函数)
使用方法
- 将项目代码保存为
main.m。 - 在MATLAB环境中打开该文件。
- 点击运行(Run),系统将自动执行信号生成、滤波器设计、数据处理及图表绘制。
- 等待程序生成三个分析窗口,分别观察时域、频域效果及滤波器特性。
技术实现细节
本项目仅包含一个主程序文件 main.m,其内部逻辑严格按照以下流程实现:
1. 参数设置与信号生成
系统首先定义采样频率为
2000Hz,时长5秒。通过内部子函数构建模拟信号,该信号由以下部分叠加而成:
- 纯净肌电成分:利用高斯白噪声作为载波,乘以由三个不同时间点的高斯函数构成的包络线,模拟肌肉收缩时的电活动爆发。
- 工频干扰:叠加50Hz正弦波及其150Hz谐波成分。
- 基线漂移:合成低频(0.5Hz和1.2Hz)正弦波,模拟因电极移动或皮肤接触阻抗变化产生的低频伪影。
- 高频噪声:叠加宽带高频随机噪声。
2. 高阶数字滤波器设计
系统设计了两个独立的滤波器对象:
*
类型:Butterworth滤波器。
*
阶数:4阶。
*
参数:截止频率设定为 [20Hz, 500Hz]。
*
目的:Butterworth滤波器具有通带平坦的特性,不仅能有效保留肌电信号的主能量区,还能最大程度减少对有效信号幅值的衰减。
*
类型:IIR陷波滤波器(使用
iirnotch 函数设计)。
*
参数:中心频率为50Hz,带宽(Bandwidth)设定为2Hz。
*
特性:高Q值设计使得滤波器具有极窄的阻带,仅针对50Hz进行深度衰减,而对48Hz或52Hz等邻近频率的影响微乎其微,从而保护了该频段内的有效肌电信息。
3. 双向零相移滤波(Zero-Phase Filtering)
为避免常规因果滤波器造成的相位滞后或波形畸变,代码中明确使用了
filtfilt 函数进行信号处理。
- 流程:信号先正向通过滤波器,再反向通过滤波器。
- 效果:这种双向处理抵消了相位偏移,实现了零相位失真(Zero-phase distortion)。
- 级联顺序:原始信号首先经过带通滤波器处理,其输出作为输入再次经过陷波滤波器处理,最终获得纯净信号。
4. 功率谱密度(PSD)分析
为了从频域验证降噪效果,代码使用Welch法(
pwelch 函数)计算信号的功率谱密度。
- 参数配置:使用汉明窗(Hamming window),窗口长度512点,重叠256点,NFFT为1024点。
- 输出:分别计算原始含噪信号和最终滤波信号的PSD,并转换为分贝(dB)刻度以便于对比。
可视化输出说明
程序运行结束后会生成三个具体的图形窗口:
- 时域分析: 滤波前后对比
* 包含三个子图,分别展示:
1. 受污染的原始EMG模拟信号。
2. 仅经过20-500Hz带通滤波后的中间信号(可见基线漂移被移除)。
3. 进一步经过50Hz陷波后的最终信号(可见周期性工频干扰被平滑)。
* 所有子图均截取前2秒数据以便观察波形细节。
- 频域分析: 功率谱密度(PSD)
* 在同一坐标系下叠加绘制原始信号(灰色)和滤波后信号(红色)的PSD曲线。
* 图中通过辅助线明确标注了20Hz(下限)、500Hz(上限)和50Hz(工频)的关键位置。
* 用户可以清晰地看到50Hz处的尖峰被压低,且20Hz以下和500Hz以上的噪声能量显著下降。
- 滤波器幅频响应
*
左图:展示Butterworth带通滤波器的频率响应,验证通带平坦度和阻带衰减速率。
*
右图:展示IIR陷波滤波器的频率响应,验证在50Hz处的深陷特性及窄带宽特性。