递归最小二乘法(RLS)自适应滤波算法摘要所谓自适应,从通俗意义上讲,就是这种滤波器能够根据输入信号统计特性的变化自动调整其结构参数,以满足某种最佳准则的要求.自适应滤波器所采用的最佳准则由最小均方误差准则、最小二乘准则、最大信噪比准则和统计监测准则等。
自适应滤波理论和技术是统计信号处理和非平稳随机信号处理的主要内容,它可以在无需先验知识的条件下,通过自学习适应或跟踪外部环境的非平稳随机变化,并最终逼近维纳滤波和卡尔曼滤波的最佳滤波性能。
因而,自适应滤波不但可以用来检测确定性信号,而且可以检测平稳的或非平稳的随机信号。
自适应技术应用包括自适应谱线检测增强与谱估计方法、自适应噪声抵消技术、自适应均衡技术、只适用阵列处理与波束形成以及自适应神经网络信号处理等内容。
关键词:递归最小二乘法;自适应滤波;滤波器设计;自适应算法;1 引言滤波可分为经典滤波和现代滤波。
经典滤波要求已知信号和噪声的统计特性,如维纳滤波和卡尔曼滤波。
现代滤波则不要求己知信号和噪声的统计特性,如自适应滤波。
自适应滤波的原理就是利用前一时刻己获得的滤波参数等结果,自动地调节当前时刻的滤波参数,从而达到最优化滤波。
自适应滤波一般包括3个模块:滤波结构、性能判据和自适应算法。
其中,自适应滤波算法一直是人们的研究热点,包括线性自适应算法和非线性自适应算法,非线性自适应算法具有更强的信号处理能力,但计算比较复杂,实际应用最多的仍然是线性自适应滤波算法,线性自适应滤波算法的种类很多,有LMS自适应滤波算法、R路自适应滤波算法、变换域自适应滤波算法、仿射投影算法、共扼梯度算法等.自适应滤波器主要包括滤波器的结构和自适应算法两部分,这两部分不同的变化与组合,可以导出许多不同形式的自适应滤波器.所谓的自适应滤波,就是利用前一时刻以获得的滤波器参数的结果,自动地调节现时刻的滤波器参数,以适应信号和噪声未知的或随时间变化的统计特性,从而实现最优滤波。
自适应滤波器实质上就是一种能调节其自身传输特性以达到最优的维纳滤波器。
自适应滤波器不需要关于输入信号的先验知识,计算量小,特别适用于实时处理。
2 主要算法和程序RLS算法是最小二乘算法的一类快速算法,观察一个平稳输入信号输入的自适应系数在一点时间内输出误差信号的平均功率(时间平均),将该平均功率是否为最小作为测量自适应系统是否最佳的准则。
它包括时间递归最小二乘法(TRLS)与阶数递归最小二乘法(ORLS)两大类。
TRLS主要应用于动态系统辨识和在线估计,因此在这里我们采用时间递归的最小二乘法TRLS.通常来说,RLS 自适应算法具有快速收敛性,它不像LMS 类自适应算法的收敛性对输入信号线管矩阵参数很灵敏,这是低的鲁棒性和较高计算复杂度来得到的。
为了提高RLS 自适应算法的鲁棒性,目前最新成果是利用QR 分解法.QR 分解算法由于采用了正交三角化过程,大大提高了自适应算法滤波数值的稳定性,而且具有良好的收敛性和跟踪特性。
在数学上实现正交三角化过程的技术有Gram-Schmidt 正交化算法与Givens 旋转方法.以下是利用RLS 算法的实现过程。
与一般的最小二乘方法不同,这里考虑一种指数加权的最小二乘方法。
使用指数加权的误差平方和作为代价函数,即有)()(2n n J ni i n →=-∑=ελ估计误差定义为:)()()()(i x n w i d i e T→→-=加权误差平方和的完整表达式为:)()()()(2i x n w i d n J Tni i n →→=--∑=λ根据定义,易得到递推估计公式:)()()1()(n x n x n R n R T→→→→+-=λ)()()1()(n d n x n r n r →→→+-=λ利用矩阵的求逆公式,可得到逆矩阵的递推公式⎥⎦⎤⎢⎣⎡---=⎥⎥⎥⎦⎤⎢⎢⎢⎣⎡-+----=→→→→→→→→→→→→→)1()()()1(1)()1()()1()()()1()1(1)(n P n x n k n P n x n P n x n P n x n x n P n P n P TT Tλλλ进一步化简后得)()()1()1()()()()()1()(n e n k n w n w n x n k n k n d n w n w T→→→→→→→→+-=--+-=综上所述,可得到RLS 直接算法: 步骤1:初始化:IP w δ1)0(0)0(-→→→==,步骤2:更新: n=1,2,…..)()1()()(n x n w n d n e T→→--=)()1()()()1()(n x n P n x n x n P n k T→→→→→→-+-=λ⎥⎦⎤⎢⎣⎡---=→→→→→)1()()()1(1)(n P n x n k n P n P Tλ)()()1()(n e n k n w n w →→→+-=其中δ为一个很小的值。
δ的值越小,相关矩阵初始值在的计算中所占比重越小,若取值过大,就会严重影响RLS 算法的收敛速度及收敛结果,这一点是在应用RLS 算法时必须注意的。
以下是RLS 自适应滤波器设计实现过程. 1。
生成正弦波载波原始信号是一个正弦波波信号,其波形如图1所示,其实现的代码如下。
signal = sin (2 * pi * 0。
055 * (0 : 1000 — 1)’); figure(1);plot (0 : 199, signal(1 : 200), 'LineWidth',2); set(gca, 'FontSize ’, 30); grid;axis([0 200 —2 2]);title('\fontsize{30}正弦波载波’);图 12.背景噪声模型背景噪声是白噪声,如图2所示。
其实现的代码如下。
nvar = 1.0; %噪声方差noise = randn(1000,1)* nvar; %白噪声figure(2);plot(0:999, noise,’LineWidth',2);set(gca, ’FontSize', 30);title('\fontsize{30}背景噪声’);grid;axis([0 1000 —4 4]);图 23。
输入自适应滤波器的信号与噪声输入的噪声是由正弦波信号与白噪声叠加后的结果,其波形如图3所示。
其实现的代码如下。
nfilt = fir1(31, 0。
5);%31阶低通滤波器fnoise = filter(nfilt, 1, noise); %对噪声滤波d = signal + fnoise;figure(3);plot(0 : 199,d(1 : 200), 'LineWidth',2);set(gca, ’FontSize', 30);grid;axis([0 200 -4 4]);title(’\fontsize{30}输入自适应的信号与噪声');输入自适应的信号与噪声图 34。
频率响应以下是RTL滤波算法的实现过程,其代码如下,其频率响应的波形如图4所示。
M = 32;lam = 1;delta = 0。
1;w0 = zeros(M, 1);P0 = (1/delta)* eye(M, M);Zi = zeros(M - 1, 1);%将RLS滤波器重复1000次,画出滤波器的频率响应以及预期的频率响应Hadapt = adaptfilt.rls(M, lam, P0, w0, Zi);Hadapt。
PersistentMemory = true;[y, e] = filter(Hadapt, noise, d);H = abs(freqz(Hadapt, 1, 64));H1 = abs(freqz(nfilt, 1, 64));wf = linspace(0, 1, 64);figure(4);plot(wf, H, wf, H1,’LineWidth',2);set(gca,’FontSize', 30);xlabel(’\fontsize{30}频率(\times\pi rad /sample)');ylabel ('\fontsize{30}幅度');legend (’\fontsize {30}自适应频率响应','\fontsize {30}预期滤波器响应'); grid ;axis([0 1 0 2]);频率( rad /sample)幅度图 45。
原始信号和信号误差经过滤波后的波形如图5所示,可见其已接近原始信号波形。
以下是实现的代码.figure (5);plot(0 : 499,signal (1 : 500), '—-’, 0 : 499, e(1 :500),'LineWidth ’,2);set (gca, 'FontSize ’, 30); grid;axis ([0 500 -4 4]);title (’\fontsize {30}原始信号和信号误差');legend (’\fontsize{30}原始信号’, ’\fontsize{30}信号误差’);原始信号和信号误差图 53 结束语LMS(最小均方)算法是一种有效而简便的方法,其优点是结构简单,算法复杂度低,易于实现,稳定性高。
然而,这种方法对快速变化的信号并不适合,因为它的收敛速度很慢。
RLS(递推最小二乘)算法是另一种基于最小二乘准则的精确方法,它具有快速收敛和稳定的回波抵消特性,因而被广泛地应用于实时系统识别和快速启动的信道均衡等领域。
本次设计大体上实现了RLS(递推最小二乘)的实现,通过这次设计,加深了我对现代信号处理这门课程的学习,同时对RLS的设计有了跟深入的了解。
RLS算法在导航的PVT解算中运用很大,学习这门算法,对我今后的研究生涯会有很大的帮助,所以,总体来说,这次的收获还是不小的。
参考文献:[1]张德辉,穆晓敏.基于LMS 算法自适应滤波器的Matlab仿真分析[J]。
河南科技,2004(9).[2]张雅彬,王融丽,刘昕.自适应均衡器的LMS算法实现及其仿真[J].吉首大学学报:自然科学版,2005(5).[3]刘世忠.自适应滤波器的拟最小二乘算法及其应用[J]。
四川大学学报:自然科学版,1994(4)。
[4]马胜前.自适应滤波器及其实现[J].西北师范大学学报: 自然科学版,1999(1).。