小波分析在心电信号去噪中的应用2006.9.25主要内容心电信号的噪声特点小波分析与传统信号处理方法的比较小波去噪的基本原理小波去噪的基本步骤小波去噪中的阈值函数和阈值的选取小波去噪中小波函数的选择去噪效果的评价程序说明总结心电信号(ECG)是典型的强噪声的非平稳的随机信号。正常心电信号的频率范围在0.01Hz-100Hz之间,而90%的ECG频谱能量又集中在0.25Hz-35Hz之间。在心电信号的采集和A/D转换过程中,心电信号不可避免地受到各种类型的噪声干扰,概括起来主要包括以下三类噪声:一、心电信号的噪声特点一、心电信号的噪声特点(1)由于电源磁场作用于心电图机与人体之间的环形电路所致的50Hz/60Hz工频干扰;(2)由于病人肌肉紧张产生的肌电干扰;(3)由于病人呼吸运动或者由电极—电极—皮肤之间界面阻抗所致的频响,一般小于1Hz的基线漂移;这些噪声干扰与心电信号混杂,引起心电信号的畸变,使整个心电信号波形模糊不清,对随后的信号分析处理,尤其是计算机自动识别诊断造成误判和漏判,因此,心电信号的消噪有重要的意义。一、心电信号的噪声特点00.511.522.533.544.55-0.8-0.6-0.4-0.200.20.40.60.81281111111811111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111Time/sVoltage/mVECGsignal100.dat二、小波分析与传统信号处理方法的比较傅立叶变换的特点:在传统的信号处理方法中,傅立叶变换作为划时代的工具架起了时间域和频率域的桥梁。傅立叶变换实际上是将信号展为不同频率正弦信号的线型叠加。从信号的傅立叶变化,能看出信号各种不同频率成分的强弱,信号能量在频率域的分布。二、小波分析与传统信号处理方法的比较傅式变换又有其局限性:傅立叶变换的核函数是正弦函数,它在时间域上是无限的,非局部化的。在去噪方面,由于傅立叶分析是将信号完全在频率域中进行分析,它不能给出信号在某个时间点的变化情况,使得信号在时间轴上的每一点突变,都会影响信号的整个频域,所以,它不能有效的区分信号中可能包含的尖峰或突变部分还是不平稳的白噪声。小波变换的特点小波变换是将时间信号展开为小波函数族的线性叠加,小波变换的核函数是小波函数,它在时间和频率域内都是局部化的。所以,小波变化可对信号同时在时-频域内进行联合分析。在去噪方面,小波分析由于能同时在时-频域中对信号进行分析,具有多分辨分析的功能,所以在不同的分解层上有效的区分信号的突变部分和噪声,从而实现信号的消噪。三、小波分析的去噪原理)(*)()(tetftsσ1_,,1,0nt在实际工程应用中,通常所分析的信号具有非线性,非平稳,并且奇异点较多的特点。含噪的一维信号模型可表示为:其中,f(t)为真实信号,s(t)为含噪信号,e(t)为噪声,为噪声标准偏差。σ三、小波分析的去噪原理有用信号通常表现为低频信号或是相对比较平稳。而噪声信号通常表现为高频信号。利用小波对含噪的原始信号分解后,含噪部分主要集中在高频小波系数中,并且,包含有用信号的小波系数幅值较大,但数目少;而噪声对应的小波系数幅值小,数目较多。基于上述特点,可以应用门限阈值法对小波系数进行处理。(即对较小的小波系数置为0,较大的保留或削弱),然后对信号重构即可达到消噪的目的。CD3CD2CA3CA2sCA1CD1小波分解的结构示意图小波分解系数示意图小波分解示意图:四、一维信号利用小波除噪的步骤1.小波变换去噪的流程示意图:预处理小波变换多尺度分解各尺度小波系数除噪小波逆变换重构信号除噪后的信号含噪信号2.小波除噪的具体步骤:(1)对含噪信号进行预处理,并进行小波分解。选择小波确定分解的层数N,然后对信号s进行N层分解。四、一维信号利用小波除噪的步骤(2)小波分解的高频系数的阈值量化。对第一层到第N层高频系数,选择软阈值或硬阈值量化处理。(3)一维小波重构。根据小波分解的第N层低频系数和第一层到第N层的高频系数,进行一维重构。在上面的步骤中,最为关键的就是如何选取阈值和如何阈值量化,从某种意义上讲,它直接影响信号去噪的质量。五、阈值函数和阈值的选取1.阈值函数阈值函数分为软阈值和硬阈值两种。为阈值。阈值后的小波系数,为小波系数,设λλww(1).硬阈值(hardthresholding)当小波系数的绝对值大于等于给定阈值时,保持不变,而小于时,令其为0。即:五、阈值函数和阈值的选取(2).软阈值(softthresholding)当小波系数的绝对值大于等于给定的阈值时,令其值为减去阈值;而小于时,令其为0.即:采用这种阈值方法去噪在实际应用中,已取得了较好的效果,但也存在着一些潜在的缺点,如硬阈值在阈值点不连续,重构可能产生一些震荡;软阈值连续,但估计的小波系数和分解的小波系数有恒定的偏差,直接影响重构信号对真实信号的逼近程度.五、阈值函数和阈值的选取2.阈值的选取阈值的选择是小波去噪和收缩最关键的一步,在去噪过程中阈值起着决定性的作用:如果太小,施加阈值后小波系数包含太多的噪声分量,达不到去噪效果;反之,则去除了有用部分,使信号失真。阈值选择方案及对应的MATLAB命令(1)固定阈值(’sqtwolog’)选取的算法是:五、阈值函数和阈值的选取(2)Stein无偏似然估计阈值(’rigrsure’)对于给定一个阈值t,得到它的似然估计,再将非似然的t最小化,就得到了所选的阈值。(3)启发式阈值(‘heursure’)它是前两种阈值的综合,是最优预测变量阈值选择,如果信噪比很小时,无偏似然估计的误差交大,此时,采用固定阈值。令:五、阈值函数和阈值的选取进行比较,如果时采用固定阈值,反之,选择无偏似然估计。(4)极大极小阈值(‘minimaxi’)它的原理是令估计的最大风险最小化,其阈值选取的算法是:六、小波函数的选择小波变换不象傅里叶变换是由正弦函数唯一决定的,小波基可以有很多种,不同的小波适合不同的信号去噪,对于确定的信号,如果小波选择不当,去噪结果可能相差很远,还有可能丢失有用的信息。面对各种小波,到底选择哪一种来处理心电信号才能满足医疗上的需要,必须经过大量的仿真研究结果来进行筛选。根据大量文献记录B样条函数适合心电去噪:样条函数是一种非紧支撑正交的对称小波,有较高的光滑性,频率特性好,分频能力强,频带相干小的特性。六、小波函数的选择在信号处理中小波的作用是带通滤波器,且对称和反对称性分别等价为线性相位和广义线性相位。我们知道,当一个带通滤波器不是线性相位或广义线性相位时,它将使通过的信号产生畸变。从理论和实际应用的观点出发,具有紧支集的小波是最富吸引力的。B样条是一类基本的样条函数,而它的支撑区是最小的.所以,B样条小波是一种合适的选择。七、小波去噪效果评价式中yi表示标准原始信号,xi表示经处理后的估计信号。其中,SNR越大越好,MSE越小越好。八、小波去噪程序输出评价结果及去噪后的心电信号去噪效果的评价根据选取的阈值去噪及重构求各层的阈值提取各尺度小波系数对被选的心电信号进行小波分解选取其中一个导联的数据调用心电数据库的数据开始去噪程序流程图八、小波去噪程序%应用db5作为小波函数进行3层分解%利用无偏似然估计阈值%对100.datfromMIT-BIH-DB的单导联数据进行去噪处理clear;clcload('D:/matlab/matlab7.2/work/M.mat');E=M(:,2);E=E';n=size(E);s=E(1:2000);%小波分解[CL]=wavedec(E,3,'db5');%从c中提取尺度3下的近似小波系数cA3=appcoef(C,L,'db5',3);%从信号c中提取尺度1,2,3下的细节小波系数cD1=detcoef(C,L,1);cD2=detcoef(C,L,2);cD3=detcoef(C,L,3);八、小波去噪程序%使用stein的无偏似然估计原理进行选择各层的阈值%cD1,cD2,cD3为各层小波系数,%'rigrsure’为无偏似然估计阈值类型thr1=thselect(cD1,'rigrsure');thr2=thselect(cD2,'rigrsure');thr3=thselect(cD3,'rigrsure');%各层的阈值TR=[thr1,thr2,thr3];%'s'为软阈值;'h'硬阈值。SORH='s';%---------去噪----------------%XC为去噪后信号%[CXC,LXC]为的小波分解结构%PERF0和PERF2是恢复和压缩的范数百分比。%'lvd'为允许设置各层的阈值,%'gbl'为固定阈值。%3为阈值的长度[XC,CXC,LXC,PERF0,PERF2]=wdencmp('lvd',E,...'db5',3,TR,SORH);八、小波去噪程序%---------去噪效果衡量(SNR越大效果越好,%MSE越小越好)------------------------%选取信号的长度。N=n(2);x=E;y=XC;F=0;M=0;forii=1:Nm(ii)=(x(ii)-y(ii))^2;t(ii)=y(ii)^2;f(ii)=t(ii)/m(ii);F=F+f(ii);M=M+m(ii);end;八、小波去噪程序SNR=10*log10(F);MSE=M/N;SM=SNR/MSE;%对比原始信号和除噪后的信号subplot(2,1,1);plot(s(1:1000));title('原始信号')subplot(2,1,2);plot(XC(1:1000));title('除噪后的信号')SNR,MSE程序运行结果:TR=0.07080.36361.0552SNR=121.6977MSE=0.0024九、总结:通过一些仿真结果来看,选择不同的小波函数和不同的阈值,去噪的效果相差甚远。选择’db5’小波,默认阈值对心电去噪处理效果较好。该程序与前一程序的不同之处主要是表现在阈值的选取上。程序的不同之处与仿真结果九、总结:%------------使用阈值法去噪--------------------%利用'ddencmp'得到除噪的默认参数%thr,分别表示是阈值%sorh软阈值(或硬阈值)%keepapp允许用户保存的低频系数%'den','wv',E分别为降噪('cmp'表示压缩)%小波('wp'小波包),和降噪信号.[thr,sorh,keepapp]=ddencmp('den','wv',E);%去噪clean=wdencmp('gbl',C,L,'db5',3,thr,sorh,keepapp);%'gbl'为所有的级次都选择相同的阈值;%'lvd'则对不同的级次选择不同的阈值。程序的核心部分:SNR=131.6340MSE=1.6547e-004去噪评价及仿真结果: