資源簡介
可以實現心電信號的對基線漂移的去除,里面關鍵的代碼可以查看。
代碼片段和文件信息
?clc?;clear?all;?close?all;
%--------------------------------------------------------------
sfreq=500;
M=dlmread(‘T103dat.txt‘);
%M=dlmread(‘ecg.txt‘);
[ECG]=Read500HzECGdat(M-1sfreq1024);%500Hz?Ecg數據的轉化
sfreq=250;
ECG=ECG(405000:4080002);%截取數據點405000到408000的數,第二列
?%ECG=ECG(50:8001);
%??plot(ECG)
?s=ECG;
?
?[CL]?=?wavedec(s11‘db8‘);%多級一維小波分解,返回小波信號x在N級分解,??N必須是一個嚴格的正整數(見WMAXLEV)。?
?%輸出分解結構包含小波分解向量C和簿記向量L.對于[C,L]?=?wavedec(X,N,Lo_D,Hi_D),
?%Lo_D是分解低通濾波器
%?Hi_D是分解高通濾波器。
%該結構組織為:
%C?=?[app。COEF(N)|。DET。?系數(N)|?...?|?det。COEF。(1)]
%L(1)=應用程序的長度。COEF。(N)
%?L(i)=?det的長度。?(N-i?+?2),對于i?=?2,...,N?+?1
%?L(N?+?2)=長度(X)。
%?a10?=?appcoef(C?L?‘db8‘10);
%?d1?=?detcoef(CL1);??
%?d2?=?detcoef(CL2);
%?d3?=?detcoef(CL3);
%?d4?=?detcoef(CL4);
A9?=?wrcoef(‘a‘CL‘db8‘9);??%?從近似系數得到近似信號A
D1?=?wrcoef(‘d‘CL‘db8‘1);??%?從細節系數得到細節信號D
D2?=?wrcoef(‘d‘CL‘db8‘2);
D3?=?wrcoef(‘d‘CL‘db8‘3);
D4?=?wrcoef(‘d‘CL‘db8‘4);
D5?=?wrcoef(‘d‘CL‘db8‘5);??%?從細節系數得到細節信號D
D6?=?wrcoef(‘d‘CL‘db8‘6);
D7?=?wrcoef(‘d‘CL‘db8‘7);
D8?=?wrcoef(‘d‘CL‘db8‘8);
D9?=?wrcoef(‘d‘CL‘db8‘9);
%wrcoef從一維小波系數重建單個分支。
%wrcoef重建一維信號的系數,
%?給出一個小波分解結構(C和L)和
%要么是指定的小波(‘wname‘,參見WFILTERS獲取更多信息)
%?或指定的重建濾波器(Lo_R和Hi_R)。
%??
%?X?=?wrcoef(‘type‘,C,L,‘wname‘,N)計算的向量
%?基于小波的重構系數
%?分解結構[C,L](更多信息見WAVEDEC),
%?????在N級。“wname”是一個包含小波名稱的字符串。
%???
%?????參數“類型”決定是否近似
%?(‘type‘=‘a‘)或細節(‘type‘=‘d‘)系數
%?重建。
%?當‘type‘=‘a‘時,允許N為0;除此以外,
%?嚴格的正數N是必需的。
%?級別N必須是一個整數,使得N?<=?length(L)-2。
%?
%?X?=?wrcoef(‘type‘,C,L,Lo_R,Hi_R,N)計算系數
%?如上所述,鑒于你指定的重建。
%??
%?X?=?wrcoef(‘type‘,C,L,‘wname‘)和
%?X?=?wrcoef(‘type‘,C,L,Lo_R,Hi_R)重建系數
%?最大水平N?=長度(L)-2。
s1=D1+D2+D3+D4+D5+D6+D7;
s2=smooth(ECG7‘sgolay‘);%平滑濾波
%index?=?1:1024;
%x?=?leleccum(index);
%產生噪聲信號
%?init?=?2055615866;
%?randn(‘seed‘init);
%?nx?=s+18*randn(size(s));
%獲取消噪的閾值
[thrsorhkeepapp]?=?ddencmp(‘den‘‘wv‘s1);
%?ddencmp用于去噪或壓縮的默認值。
%?????[THR,SORH,KEEPAPP,CRIT]?=?ddencmp(IN1,IN2,X)
%?????返回去噪或壓縮的默認值,
%?????使用小波包或小波包,輸入矢量
%?????或矩陣X,其可以是1-D或2-D信號。
%?????THR是門檻,SORH是軟或硬
%?????閾值,KEEPAPP允許你保持近似
%?????系數和CRIT(僅用于小波包)
%?????是熵名(見WENTROPY)。
%?????IN1是“den”或“cmp”,IN2是“wv”或“wp”。
%??
%?????對于小波(三個輸出參數):
%?????[THR,SORH,KEEPAPP]?=?ddencmp(IN1,‘wv‘,X)
%?????返回用于去噪的默認值(如果IN1?=“den”)
%?????或壓縮(如果IN1?=‘cmp‘)X.
%?????這些值可以用于WDENCMP。
%??
%?????對于小波包(四個輸出參數):
%?????[THR,SORH,KEEPAPP,CRIT]?=?ddencmp(IN1,‘wp‘,X)
%?????返回用于去噪的默認值(如果IN1?=“den”)
%?????或壓縮(如果IN1?=‘cmp‘)X.
%?????這些值可以用于WPDENCMP。
%對信號進行消噪
xd?=?wdencmp(‘gbl‘s1‘db4‘2thrsorhkeepapp);
figure(3)
subplot(221);
plot(s);
title(‘原始信號‘);
subplot(222);
plot(s1);
title(‘含噪信號‘);
subplot(223);
plot(xd);
title(‘消噪后的信號‘);
subplot(224);
plot(s2);
title(‘平滑濾波信號‘);
%?wdencmp使用小波去噪或壓縮。
%?????wdencmp執行去噪或壓縮過程
%?????信號或圖像使用小波。
%??
%?????[XC,CXC,LXC,PERF0,PERFL2]?=
%?????wdencmp(?‘GBL‘,X,?‘wname‘,N,THR,SORH,KEEPAPP)
%?????返回輸入的去噪聲或壓縮版本XC
%?????信號X(1-D或2-D)由小波系數獲得
%?????使用全
- 上一篇:Matlab通信工程仿真
- 下一篇:MATLAB智能算法超級學習手冊
評論
共有 條評論