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