改进的LMS算法对二阶信号的线性预测

2021-08-16 11:16唐巧玲何梦雨
科学技术创新 2021年22期
关键词:步长稳态滤波器

唐巧玲 何梦雨

(内江师范学院,四川 内江 641100)

1 概述

滤波就是从有干扰的信号中得到有用的信号。滤波理论则是对其过程进行了系统的检测,利用某种统计方法得出的一种理论估计的方法。传统的滤波器的频率是固定的,属于经典滤波器,随着社会快速发展,经典的传统滤波已不适用近代的发展。因而根据输入信号可以按照系统的需求来调整参数、改变频率的自适应滤波器得到了大众的肯定,凭借着其计算简单、收敛速度快等特点,适用范围也变得更为宽广,从而能从多方面的满足人们需求,进而得以发展。如今自适应算法也在根据人们的需求逐步优化,尽可能的达到最优状态。

2 自适应滤波器

自适应滤波器原理:

自适应滤波器是根据输入信号自动调整系统性能,并进行数字信号处理的数字滤波器。在设计阶段,需明确其结构和系数的更新自适应算法[1];在应用阶段,则需对每一个采样点除了完成滤波外还需更新滤波器系数以用于下一个样点。因此自适应滤波器的系数不是一成不变的,其它滤波器与自适应滤波器在这一点上有着最根本的区别。自适应滤波器的原理图如图1所示。

图1 自适应滤波器原理图

在自适应滤波器中滤波器参数w(n),是随着期望响应d(n)、输入信号x(n)的变化而变化的。但是为了简便理论分析,本文假设w(n)不是随机变化的。因此,均方误差曲面可表示为:

J(n)=E[e2(n)]=E[d2(n)]-2rxdT(n)+wT(n)Rx(n)w(n)。

若均方误差要取得最小值,则滤波器的系数矢量w(n)需满足条件为:RX(n)w(n)=rxd(n)

由此可解得滤波器的最优系数:wopt(n)=Rx-1(n)rxd(n)

上述滤波器最优系数的求解方法是递推算法,即最速下降法。最速下降法是根据函数曲面的一点,沿着曲面方向向下搜索最低点的过程,曲面的负梯度方向则是最陡梯度的方向。首先选取曲面的一点为初始点,此点对应于初始系数矢量w(0),再从该点的负方向梯度搜索到第一点,再到第二点。以此类推,当点数足够大时可将其收敛到曲面最低点,即wopt。此过程中递推与时间无关系,但是为了使自适应滤波器便于实现,本文视这个过程和时间同步。根据以上概念可得系数矢量满足:

其中:

引入变量c(n)可以得到:w(n)-wopt=c(n);c(n+1)=(I-uRx)c(n)

由此可知,若Rx为对角阵,滤波器中各系数分量间不会出现耦合。即Rx=Q^QH;其中^=diag{λ1,λ1···λm},λk≥0,k=1,2···,m;Q=[q1q2···qm],QQH=I;QH=Q-1。

设一中间变量v(n),得到系数的迭代公式为:

v(n)=QHc(n)=QH(w(n)-wopt);v(n+1)=(I-u^)v(n)。

在|1-uλk|<1的条件下,从0开始递推,当v(n)趋近于0时,w(n)趋近于wopt。如果步长满足0

τ≈λmax/2αλmin。

由上式可知,如果输入信号的自相关矩阵的特征值分布十分接近,则收敛速度较快。反之则收敛速度较慢。通过推算,可知均方误差的时间函数为:

当J(n)趋近于Jmin时,输入信号自相关矩阵特征值的分布对于衰减速度和均方误差的影响都是相同的。而这是由于均方误差和权系数的每一项时间常数他们的数值关系为1/2。

3 算法原理

3.1 LMS算法

尽管利用最速下降法可以达到最佳滤波,但是在迭代运行过程中需要预知其自相关矩阵和互相关矢量。在实际情况下这是难以达到的,因此为了构造真正的自适应算法,需要对其进行估量。最传统的方法就是利用自相关矩阵和互相关矢量的瞬时值来代替平均值,即:

梯度的估计值为:

根据最速下降法系数的递推公式可得:

w(n+1)=w(n)+ux(n)e(n)

LMS算法的实现主要分为三步,第一要确定系统参数,全局的步长参数以及滤波器的抽头数,即滤波器的阶数。然后对滤波器的初始值进行初始化,最后将运行过程中的数据传入自适应算法,进行数据处理后得到新的滤波器参数。

输出信号的表达式如下:y(n)=wT(n)x(n)

误差估值为:e(n)=d(n)-y(n)

更新的滤波器参数为:w(n+1)=w(n)+ux(n)e(n)

为了保证其收敛性和稳定性,在LMS算法中,自适应步长因子u的取值必须满足条件:0

从上述公式可得出,LMS算法在结构方面简单,计算量小且相对稳定。但是这种固定步长的LMS算法在收敛速度和稳态误差之间的要求是相互矛盾的。为了解决这一矛盾,出现了许多变步长的LMS算法[2]。

3.2 NLMS算法

