龙空技术网

简单的基于小波分解的心电信号ECG降噪

哥廷根数学学派 149

前言:

现在咱们对“matlab图像降噪算法”大约比较关切,同学们都需要了解一些“matlab图像降噪算法”的相关资讯。那么小编也在网摘上搜集了一些关于“matlab图像降噪算法””的相关资讯,希望同学们能喜欢,各位老铁们一起来了解一下吧!

水水更健康,心电信号ECG降噪的入门级例子

首先导入模拟纯净ECG信号,并设置相关参数

load('ecg.mat');fs=360;%采样频率t=(0:(length(ecg)-1))/fs;%时间序列N=length(t);%信号长度

引入运动伪影(motion artifacct)噪声信号

load('ma.mat');

去均值并合成带噪声信号

ecg=ecg-mean(ecg); q=[ecg ecg ecg];  d=ecg+ma;  

使用“db4”小波对带噪声ECG信号进行7层分解

[C,L] = wavedec(d,7,'db4');

重建每个子频带信号

D1 = wrcoef('d',C,L,'db4',1);D2 = wrcoef('d',C,L,'db4',2);D3 = wrcoef('d',C,L,'db4',3);D4 = wrcoef('d',C,L,'db4',4);D5 = wrcoef('d',C,L,'db4',5);D6 = wrcoef('d',C,L,'db4',6);D7 = wrcoef('d',C,L,'db4',7);A7 = wrcoef('a',C,L,'db4',7);%选取重构的子频带ref=D1+D2+D3+A7;d=[d d d];x=[ref ref ref];M=12;mu=0.01;

采用matlab的dsp工具箱的自适应滤波LMSFilter方法对信号进行降噪

nlms = dsp.LMSFilter('Length',M,'Method','Normalized LMS','StepSize',mu);reference=x';noisy=d';[y1,e1] = nlms(reference,noisy);y=y1';e=e1';

关于自适应滤波LMSFilter方法,可参考如下文章

绘制最后结果

figure(1)subplot(311)plot(q);title('original ecg');subplot(312)plot(d)title('input noisy ecg');subplot(313)plot(e)title('filtered output');

以上算法可迁移至其他类型的信号

标签: #matlab图像降噪算法