【心电信号】基于多种滤波去除心电信号基线漂移含Matlab源码
2022-04-25 23:01:32

1 简介

心电信号可以用来检测和诊断心脏疾病,心电信号在采集时经常受到呼吸活动、身体运动和皮肤与电极接触不良等影响,因此会产生基线漂移,基线漂移的存在会降低心电信号的质量。所以,在大多数心电信号处理中,包括心律失常的识别、心率变化分析和连续血压测量等,去除基线漂移成为了至关重要的一步。心电信号具有非平稳、非线性的特性,传统的去除心电信号中基线漂移的方法在对心电信号进行去噪时常因去噪过度或者不完全,容易造成大量非线性特征信息的丢失,从而破坏了心电信号本身的动力学特性,这给后续的心电信号信息分析带来了不利影响。基于中值、小波变换、IIR高通滤波去除心电信号基线漂移。

2 部分代码

clc;
clear;
close all;
%% 提取信号
M = importdata('3.txt');
fsample=1000;%采样率为1KHz
[mx,my]=size(M);
Signal=M(:,2);%M的第一列为时间,第二列为信号
length=floor(mx/2);%取原始信号的一半。
S=Signal(1:length);
%% 高通滤波,去除基线漂移的影响
disp('-------------------------------------------');
disp('1:工具箱巴特沃斯高通滤波器');
disp('2:IIR高通滤波');
disp('3:FIR高通滤波');
disp('4:中值滤波');
disp('5:稀疏小波滤波');
disp('6:中值+小波滤波');
disp('-------------------------------------------');
choose=input('选择滤波方式choose=');
switch choose
case 1
S_hp=filter_hp(S,fsample);%工具箱的巴特沃斯高通滤波—
case 2
S_hp=IIR_hp(S,fsample);%IIR高通滤波
case 3
S_hp=fir_hp1(S,fsample);%FIR高通滤波
case 4
S_hp=zzlb(S,fsample);%中值滤波
case 5
S_hp=spxblb(S,fsample);%小波滤波
case 6
S_hp=zzlb(S,fsample);%中值滤波
S_hp=xblb(S_hp,fsample);%小波滤波
end
%% 陷波器滤波,去除工频干扰
% S_stop=filter_stop(S,fs);

3 仿真结果

【心电信号】基于多种滤波去除心电信号基线漂移含Matlab源码_高通滤波

4 参考文献

[1]王菲. 心电信号基线漂移噪声去除算法研究[D]. 辽宁师范大学.

博主简介:擅长智能优化算法、神经网络预测、信号处理、元胞自动机、图像处理、路径规划、无人机等多种领域的Matlab仿真,相关matlab代码问题可私信交流。

部分理论引用网络文献,若有侵权联系博主删除。

【心电信号】基于多种滤波去除心电信号基线漂移含Matlab源码_中值滤波_02



本文摘自 :https://blog.51cto.com/u


更多科技新闻 ......