论文关键词:自适应信号处理 自适应滤波器
论文摘要:近几十年里,数字信号处理技术取得了飞速发展,特别是在自适应信号处理方面,通过内部参数的最优化来自动调节系统特性并以其计算简单,收敛速度快等许多优点而被广泛使用。本文主要介绍了几种常用的自适应算法,如:lms,rls,nlms等。分别就几种算法在算法原理,算法性能分析和计算机仿真等方面来说明各种算法的优越性。通过围绕算法的优缺点进行比较,得出一些重要结论。最后对自适应信号处理的一些应用作了介绍和分析,并对其进行了仿真。
abstract:in recent decades, digital signal processing technology has made rapid development, especially in adaptive signal processing. the adaptive signal processing algorithm can adjust the internal parameters of filters to optimize system characteristics automatically. for its simple computational complexity, fast convergence speed and many other advantages, adaptive filer has been widely used.
this paper introduces several commonly used algorithms, such as: lms, rls, nlms, etc.. through the principle of adaptive algorithm analysis and simulation, we illustrate the various aspects of the adaptive algorithm’s superiority. and through the comparing of their advantages and disadvantages, we could draw some important conclusions for different algorithm.
keywords: adaptive signal processing, adaptive filter
1引言
自适应信号处理是信号处理领域的一个非常重要的分支。www.133229.coM作为自适应信号处理基础的自适应滤波理论是对信号处理研究的一个重要方法,本文亦将它作为研究的手段。自适应信号处理经过近40年来的发展,随着人们在该领域研究的不断深入,其理论和技术已经日趋完善。尤其是近年来,随着超大规模集成电路技术和计算机技术的迅速发展,出现了许多性能优异的高速信号处理专用芯片和高性能的通用计算机,为信号处理,特别是自适应信号处理的发展和应用提供了重要的物质基础。另一方面,信号处理理论和应用的发展,也为自适应信号处理的进一步发展提供了必要的理论基础。自适应信号处理已经在诸如噪声对消,信道均衡,线形预测等方面得到广泛的应用。
本文主要研究的是自适应信号处理中一些基本的算法,如:lms,rls,nlms等。在学习和总结前人工作的基础上,对各种算法进行了详细的推导,分析了它们的特点及性能,诸如稳态特性,收敛条件及参数的取值。对其中的两个基本算法lms和rls算法在收敛性和稳定性进行了分析比较,并用matlab仿真得到验证。最后对自适应处理的一些应用作了简要说明,如:噪声对消,信道均衡,线性预测及陷波器等,并对其进行了仿真。
1.1 研究的目的和意义
常规的信号处理系统,利用自身的传输特性来抑制信号中的干扰成分,对不同频率的信号有不同的增益,通过放大某些频率的信号,而使另一些频率的信号得到抑制。由于其内部参数的固定性,消除干扰的效果受到很大的限制。通常许多情况下,并不能得到信道中有用信号和干扰信号的特性或者它们随时间变化,采用固定参数的滤波器往往无法达到最优滤波效果。在这种情况下,可以用自适应处理系统,来跟踪信号和噪声的变化。
自适应系统可以利用前一时刻已经获得的滤波器参数等结果,自动的调节现时刻的滤波器参数,以适应信号和干扰未知的或随时间变化的统计特性,从而实现最优滤波。正是由于它在设计时需要很少或者无需任何关于信号和干扰的先验知识就可以完成的优点,所以发展很快,并得到广泛的应用。
1.2 自适应系统的组成
自适应系统和常规系统类似,可以分为开环自适应和闭环自适应两种类型。开环自适应系统主要是对输入信号或信号环境进行测量,并用测量得到的信息形成公式或算法,用以调整自适应系统自身;而闭环自适应系统还利用系统调整得到的结果的有关知识去优化系统的某种性能,即是一种带“性能反馈”的自适应系统。
下图a表示一个开环自适应系统,控制该系统的自适应算法仅由输入确定。图b则表示一个闭环自适应系统,控制该系统响应的自适应算法除了取决于输入外,还依赖系统输出的结果。
1.3基本自适应算法
这里主要介绍lms,rls,nlms三种基本算法。
lms算法是最被广泛应用的滤波器演算法,最大的特点就是计算量小,易于实现。基于最小均方误差准则,lms算法使滤波器的输出信号与期望输出信号之间的均方误差最小。运算过程不需要对相关函数及复杂的反矩阵做运算,所以经常拿来用作比较的基准。
lms算法为了便于其实现,采用误差输出模的瞬时平方值(即瞬时功率) 的梯度来近似代替均方误差 的梯度。实际上我们可以直接考察一个由平稳信号输入的自适应系统在一段时间内输出误差信号的平均功率,即把平均功率达到最小作为测量自适应系统性能的准则,这就是rls算法。换句话说,lms算法是将输出误差信号的平均平方值 最小化,而rls算法是将输出误差信号平方值总和最小化。虽然rls算法复杂度和阶数平方成正比,但是由于它的收敛速度快,所以仍然受到广泛的应用。
为克服常规的固定步长lms自适应算法在收敛速率,跟踪速率与权失调噪声之间的要求上存在的较大矛盾,许多学者提出了各种各样的改进型lms算法。比如归一化lms,基于瞬变步长lms以及基于离散小波变换的lms自适应滤波算法。这里我们讨论归一化的lms算法,即nlms算法。
以上这些算法主要特点是不需要离线方式的梯度估值或者重复使用样本数据,而只需在每次迭代时对数据作“瞬时”梯度估计。因此自适应过程中的迭代比较简单,收敛速度比较快。
1.4 matlab语言介绍
本文的算法仿真采用了matlab语言。matlab是mathworks公司于20世纪80年代推出的数值计算软件,近些年来得到了广泛的应用。matlab的全称是matrix laboratory,意思是矩阵实验室。它是以矩阵运算为基础的新一代程序语言。与fortran和c相比,matlab语句显得简单明了,更加符合人们平常的思维习惯。同时,matlabb有着良好的数据可视化功能,能将数字结果以图形的方式表现出来,让人们一目了然。这些特点使得matlab从众多数值计算语言中脱颖而出,并正以相当快的速度在科学研究和工程计算中得到应用和普及。
matlab有着非常强大的数值计算能力,它以矩阵为基本单位进行计算,数域扩展到复数,这一特点决定了matlab有着非凡的解决数值问题的能力。绘图方面,matlab的绘图语句简单明了,功能齐全。它能够在不同坐标系里绘制二维、三维图形,并能够用不同颜色和线型来描绘曲线。正是由于matlab这些特点,从而使它适合与进行自适应算法仿真。
2 基本自适应算法的分析与matlab仿真
2.1最小均方误差(lms)自适应算法
2.1.1 lms自适应滤波器基本原理
shape \* mergeformat
图2.1.1 lms自适应滤波器原理框图
图2.1.1中, 表示时刻 的输入信号, 表示时刻 的输出信号, 表示时刻 的参考信号或期望响应信号, 表示时刻 的误差信号。误差信号为期望响应信号 与输出信号 之差,记为 。自适应滤波器的系统参数受误差信号控制,并根据 的值而自动调整,使之适合下一时刻 的输入 ,以使输出信号 更加接近期望信号 ,并使误差信号 进一步减小。当均方误差 达到最小值时, 最佳地逼近 ,系统已经适应了外界环境。
2.1.2 e[e2(n)]与权值w的关系
lms自适应滤波器通过算法,当 最小时,滤波器已经调节出适合现在外部环境的滤波器权值w。
(1)我们可以先推导出 与加权系数w的关系式。
写成矩阵形式: 式(2.1.2.1)
误差: 式(2.1.2.2)
则 式(2.1.2.3)
令 带入式(2.1.2.3)中得
可以从上式看出均方误差 是加权系数 的二次函数,它是一个中间上凹的超抛物形曲面,是具有唯一最小值的函数。即 与 的关系在几何上是一个“碗形”的多维曲面。为了简单,设 是一维的,则与 的关系成为一个抛物线。调节加权系数 使均方误差最小,相当于沿超抛物形曲面下降到最小值。连续地调节加权系数使均方误差最小,即寻找“碗”的底点。碗底: ,即 点。
2.1.3 lms算法推导
最小均方差(lms)算法,即权系数递推修正达到最佳权系数 是依据最小均方算法。最陡下降法(steepest descent method)是lms算法的基础,即下一时刻权系数矢量 应该等于“现时刻”权系数矢量 加上一项比例为负的均方误差函数的梯度 ,即
式(2.1.3.1)
其中 为
式(2.1.3.2)
为控制收敛速度与稳定性的数量常数,称为收敛因子或自适应常数。式(2.1.3.1)中第二项前的负号表示当梯度值为正时,则权系数应该小,以使 下降。根据式(2.1.3.1)的递推算法,当权系数达到稳定时,一定有 ,即均方误差达到极小,这时权系数一定达到所要求的最佳权系数 。lms算法有两个关键:梯度的计算以及收敛因子 的选择。按(2.1.3.2)计算 时,要用到统计量g,p,因此有很大困难,故通常用一种粗糙,但却有效的方法,就是 用 代替,即
式(2.1.3.3)
式(2.1.2.3)的含义是指单个误差样本的平方 作为均方误差 的估计值,从而使计算量大大减少。从而最终可以推出权系数迭代的lms算法为:
式(2.1.3.4)
为输入样本向量,只要给定系数迭代的初值 ,根据上式可以逐步递推得到最佳权系数,并计算出滤波器误差输出。下图为lms算法的流程图:
shape \* mergeformat
2.1.4 lms算法的参数分析
lms算法所用到计算式如下:
系统输出:
误差估计:
权值更新:
其中 为信号输出, 为输入向量, 为误差值, 为权值向量, 为期望值, 为步长。在lms算法中步长值 的取舍问题非常重要,直接影响了算法的收敛速度。 值是用来调整加权参数的修正速度,若 值取的过小,收敛速度就会过于缓慢,当取的过大时,又会造成系统收敛的不稳定,导致发散。所以选取最佳的 值是lms算法中一个重要的问题。具体收敛条件可由下面的式子分析得出:
可以以得出收敛条件 及
其中 是输入相关矩阵 的最大特征值。
2.1.5 lms算法的仿真分析
图(2.1.5.1)
上面为输入信号与输出信号图示。输入信号采用正态随机信号加上高斯白噪声。可以看出输出信号经过一段时间基本达到跟踪,滤波的效果。
图(2.1.5.2)
图(2.1.5.3)
上面两图分别是误差曲线和误差平方均值曲线,可以看出信号经过自适应滤波器后经过一段训练时间误差基本趋于收敛,即外界信号已经完成自适应过程,滤波器已经将权值调节至最佳,可以输出得到所期望的有用信号。
前面已经讨论过步长 值对系统收敛的影响,下面分别取 =0.001和 =0.005用matlab仿真来观察它们各自收敛情况。系统采用同一输入信号和噪声,信噪比snr=5。