NLMS算法是对传统的LMS算法的改进,是利用抽头输入信号矢量的功率来对步长进行归一化。在NLMS算法中,可以根据输入信号的变化来调整步长因子,从而保证收敛过程的稳定性和时间。由于算法的迭代更新时去除了采样信号的估计功率值,从而也可以除掉一些由于采样信号的问题带来的干扰[5]。

在NLMS中迭代的滤波器参数为:w(n+1)=w(n)+u(n)x(n)e(n)。

由此可发现NLMS与LMS最大的不同在于步长因子的变化。在LMS算法中,步长是一个常数用u表示,而在NLMS算法中,步长因子是一个随时间变化的函数u(n)。

为了避免因估计功率过小而引起步长因子过大,因此对步长进行了一定的修正。

α为常数。并且为了保证收敛的效果,必须满足:0

3.3 VSLMS算法

VSLMS算法大致与上述NLMS算法相同,只是滤波器的权系数更新做了细微的调整,即改进了步长因子的算法。在VSLMS算法中,滤波器权系数的更新方式为:

w(n+1)=w(n)+2u(n)x(n)e(n)

从上述公式上看与NLMS算法并无较大的区别,只是系数的改变。但是其中步长因子的计算与NLMS算法有较大的区别。在NLMS算法中,步长因子与输入信号有较大的关系,与误差因子没有关系。然而在VSLMS算法中,步长因子的更新却和误差因子密切相关。VSLMS算法分两类,其一是u(n)只与e(n)有关,而与u(n-1)无关,即:u(n)=β[1-exp(-α|e(n)|2)]

其中,β为步长因子的初始值,如果步长的初始值太大,可能会导致算法不收敛,如果太小,又会导致算法的收敛速度太慢,所以β的取值必须适当[8]。

其二是u(n)不仅与e(n-1)有关,而且还与u(n-1)有关,即:

u(n+1)=α’u(n)+β’|p(n)2||e(n)2|;p(n)=γp(n-1)+(1-γ)e(n)x(n)。

由上述两类VSLMS算法可知,算法一具有良好的稳定性,而算法二具有较好的收敛速度[8]。在本文则采用算法一与其他算法进行仿真性能对比,以下皆称为VSLMS算法。

4 仿真及结果分析

本文采用的是二阶信号,通过MATLAB平台对其进行仿真,对上述几种LMS算法从收敛速度和稳态误差以及输出波形等方面来对二阶信号的线性预测进行比较分析。从而得出哪种LMS算法对于二阶信号的预测更加准确。

4.1 收敛速度与稳态误差

收敛速度与稳态误差是自适应滤波性能中重要的一部分,本文将从不同步长来比较上述三种算法在这两方面的差异。如图所示:

4.1.1 传统的LMS算法

图2 步长0.1

图3 步长0.3

图4 步长0.5

4.1.2 NLMS算法

图5 步长0.1

图6 步长0.3

图7 步长0.5

4.1.3 VSLMS算法:

图8 初始步长0.1

图9 初始步长0.3

图10 初始步长0.5

从上图对比可看出,上述三种算法的收敛速度都随着步长因子的增大而加快。NLMS算法中的迭代次数明显比传统的LMS算法减少很多,但是系统的抗干扰性能降低,这可能会导致系统误差变大。而对于VSLMS算法来说,收敛速度介于传统的LMS算法和NLMS算法之间,但VSLMS算法的抗干扰能力比NLMS强,系统相对更加稳定。因此,从收敛速度上看,VSLMS的综合性能比传统的LMS算法和NLMS算法更能满足最佳滤波的条件。

4.2 输出波形

传统的LMS算法如图所示:

图11 步长0.1

图12 步长0.3

图13 步长0.5

传统的LMS算法得到稳定输出的时间相比其他两个算法相对较长,而NLMS算法最佳,VSLMS算法次之。从稳定输出后的图形与预期图像对比而言,NLMS算法的输出图形和预期图形相对而言更为贴合,但总体而言三者相差不大。综上所述,从收敛速度和误差上来说,VSLMS算法更能符合最佳滤波的条件。但是从输出信号图形来看,最佳的为NLMS算法,但三者除了在迭代次数上有些许差异,在图形上差距并不是特别明显。所以综合来看,VSLMS更能符合最佳滤波的条件。

5 结论

本文使用改变步长因子的方法来改变自适应滤波中收敛速度和稳态误差之间的关系,有效的解决了在自适应滤波算法中收敛速度与稳态误差的矛盾,在满足收敛速度的情况下,稳态误差也得到了相对的稳定。通过对三种LMS算法的收敛速度、稳态误差和输出波形综合分析对比,NLMS算法的对于波形的还原更加优良,但三者总体差距并不明显;对于迭代次数与误差综合来看VSLMS算法明显优于其他两者。因此,综合可得VSLMS算法更能得到最优滤波,是最佳滤波算法。

猜你喜欢
步长稳态滤波器
衰老相关的蛋白稳态失衡
可变速抽水蓄能机组稳态运行特性研究
浅谈有源滤波器分析及仿真
基于多模谐振器的超宽带滤波器设计
基于Armijo搜索步长的BFGS与DFP拟牛顿法的比较研究
电厂热力系统稳态仿真软件开发
一种改进的变步长LMS自适应滤波算法
基于变步长梯形求积法的Volterra积分方程数值解
元中期历史剧对社会稳态的皈依与维护
从滤波器理解卷积