论文部分内容阅读
摘要:介绍一种基于迭代次数变步长的LMS算法,通过自适应噪声抵消系统,对心电信号中的工频干扰进行抑制。实验结果表明,基于迭代次数变步长的LMS算法滤波效果最好,信噪比提高了46.0149dB,同时收敛速度也是最快的,并且具有好的实时性,验证了该算法在抑制工频干扰方面的有效性和优越性,有重要的理论意义和实用价值。
关键词:ECG信号;工频干扰;自适应噪声抵消系统;迭代次数变步长;LMS算法
中图分类号:TP23文献标识码:A文章编号:16723198(2007)11028003
1心电信号的自适应噪声抵消系统
在对随机数字信号的滤波处理中,自适应滤波器的特点是当输入过程的统计特性未知时,或者输入过程的统计特性变化时,能够相应地调整自身的参数,以满足某种准则的要求,达到最优化滤波。采用自适应处理,具有非常好的自适应性,尤其是自适应噪声抵消系统是心电信号工频干扰抑制中最通用的方法。本文采用的自适应噪声抵消系统具体实现结构原理图如图1所示:
图1ECG信号的自适应噪声抵消系统
Fig.1The adaptive noise canceling
system of electrocardiogram
由图1可知,该系统利用两输入噪声的相关性和信号与噪声的独立性,使参考输入通过自适应滤波器与主输入中的噪声分量逼近并相减,输出误差信号。自适应滤波器的输出y是对n0的最佳估计,而系统的输出z是对理想信号s的最佳估计。
实现噪声抵消的核心是自适应滤波算法,不同的自适应滤波器算法具有不同的收敛速度和算法复杂度。
1.1LMS算法
这是一种用瞬时值估计梯度矢量的方法。在实际系统中,实现LMS算法既不要计算输入信号的相关函数,又不要求矩阵之逆,这就表明了该算法的简易性和效率。
误差估计:e(n)=d(n)-WT(n)X(n)(1)
系数更新:W(n+1)=W(n)+μe(n)X(n)(2)
其中步长μ是一个用于控制自适应速度和稳定性的收敛因子。为保证算法收敛,步长取值范围如下:
0<μ<2tr[R](3)
其中,R是输入信号自相关矩阵,tr[R]是矩阵的迹。
1.2归一化LMS算法
归一化LMS(Normalized LMS,缩写为NLMS)算法是采用变步长的方法来缩短自适应收敛过程,它基于LMS算法的基本思想,用瞬时平方误差作为均方误差MSE的简单估计,并且为了控制失调量,考虑到基于瞬时平方误差的导数不等于均方误差MSE求导数值,可以得到进行修正的权系数迭代公式:
w(n+1)=w(n)+μγ+xT(n)x(n)e(n)x(n)(4)
其中,变步长可以用μ(n)来表示,即:
μ(n)+μγ+xT(n)x(n)(5)
式中,参数μ为控制失调的固定收敛因子,参数γ是为了避免xT(n)x(n)过小导致步长太大而设置的,0≤γ≤1。为了保证自适应滤波器能够稳定工作,固定收敛因子μ的选取应满足的数值范围如下:
0<μ<2(6)
由公式(5)可以看出,等效步长μ(n)是输入信号的非线性变量,随着γ在[0,1]之间不断变化,可以使步长由大逐渐变小,加速了收敛过程。
1.3误差归一化变步长LMS算法
误差归一化变步长LMS算法,将误差信号e(n)用期望信号d(n)进行归一化,用得到的相对误差的平方调节步长。这种算法权系数矢量的迭代公式如下:
W(n+1)=W(n)+μ(n)e(n)X(n)(7)
其中,μ(n)为步长系数,它的更新表达式为:
μ(n+1)=e(n)d(n)2μ0(8)
而且:
μ(n+1)=αμ(n),μ(n+1)<αμ(n)
1αμ(n),μ(n+1)>1αμ(n)
μ(n+1),其他(9)
由式(8)和式(9)可以看出,变化的步长μ(n)是由参数α和相对的估计误差来控制的,与传统LMS算法相比,计算量有所增加。
2基于迭代次数变步长的LMS算法
定步长LMS算法中μ值固定,计算简单,但是收敛速度慢;误差归一化变步长LMS算法随着自适应过程的进行,μ值不断减小,收敛速度快,但是在每次系数更新时都要计算一次相对误差的平方,引入参数α,还要对当前时刻的步长与下一时刻的步长进行比较,才能获得下一次迭代步长值,计算量增加。
此算法的提出是在技术思想上,依据误差归一化变步长LMS算法,并结合定步长LMS算法,对数据基于迭代次数进行分段处理,在一定的迭代次数范围内选择一个固定的步长值。随着自适应过程的进行,步长值逐渐减小。在迭代次数nj~nj+L范围内可以取步长为1/nj,对此段信号的处理就是定步长的LMS算法,并且满足每段步长逐渐减小。当把数据进一步细化分成更多段,直到一次迭代作为一段时,步长值可近似为μ≈1/n,为避免μ值过大引起大幅度失真,引入增益常数c,即μ=1/(c*n)。在自适应初始阶段,迭代次数n较小,相应的步长μ值就较大,这就加快了自适应过程的收敛速度;随着自适应过程的进行,迭代次数逐渐增大,导致步长相应减小,从而保证了在最佳权系数附近的失调量较小。
基于迭代次数的变步长LMS算法具有好的实时性。在“学习”过程中,步长值较大,收敛速率快,可以尽快进入“跟踪”过程。随着迭代次数的增加,步长逐渐减小,达到设定的步长下限时变为定步长LMS算法,对信号进行实时跟踪处理。
系数更新:
W(n+1)=W(n)+1/(c*n)e(n)X(n)(10)
为保证算法收敛,步长取值范围应满足:
0<1c*n<2tr[R](11)
即:c>tr[R]2n(12)
随着自适应过程的进行,迭代次数n逐渐增大,增益常数c的取值范围变大,但是为了保证整个自适应过程中该算法处于收敛状态,c的最小取值应为cmin=tr[R]2(c为正整数),同时由步长表达式可知,c取值越小,步长值越大,收敛速度越快,所以c的最佳取值为c=tr[R]2。
定步长LMS算法、归一化LMS算法、误差归一化变步长LMS算法和基于迭代次数变步长LMS算法,四种算法在每次系数更新时的计算量比较如表1所示(假设滤波器阶数为M):
表1四种算法每次系数更新的运算量比较
Tab.1The comparison of the four algorithm
operand at time of each modulus update
乘法次数加法次数
定步长LMS算法M+1M+1
归一化LMS算法2M+22M+2
误差归一化LMS算法 M+5
M+1基于迭代次数变步长的LMS算法M+2M+1
由表1可见,归一化LMS计算量最大,定步长LMS算法、误差归一化变步长LMS算法和基于迭代次数变步长的LMS算法加法计算量相同,乘法计算量也相差不大。但是误差归一化变步长LMS算法需要每次步长与上次比较做出选择,比较麻烦,而基于迭代次数变步长LMS算法却相对比较简单。
3实验分析及结果
为了检验基于迭代次数变步长的LMS算法与定步长LMS算法和归一化LMS算法在抑制心电信号工频干扰中的信噪比和收敛速度方面的差别,针对图1的原理图,分别用这三种算法对心电信号中的工频干扰进行滤波。
在自适应噪声抵消系统中,原始输入是含有50Hz工频干扰的心电信号,自适应滤波器参考输入端为同频率的余弦信号,滤波器阶数为二阶,采样率均为200Hz。算法程序运行于Matlab6.5环境。滤波后实验结果如图2所示:
图2原始信号及三种算法的滤波输出
Fig.2The initial signal and filtering
output of the three algorithms
在实验中,定步长的LMS算法中的μ值取0.001,归一化LMS算法中μ值取0.1,γ取1,基于迭代次数变步长的LMS算法中的常数c取13,初始权系数均设为0。由图2可以看出,三种算法都能够抵消心电信号中的工频干扰,但是基于迭代次数变步长的LMS算法能够最快、最好的有效滤除工频干扰,滤波效果最好,归一化LMS算法次之,LMS算法滤波效果最差。
表2给出了三种算法在自适应滤波过程中信噪比和运算时间方面的比较。从表中可以看出从信噪比提高程度上,基于迭代次数变步长的LMS算法获得了最高的信噪比,信噪比提高了46.0149dB,归一化LMS算法次之,信噪比提高了36.9235dB。但是,在运算时间方面,由于基于迭代次数变步长的LMS算法采用了变步长的方法,因而它的运算时间比起LMS算法来说并不是最短的,这也说明了LMS算法的运算量是最小的,而归一化LMS算法的运算量最大,这一点和前面在理论上的论述是一致的。
表2三种算法对ECG信号滤波前后的信噪比及运算时间
Tab2SignalNoise ratio and count time of
the three algorithms for ECG signal filtering
算法名称滤波前信噪比snr滤波后信噪比snrf信噪比提高snrfsnr运算时间(s)
LMS算法-0.090925.140925.23180.02
归一化LMS算法-0.090936.832636.92350.51
基于迭代次数变步长的LMS算法-0.090945.924046.01490.03
LMS算法、归一化LMS算法和基于迭代次数变步长的LMS算法的平方误差学习曲线如图3所示:
图3三种算法的误差学习曲线
Fig.3The error learning line of the three algorithms
由图3中三种算法的误差学习曲线可以看出,基于迭代次数变步长的LMS算法的误差收敛速度最快,归一化LMS算法次之,由于迭代过程开始时步长值相应较大,所以刚开始时误差值变化比较大,但之后快速减小。
4结论
基于迭代次数变步长的LMS算法,能够有效抑制ECG信号中的工频干扰。通过自适应噪声抵消系统,分别采用定步长LMS算法、归一化LMS算法和基于迭代次数变步长的LMS算法,对心电信号中的工频干扰进行抑制。实验结果表明,基于迭代次数变步长的LMS算法滤波效果最好,信噪比提高了46.0149dB,同时收敛速度也是最快的,并且具有好的实时性。该算法对自适应滤波器设计和算法研究具有参考价值和理论意义,并且为步长μ的设计提供了一种新的手段和方法。
参考文献
[1]庄天戈.计算机在生物医学中的应用[M].北京:科学出版社,2001.
[2]杨红,李生明.自适应滤波器在噪声对消中的应用[J].长江工程职业技术学院学报,2005,22(4):5556, 74.
[3]沈凤麟,陈和晏.生物医学随机信号处理[M].合肥:中国科学技术大学出版社,2002.
[4]周永军,卢智远,牛中奇等.自适应滤波器在心电信号检测中的应用[J].测试技术卷,2004,(12):2324.
[5]刘世金,张榆锋,吴耀德等.一种基于RLSANC系统的FECG信号提取新方法[J].医疗装备,2005,(1):1-3.
[6]何振亚.自适应信号处理[M].北京:科学出版社,2002.
[7]张秦,冯存前.变步长LMS算法及其在自适应消噪中的应用[J].现代电子技术.
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
关键词:ECG信号;工频干扰;自适应噪声抵消系统;迭代次数变步长;LMS算法
中图分类号:TP23文献标识码:A文章编号:16723198(2007)11028003
1心电信号的自适应噪声抵消系统
在对随机数字信号的滤波处理中,自适应滤波器的特点是当输入过程的统计特性未知时,或者输入过程的统计特性变化时,能够相应地调整自身的参数,以满足某种准则的要求,达到最优化滤波。采用自适应处理,具有非常好的自适应性,尤其是自适应噪声抵消系统是心电信号工频干扰抑制中最通用的方法。本文采用的自适应噪声抵消系统具体实现结构原理图如图1所示:
图1ECG信号的自适应噪声抵消系统
Fig.1The adaptive noise canceling
system of electrocardiogram
由图1可知,该系统利用两输入噪声的相关性和信号与噪声的独立性,使参考输入通过自适应滤波器与主输入中的噪声分量逼近并相减,输出误差信号。自适应滤波器的输出y是对n0的最佳估计,而系统的输出z是对理想信号s的最佳估计。
实现噪声抵消的核心是自适应滤波算法,不同的自适应滤波器算法具有不同的收敛速度和算法复杂度。
1.1LMS算法
这是一种用瞬时值估计梯度矢量的方法。在实际系统中,实现LMS算法既不要计算输入信号的相关函数,又不要求矩阵之逆,这就表明了该算法的简易性和效率。
误差估计:e(n)=d(n)-WT(n)X(n)(1)
系数更新:W(n+1)=W(n)+μe(n)X(n)(2)
其中步长μ是一个用于控制自适应速度和稳定性的收敛因子。为保证算法收敛,步长取值范围如下:
0<μ<2tr[R](3)
其中,R是输入信号自相关矩阵,tr[R]是矩阵的迹。
1.2归一化LMS算法
归一化LMS(Normalized LMS,缩写为NLMS)算法是采用变步长的方法来缩短自适应收敛过程,它基于LMS算法的基本思想,用瞬时平方误差作为均方误差MSE的简单估计,并且为了控制失调量,考虑到基于瞬时平方误差的导数不等于均方误差MSE求导数值,可以得到进行修正的权系数迭代公式:
w(n+1)=w(n)+μγ+xT(n)x(n)e(n)x(n)(4)
其中,变步长可以用μ(n)来表示,即:
μ(n)+μγ+xT(n)x(n)(5)
式中,参数μ为控制失调的固定收敛因子,参数γ是为了避免xT(n)x(n)过小导致步长太大而设置的,0≤γ≤1。为了保证自适应滤波器能够稳定工作,固定收敛因子μ的选取应满足的数值范围如下:
0<μ<2(6)
由公式(5)可以看出,等效步长μ(n)是输入信号的非线性变量,随着γ在[0,1]之间不断变化,可以使步长由大逐渐变小,加速了收敛过程。
1.3误差归一化变步长LMS算法
误差归一化变步长LMS算法,将误差信号e(n)用期望信号d(n)进行归一化,用得到的相对误差的平方调节步长。这种算法权系数矢量的迭代公式如下:
W(n+1)=W(n)+μ(n)e(n)X(n)(7)
其中,μ(n)为步长系数,它的更新表达式为:
μ(n+1)=e(n)d(n)2μ0(8)
而且:
μ(n+1)=αμ(n),μ(n+1)<αμ(n)
1αμ(n),μ(n+1)>1αμ(n)
μ(n+1),其他(9)
由式(8)和式(9)可以看出,变化的步长μ(n)是由参数α和相对的估计误差来控制的,与传统LMS算法相比,计算量有所增加。
2基于迭代次数变步长的LMS算法
定步长LMS算法中μ值固定,计算简单,但是收敛速度慢;误差归一化变步长LMS算法随着自适应过程的进行,μ值不断减小,收敛速度快,但是在每次系数更新时都要计算一次相对误差的平方,引入参数α,还要对当前时刻的步长与下一时刻的步长进行比较,才能获得下一次迭代步长值,计算量增加。
此算法的提出是在技术思想上,依据误差归一化变步长LMS算法,并结合定步长LMS算法,对数据基于迭代次数进行分段处理,在一定的迭代次数范围内选择一个固定的步长值。随着自适应过程的进行,步长值逐渐减小。在迭代次数nj~nj+L范围内可以取步长为1/nj,对此段信号的处理就是定步长的LMS算法,并且满足每段步长逐渐减小。当把数据进一步细化分成更多段,直到一次迭代作为一段时,步长值可近似为μ≈1/n,为避免μ值过大引起大幅度失真,引入增益常数c,即μ=1/(c*n)。在自适应初始阶段,迭代次数n较小,相应的步长μ值就较大,这就加快了自适应过程的收敛速度;随着自适应过程的进行,迭代次数逐渐增大,导致步长相应减小,从而保证了在最佳权系数附近的失调量较小。
基于迭代次数的变步长LMS算法具有好的实时性。在“学习”过程中,步长值较大,收敛速率快,可以尽快进入“跟踪”过程。随着迭代次数的增加,步长逐渐减小,达到设定的步长下限时变为定步长LMS算法,对信号进行实时跟踪处理。
系数更新:
W(n+1)=W(n)+1/(c*n)e(n)X(n)(10)
为保证算法收敛,步长取值范围应满足:
0<1c*n<2tr[R](11)
即:c>tr[R]2n(12)
随着自适应过程的进行,迭代次数n逐渐增大,增益常数c的取值范围变大,但是为了保证整个自适应过程中该算法处于收敛状态,c的最小取值应为cmin=tr[R]2(c为正整数),同时由步长表达式可知,c取值越小,步长值越大,收敛速度越快,所以c的最佳取值为c=tr[R]2。
定步长LMS算法、归一化LMS算法、误差归一化变步长LMS算法和基于迭代次数变步长LMS算法,四种算法在每次系数更新时的计算量比较如表1所示(假设滤波器阶数为M):
表1四种算法每次系数更新的运算量比较
Tab.1The comparison of the four algorithm
operand at time of each modulus update
乘法次数加法次数
定步长LMS算法M+1M+1
归一化LMS算法2M+22M+2
误差归一化LMS算法 M+5
M+1基于迭代次数变步长的LMS算法M+2M+1
由表1可见,归一化LMS计算量最大,定步长LMS算法、误差归一化变步长LMS算法和基于迭代次数变步长的LMS算法加法计算量相同,乘法计算量也相差不大。但是误差归一化变步长LMS算法需要每次步长与上次比较做出选择,比较麻烦,而基于迭代次数变步长LMS算法却相对比较简单。
3实验分析及结果
为了检验基于迭代次数变步长的LMS算法与定步长LMS算法和归一化LMS算法在抑制心电信号工频干扰中的信噪比和收敛速度方面的差别,针对图1的原理图,分别用这三种算法对心电信号中的工频干扰进行滤波。
在自适应噪声抵消系统中,原始输入是含有50Hz工频干扰的心电信号,自适应滤波器参考输入端为同频率的余弦信号,滤波器阶数为二阶,采样率均为200Hz。算法程序运行于Matlab6.5环境。滤波后实验结果如图2所示:
图2原始信号及三种算法的滤波输出
Fig.2The initial signal and filtering
output of the three algorithms
在实验中,定步长的LMS算法中的μ值取0.001,归一化LMS算法中μ值取0.1,γ取1,基于迭代次数变步长的LMS算法中的常数c取13,初始权系数均设为0。由图2可以看出,三种算法都能够抵消心电信号中的工频干扰,但是基于迭代次数变步长的LMS算法能够最快、最好的有效滤除工频干扰,滤波效果最好,归一化LMS算法次之,LMS算法滤波效果最差。
表2给出了三种算法在自适应滤波过程中信噪比和运算时间方面的比较。从表中可以看出从信噪比提高程度上,基于迭代次数变步长的LMS算法获得了最高的信噪比,信噪比提高了46.0149dB,归一化LMS算法次之,信噪比提高了36.9235dB。但是,在运算时间方面,由于基于迭代次数变步长的LMS算法采用了变步长的方法,因而它的运算时间比起LMS算法来说并不是最短的,这也说明了LMS算法的运算量是最小的,而归一化LMS算法的运算量最大,这一点和前面在理论上的论述是一致的。
表2三种算法对ECG信号滤波前后的信噪比及运算时间
Tab2SignalNoise ratio and count time of
the three algorithms for ECG signal filtering
算法名称滤波前信噪比snr滤波后信噪比snrf信噪比提高snrfsnr运算时间(s)
LMS算法-0.090925.140925.23180.02
归一化LMS算法-0.090936.832636.92350.51
基于迭代次数变步长的LMS算法-0.090945.924046.01490.03
LMS算法、归一化LMS算法和基于迭代次数变步长的LMS算法的平方误差学习曲线如图3所示:
图3三种算法的误差学习曲线
Fig.3The error learning line of the three algorithms
由图3中三种算法的误差学习曲线可以看出,基于迭代次数变步长的LMS算法的误差收敛速度最快,归一化LMS算法次之,由于迭代过程开始时步长值相应较大,所以刚开始时误差值变化比较大,但之后快速减小。
4结论
基于迭代次数变步长的LMS算法,能够有效抑制ECG信号中的工频干扰。通过自适应噪声抵消系统,分别采用定步长LMS算法、归一化LMS算法和基于迭代次数变步长的LMS算法,对心电信号中的工频干扰进行抑制。实验结果表明,基于迭代次数变步长的LMS算法滤波效果最好,信噪比提高了46.0149dB,同时收敛速度也是最快的,并且具有好的实时性。该算法对自适应滤波器设计和算法研究具有参考价值和理论意义,并且为步长μ的设计提供了一种新的手段和方法。
参考文献
[1]庄天戈.计算机在生物医学中的应用[M].北京:科学出版社,2001.
[2]杨红,李生明.自适应滤波器在噪声对消中的应用[J].长江工程职业技术学院学报,2005,22(4):5556, 74.
[3]沈凤麟,陈和晏.生物医学随机信号处理[M].合肥:中国科学技术大学出版社,2002.
[4]周永军,卢智远,牛中奇等.自适应滤波器在心电信号检测中的应用[J].测试技术卷,2004,(12):2324.
[5]刘世金,张榆锋,吴耀德等.一种基于RLSANC系统的FECG信号提取新方法[J].医疗装备,2005,(1):1-3.
[6]何振亚.自适应信号处理[M].北京:科学出版社,2002.
[7]张秦,冯存前.变步长LMS算法及其在自适应消噪中的应用[J].现代电子技术.
注:本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。