1 簡介
心電信號可以用來檢測和診斷心臟疾病,心電信號在采集時經(jīng)常受到呼吸活動、身體運動和皮膚與電極接觸不良等影響,因此會產(chǎn)生基線漂移,基線漂移的存在會降低心電信號的質(zhì)量。所以,在大多數(shù)心電信號處理中,包括心律失常的識別、心率變化分析和連續(xù)血壓測量等,去除基線漂移成為了至關(guān)重要的一步。心電信號具有非平穩(wěn)、非線性的特性,傳統(tǒng)的去除心電信號中基線漂移的方法在對心電信號進行去噪時常因去噪過度或者不完全,容易造成大量非線性特征信息的丟失,從而破壞了心電信號本身的動力學(xué)特性,這給后續(xù)的心電信號信息分析帶來了不利影響?;谥兄?、小波變換、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 仿真結(jié)果
4 參考文獻
[1]王菲. 心電信號基線漂移噪聲去除算法研究[D]. 遼寧師范大學(xué).
博主簡介:擅長智能優(yōu)化算法、神經(jīng)網(wǎng)絡(luò)預(yù)測、信號處理、元胞自動機、圖像處理、路徑規(guī)劃、無人機等多種領(lǐng)域的Matlab仿真,相關(guān)matlab代碼問題可私信交流。
部分理論引用網(wǎng)絡(luò)文獻,若有侵權(quán)聯(lián)系博主刪除。
本文摘自 :https://blog.51cto.com/u