18第三章递归最小二乘(RLS)自适应均衡算法§3.1引言在自适应滤波系统中,最陡梯度(LMS)法由于其简单获得了广泛的应用。但各种LMS算法均有收敛速度较慢(收敛所需码元数多),对非平稳信号的适应性差(且其中有些调整延时较大)的缺点。究其原因主要是LMS算法只是用以各时刻的抽头参量等作该时刻数据块估计时平方误差均最小的准则,而未用现时刻的抽头参量等来对以往各时刻的数据块均作重新估计后的累积平方误差最小的原则(即所谓的最小平方(LS)准则)。为了克服收敛速度慢,信号非平稳适应性差的缺点,根据上述内容,可采用新的准则,即在每时刻对所有已输入信号而言重估的平方误差和最小的准则(即LS准则)。从物理概念上可见,这是个在现有的约束条件下利用了最多可利用信息的准则,即在一定意义上最有效,信号非平稳的适应性能也应最好的准则。这样建立起来的迭代方法就是递归最小二乘(RLS:RecursiveLeastSquare)算法,又称为广义Kalman自适应算法。用矩阵的形式表示RLS算法非常方便,因此我们首先定义一些向量和矩阵。假定在时刻t,均衡器的输入信号为tr,线性均衡器对于信息符号的估计可以表示为KKjjtjrtctI)1()(ˆ式(3-1)让)1(tcj的下标j从0j到1Nj,同时定义Ktvty)(,则)(ˆtI变为10)()1()(ˆNjjjtytctI)()1(tYtCNN式(3-2)其中)1(tCN和)(tYN分别为均衡器系数)1(tcj,1,,1,0Nj和输入信号)(jty,1,,1,0Nj的列向量。类似的,在DFE均衡器结构中,均衡器系数)(tcj,1,,1,0Nj的前11K个系数为前向滤波器系数,剩下的112KNK为反馈滤波器系数。用来预测)(ˆtI的数据为21~,~,,,11KtttKtIIrr,其中21,~KjIjt为判决器先前作出判决的数据。这里,我们忽略判决器判错的情况,因而21,~KjIIjtjt。同时为方便起见定义第三章递归最小二乘算法19)1()0()(1111NjKIKjvjtyjKtjKt式(3-3)因此])1(,),1(),([)(NtytytytYN],,,,,,[2111KttttKtIIrrr式(3-4)§3.2RLS自适应算法RLS算法对于)(ˆtI的估计可以从下面的式子得到。假定我们的观测向量为)(nYN,tn,,1,0,我们期望得到均衡器的系数向量)(tCN使得均方误差的加权平方和tnNnttnewn02|),(|)(式(3-5)最小。其中误差定义为)()()(),(nYtCnItneNNN式(3-6)w代表遗忘因子,10w。这样我们对过去的数据引入了一个指数权,这对于信道特性为时变的情况非常合适。关于权向量)(tCN的)(n最小化便得到下面的线性方程)()()(tDtCtRNNN式(3-7)其中)(tRN为信号的自相关矩阵,定义为tnnNntNnYnYwtR0*)()()(式(3-8))(tDN为互相关向量tnNntNnYnIwtD0*)()()(式(3-9)式(3-7)的解为著名的Wiener-Hopf方程)()()(1tDtRtCNNN式(3-10)为了避免复杂的求逆运算,引入一NN矩阵20)()(1tCtPNN式(3-11)由式(3-8)有tnNNntNnYnYwtR0*)()()()()()1(*tYtYtwRNNN式(3-12)又由矩阵求逆引理有:)()1()()1()()()1()1(1)(*11*111tYtRtYwtRtYtYtRtRwtRNNNNNNNNN式(3-13)在上式中定义)()(1tRtPNN,令)()1()()(*nYtPtYtNNNN式(3-14))()()1()(*twtYtPtKNNNN式(3-15))(tN为一标量,)(tKN为一N维矢量,称为Kalman增益向量。则)1()()()1(1)(tPtYtKtPwtPNNNNN式(3-16)假定我们在式(3-16)两边右乘以)(*tYN,)]()1()()()()1([1)()(***tYtPtYtKtYtPwtYtPNNNNNNNN)]}()()()]({[1ttKtKtwwNNNN)(tKN式(3-17)因此,Kalman增益向量可以被定义为)()(*tYtPNN。由于)()()(tDtPtCNNN)()()1()(*tYtItwDtDNNN式(3-18)我们得到)]()()1()][1()()()1([1)(*tYtItwDtPtYtKtPwtCNNNNNNN)()1()(1)1()1(*tYtPtIwtDtPNNNN)1()1()()('tDtPtYtKNNNN第三章递归最小二乘算法21)()1()()()(1*tYtPtYtKtIwNNNN)]1()()()[()1('tCtYtItKtCNNNN式(3-19))1()(tCtYNN为均衡器在t时刻的输出,也就是)1()()(ˆtCtYtINN式(3-20)而)()(ˆ)()1,(tetItItteNN式(3-21)为期望信号与估计信号之间的误差。因此,)(tCN可以根据下式来递推更新)()()1()(tetKtCtCNNNN式(3-22)式(3-22)表明:t时刻最佳的)(tCN值可由1t时刻的最佳)1(tCN值加一修正量得到。这就是递推最小二乘算法或Kalman算法。将上述在推导过程中出现的各式予以整理,可得到正规RLS算法的计算步骤。由于此算法为迭代型,故应在已得迭代式组外,还注意在计算的初始部分设置合理的初始值组。根据经验设定则一般可得到较快的收敛效果。由于矩阵)(tRN类似于统计自相关矩阵,而向量)(tDN近似于互相关向量。应该注意到)(tRN不是一个Toeplitz矩阵,对于较小的t,)(tRN可能处于病态条件;因而通常初始时需要在)(tRN上加上一个NI,为一个1的正常数,NI为单位阵。由于对于过去的信号引入了指数权,加上NI的作用将随着时间增加而减弱。正规RLS算法的计算步骤如下:步骤1:初始化:令0)0()0(NNYC,式(3-23)NNItP)((一般取1的正数),0n式(3-24)步骤2:更新1tt)1()()()(tCtYtIteNNN式(3-25))()1()()(*tYtPtYtNNNN式(3-26))()()1()(twnYtPtKNNNN式(3-27))]1()()()1([1)(tPtYtKtPwtPNNNNN式(3-28))()()1()(tetKtCtCNNNN式(3-29)在一次迭代当中,正规RLS算法所需的计算量为乘法NN532次,除法1次,22加(减)法NN5.15.22次。我们看到均衡器系数随时间的变化量等于预测误差乘以Kalman增益向量。由于)(tKN为N维,)(tKN的每一个元素有效地控制着均衡器每一个系数,因而能够得到快速的收敛性质。相反,最陡梯度算法(steepest-descentalgorithm)均衡器系数的更新可表示为)()()1()(*tetYtCtCNNNN式(3-30)唯一变化的参数为步长。图3.1给出了这两个算法初始收敛速度的比较,信道选自[3],具有固定参数26.00f,93.01f,26.02f。信道的特征值为11/minmax。均衡器的所有系数在初始迭代时置为0。最陡梯度算法的步长选为020.0。与最陡梯度算法相比RLS算法具有较快的跟踪性能和收敛性能。这对于时变信道来说极为重要。例如,短波(HF)信道变化非常快,用梯度算法无法对信号进行均衡。而Kalman算法就能够足够快地跟踪这种变化。图3.1Kalman算法与梯度算法性能比较§3.3几种改进型快速跟踪的RLS算法§3.3.1指数遗忘的加窗RLS算法和Reset-RLS算法RLS算法广泛的应用于自适应滤波,系统辨识与信号预测。该算法只有在方程误差为0均值的高斯白噪声以及系统模型非时变时才能保证渐进趋于真值。该算法的另一个显著特点是,为了减小预测中的噪声影响,当参数慢慢趋向于真值时,增益向量便接近于0。因此,RLS算法就有可能跟踪不上信道参数的变化。为了解决这一问题,在实践当中,人们提出了许多改进的RLS算法。例如指数遗忘的加窗RLS算法,避免了增益向量变成0。这一算法的优点是它对于信道参数的变化总是能够起到预防的作用;然而也因为非0的增益向量使得该算法对第三章递归最小二乘算法23信道的扰动和噪声都非常敏感。另外一个方法是一旦检测到信道的变化,就重新初始化迭代协方差矩阵)(tP,如何检测信道参数的变化就成为该算法的关键。在实际操作中,我们可以通过设置适当的门限来检测信道的突跳。一旦迭代误差超过该门限,RLS算法便被重新初始化。我们称此方法为复位RLS(Reset-RLS)算法。§3.3.2SPRLS算法在文献[4]中Park和Jun提出了SPRLS算法(Self-PerturbingLeastSquaresAlgorithm)。它是一种基于前向预测误差来调整RLS算法的迭代矩阵,前向预测误差越大,意味着信道发生变化的可能性越大。我们再次给出正规RLS算法:)()()1(ˆ)(ˆtetktt式(3-31))()1(ˆ)()(tttyteT式(3-32))()1()(1)()1()(ttPtttPtkT式(3-33))1()()()1()(tPttktPtPT式(3-34)/)0(IP式(3-35)0)0(ˆ式(3-36)其中,t为离散采样时刻,)(ˆt要预测的滤波器权向量,)(ty是期望的输出信号,)()()(*tnttyT,*为信道的真值向量,)(tn为量测噪声,)(te为前向预测误差,)(tk为自适应增益向量。SPRLS算法在(3-34))(tP的迭代式中加入一项与预测误差有关的项,即IteNINTtPttktPtPT)]1([)1()()()1()(2式(3-37)其中为常数,)(te为前向预测误差,定义为)()(ˆ)()(tttyteT式(3-38)NINT函数为四舍五入取整函数,为灵敏增益系数,根据系统量测噪声的大小调整其大小,I为单位阵。在迭代矩阵中加上一项与前向预测误差有关的项,我们称之为自扰动项。当信道发生变化时,迭代矩阵受到前向预测误差的扰动,变成非0从而跟踪信道的变化。该误差平方在SPRLS算法中起着关键的作用,当5.0)(2te时,这一扰动项为0,因而控制着启动该扰动项的最小误差限。24当信道参数发生突跳时,该算法比其它普通的RLS算法性能要好。这一算法在信道参数变化很大而噪声很小时确实很有效,然而当噪声电平很高时上述算法几乎不能工作,原因在于信道参数的变化以及噪声的影响都可能导致较大的前向预测误差。针对上述问题,J.Jiang和R.Cook在文献[5]中提出了一个新的方案,也就是我们下面将要介绍的MRLS算法。§3.3.3MRLS算法在MRLS算法当中,迭代矩阵的更新基于一个观测向量与预测向量相关矩阵的函数。由于相关性,这种算法不仅在噪声存在的情况下非常稳健,而且能够快速的跟踪信道参数的变化。正规RLS算法的迭代公式已经给出。我们可以看出当迭代时间很长时,增益向量)(tk已经趋于0,即使信道参数已经改变,)(t和)1(t也非常接近,也就是说RLS算法失去了跟踪能力。因此J.Jiang和R.Cook提出只要信道参数变化就在)(tP的迭代式中加上一项正的对角阵,即ItMy