基于RLS算法自适应滤波器的设计
摘要
自适应滤波器是统计信号处理的一个重要组成部分。在实际应用中,由于没有充足的信息来设计固定系数的数字滤波器,或者设计规则会在滤波器正常运行时改变,因此需要研究自适应滤波器。凡是需要处理未知统计环境下运算结果所产生的信号或需要处理非平稳信号时,自适应滤波器可以提供非自适应方法所不可能提供的新的信号处理能力。而且其性能通常远优于用常方法设计的固定滤波器。
本文从自适应滤波器研究的意义入手,介绍了自适应滤波器的基本理论思想,具体阐述了自适应滤波器的基本原理、算法及设计方法。自适应滤波器的算法是整个系统的核心。对 RLS算法自适应滤波器做了详细的介绍,采用改进的RLS算法设计自适应滤波器,并采用MATLAB进行仿真,通过实验结果来体现该滤波器可以根据信号随时修改滤波参数,达到动态跟踪的效果,使滤波信号更接近于原始信号。
关键词:自适应滤波器,RLS算法,噪声消除,FIR
张少博:基于RLS算法自适应滤波器的设计
第1章 绪论
1.1 课题研究意义和目的
滤波技术是信号处理中的一种基本方法和技术,尤其数字滤波技术使用广泛,数字滤波理论的研究及其产品的开发一直受到很多国家的重视。
对自适应滤波算法的研究是当今自适应信号处理中最为活跃的研究课题之一。Windrow等于1967年提出的自适应滤波系统的参数能自动的调整而达到最优状况,而且在设计时,只需要很少的或根本不需要任何关于信号与噪声的先验统计知识。这种滤波器的实现差不多像维纳滤波器那样简单,而滤波器性能几乎如卡尔曼滤波器一样好。自适应滤波器与普通滤波器不同,它的冲激响应或滤波参数是随外部环境的变化而变化的,经过一段自动调节的收敛时间达到最佳滤波的要求。自适应滤波器本身有一个重要的自适应算法,这个算法可以根据输入、输出及原参量信号按照一定准则修改滤波参量,以使它本身能有效的跟踪外部环境的变化。因此,自适应数字系统具有很强的自学习、自跟踪能力和算法的简单易实现性。
自适应滤波技术的核心问题是自适应算法的性能问题,提出的自适应算法主要有最小均方(LMS)算法、递归最小二乘(RLS)算法及相应的改进算法如:归一化(NLMS)算法、变步长(SVSLMS)算法、递归最小二乘方格形(RLSL)算法等。这些算法各有特点,适用于不同的场合。研究自适应算法是自适应滤波器的一个关键内容。递归最小二乘(RLS)算法是线性自适应滤波算法中最基本的两类算法之一,由于基于LMS准则的自适应滤波算法的收敛速度通常较慢,有些在调整过程种的延时也较大。为了克服LMS的算法,我们采用在每个时刻对所有已输入信号重估的平方误差之和最小这样的准则,即RLS算法。RLS算法复数乘法正比于k2,使其自适应速度更快。目前应用最多的是系统辨识、回波消除、自适应谱线增强、自适应信道均衡、语音线性预测、自适应天线阵等诸多领域。
1.2 国内外研究发展状况
自适应滤波的基本理论通过几十年的发展已日趋成熟,近十几年来自适应滤波器的研究主要针对算法与硬件实现。算法研究主要是对算法速度和精度的改
- 1 -
张少博:基于RLS算法自适应滤波器的设计
进,其方法大都采用软件C、MATLAB等仿真软件对算法的建模和修正。通常,自适应滤波器的硬件实现都是用DSP通用处理器(如TI的TMS320系列)。DSP器件采用改进的哈佛结构,具有独立的程序和数据空间,允许同时存取程序和数据,内置高速的硬件乘法器(MAC),增强的多级流水线。DSP具有的硬件乘法模块(MAC),专用的存储器以及适用于高速数据运行的总线结构,使DSP器件具有高速的数据运算能力。目前,用DSP器件处理数字信号已经成为电子领域的研究热点。在自适应信号处理领域,对于数据处理速度在几兆赫兹以内的,通用DSP器件也是首选。迟男等人在TMS320C32芯片上扩展EPROM和RAM,实现了30阶LMS自适应滤波器,使用的刀D转化器件为AD1674,最高采样频率为l00KHz。陆斌等人采用TMS320C30数字信号处理器与IMSA110专用滤波器并行处理的方法设计出了自适应滤波器并应用于直接序列的扩频接收系统1221。赵慧民等人在TMS320C31上实现了自适应权向量滤波器,完成了信号采样频率为80KHz的自适应滤波。在数据处理速度只要求在几兆赫兹以内的应用场合,这些用DSP实现的自适应滤波器能很好的满足系统实时的需求。在这种需求场合下,DSP具有不可媲美的性价比。
但是随着信息化的进程加快和计算机科学与技术、信号处理理论与方法等的迅速发展,需要处理的数据量越来越大,对实时性和精度的要求越来越高。以迅速发展的移动通信技术为例,从IG时代只能传送语音的模拟通信,到2G时代的传送语音和数据的GSM、TDMA与CDMA1595,到2.5G时代传送语音、数据、图片、彩信MMS、简短视频、收发E-mail、网页浏览等的GPRS与CDMA2000lX,到目前正处于研发与测试阶段的能够传送图像、音乐、视频流等多种媒体形式,提供包括网页浏览、电话会议、电子商务的3G通信,以及目前正在研发与憧憬中的能够传送高质量流畅的视频流与多种实时流媒体业务的4G通信。
常用的数字系统目标器件除了DSP处理器外还有专用集成电路(ASIC)、专用标准电路模块(ASSP)和现场可编程门阵列(FPGA)。ASIC和ASSP是专门针对完成某种数字信号处理算法的集成电路器件,因此其在性能指标、工作速度、可靠性和成本上优于DSP处理器。其优秀的工作性能主要源于特定的算法全部由ASSP和ASIC中的硬件电路完成。ASSP是半定制集成电路,在许多DSP算法的实现方面都优于DSP(数字信号处理器),但在功能重构,以及应用性修正方面缺
- 2 -
张少博:基于RLS算法自适应滤波器的设计
乏灵活性;ASIC专用集成电路使用超大规模专用集成电路ASIC的实现方法是实用化的产品唯一可行的方法,只有使用IC,才有高可靠性和可接受的价格及体积功耗等。ASIC虽然有一定的可定制性,但开发周期长,而且有一个最小定制量,在实验室研制开发阶段,开发成本非常高。现代大容量、高速度的FPGA在可重配置的数字信号处理应用领域,特别是对于任务单一、算法复杂的前端数字信号处理运算,有独特的优势。另外,FPGA所具有的大规模并行处理能力和可编程的灵活性使得设计的系统能获得极高的处理性能,并且能够适应日益变化的标准、协议和性能需求。用FPGA实现自适应滤波器,国外起步比较早,发展也非常迅速。Hesener A.于1996年提出了用FPGA实现自适应滤波器的设想,并在FPGA上实现了处理速度可达SM的8阶8位FIR滤波器。Woolfries N.等人用FPGA实现了自适应栈滤波器,并应用于图象处理。Dawood A.等人用FPGA开发了自适应FIR滤波器并与DSP处理器方案进行了比较研究。国内有一些关于自适应算法硬件实现的研究,但基本是针对自适应滤波器中的算法,如南开大学李国峰的博士论文用VHDL语言描述了正负数的运算问题和浮点数运算问题,完成了基于FIR的LMS自适应滤波器的硬件设计与逻辑综合。国防科学技术大学江和平等人讨论了自适应卡尔曼算法的简化,并完成了FPGA的设计。同济大学梁甲华等人重点讨论了编码方法在FPGA的技术问题。上海交通大学范瑜等人介绍了用VHDL语言实现并行延时LMS算法的自适应数字波束成形器的FPGA设计过程。而针对自适应格型结构采用FPGA硬件实现的文献报导很少,国内中国科学技术大学王显洁等人通过采用流水线结构和运算单元分时复用,提高了运算速度,能够满足实时性预测编码要求。
1.3 本文研究思路与主要工作
在信号的传播路径中以及在信号处理过程中,都会引入噪声。噪声的引入影响了对真实信号的处理,有时候,较强的噪声会“遮盖”了信号,从而难以得到准确、稳定的真实信号。噪声对信号的污染在绝大多数情况下是不可避免的,因而,对噪声的消除和抑制是信号处理中极其重要的工作。在信号传输和处理过程中,最常见的噪声形式为白噪声、带限白噪声、高斯白噪声、瑞利分布白噪声。RLS(Recursive Least square)自适应滤波器常常用于噪声消除器的构建,
本文介绍了自适应滤波器原理,对RLS自适应算法进行分析,最后用MATLAB对自适应滤波器进行了仿真和实现,并分析了该自适应滤波器的性能。
- 3 -
张少博:基于RLS算法自适应滤波器的设计
第2章 自适应滤波器理论基础
2.1数字滤波器的基本概念
凡是有能力进行信号处理的装置都可以称为滤波器。如果滤波器的输入和
输出均为离散信号,称该滤波器为数字滤波器。当滤波器的输出信号为输入端的线性函数时,该滤波器称为线性滤波器,否则就称为非线性滤波器。一个典型的数字滤波器的框图如图2.1所示。
图2.1 数字滤波器
设输入信号为x?n?,输出信号为y?n?,该数字滤波器可用以下差分方程来表示:
y(n)??aix(n?i)??biy?n?i? (2-1)
i?0i?1M?1N?1式中ai,bi称为滤波器系数。 当bi?0时,上式变为:
y?n???aix?n?i? (2-2)
i?0M?1这种滤波器称为全零点滤波器。
如果ai?0,bi?0时,则称为全极点滤波器或递归滤波器。 由上式,可知数字滤波器的传递函数为:
M?1 H?z???azii?0Mi?1?1 (2-3)
1??biz?i其单位冲击响应函数为:
h?n??z?1?H?z?? (2-4)
- 4 -
张少博:基于RLS算法自适应滤波器的设计
? y?n??h?n??x?n??i????h?i?x?n?i? (2-5)
如果当n<0时,有h?n?=0,这样的滤波器系统称之为因果系统。如果冲激响应函数是有限长的,即:
?h?n?,0?n?N h?n??? (2-6)
?0,else则称此滤波器为有限冲激响应FIR(FiniteImpulseResponse)滤波器,否则,称之为无限冲激响应IIR(InfiniteImpulseResponse)滤波器。 如果h?n?满足如下条件:
h?n??0,n?0???? (2-7)
h?n??C??n?0?则称此滤波器是因果的,并且是稳定的。
2.2 自适应滤波器的原理
自适应滤波器由参数可调的数字滤波器和自适应算法两部分组成(如图2.2所示)。参数可调数字滤波器可以是FIR数字滤波器或IIR数字滤波器,也可以是格型数字滤波器。输入信号x?n?通过参数可调数字滤波器后产生输出信号(或响应) y?n?,将其与参考信号(或称期望响应)d?n?进行比较,形成误差信号e?n?。
e?n?(有时还要利用x?n?)通过某种自适应算法对滤波器参数进行调整,最终使 e?n?的均方值最小。因此,自适应滤波器实际上是一种能够自动调整本身参数的特殊维纳滤波器。在设计时不需要事先知道关于输入信号和噪声的统计特性的知识,它能够在自己的工作过程中逐渐了解,或估计出所需的统计特性,并以此为依据自动调整自己的参数,以达到最佳滤波效果。一旦输入信号的统计特性发生变化,它又能够跟踪这种变化,自动调整参数,使滤波器性能重新达到最佳[1]。
- 5 -
张少博:基于RLS算法自适应滤波器的设计
图2.2 自适应滤波器一般结构
2.3 自适应滤波器的算法
自适应算法主要根据滤波器输入的统计特性进行处理,它可能与滤波器的输入及其他数据有关,因此,存在开环算法和闭环算法。
开环算法的控制输出仅取决于滤波器的输入和其他输入数据;闭环的控制输出则是滤波器输出及其他输入信号的函数。闭环控制利用输出反馈,它不但能在滤波器输入信号变化时保持最佳输出,而且还能在某种程度上补偿滤波元件参数的变化和误差及运算误差。但其存在稳定性问题和收敛速度不高的缺点;开环算法的优点是调整速度快,一般无稳定性问题,但通常它要求的计算量大且不能补偿元件参数误差和运算误差,因此,一般采用闭环算法。
自适应算法是根据某种判断来设计滤波器的。该算法包括最小均方算法LMS、最小高阶均方算法LMF、最小平方算法OLS和递推最小算法RLS等。由WIDROW和HOFF提出来的最小均方误差算法,因具有计算量小、易于实现、不依赖模型和性能稳健等优点而被广泛采用。
在自适应滤波器的实际操作中, 一个必须注意的问题是自适应步长的选择。由LMS迭代算法可知, 欲使其收敛, 则自适应步长?的取值范围为0<1/?max, 自适应时间常数和步长的关系为Tmax=1/(4??n) [2]。
2.4 RLS自适应滤波器
基于LMS准则的自适应滤波算法的收敛速度通常较慢,有些在调整过程种的
- 6 -
张少博:基于RLS算法自适应滤波器的设计
延时也较大。为了克服LMS的算法,我们采用在每个时刻对所有已输入信号重估的平方误差之和最小这样的准则,即RLS自适应滤波算法。从物理概念上说,这是一种在现有约束条件下利用了最多可利用信息的原则。
RLS自适应滤波器的结构框图如图2.3所示:
图2.3 RLS横向自适应滤波器
基本RLS自适应算法所遵循的准则是确定这样的W,它使
e(k) = d(k) - WTX(k) (2-8)
的加权平方和:
?(k,W) = ??k?i|e(i)|2 (2-9)
i?1k最小。其中:
X(k) = [x(k),x(k?1),...,x(k?N?1)]T (2-10)
W = [w1,w2,...,wN]T (2-11)
?为略小于1的值,0???1,称为遗忘因子。加入这个因资额的物理含义是在权系数W所用到的输入信号中,我们对时间较近的数据加以较大的权来考虑,时间教前的数据其权按指数规律减小。这样可使算法更能反映当前的情况,从而加强对信号统计特性有缓慢变动时的适应性。?一般取0.95~0.9995,这种加权的方式为指数权。
为了使加权平方和最小,令:
??(k,W) = 0 ?W (2-12)
- 7 -
张少博:基于RLS算法自适应滤波器的设计
??(k,W)?即: =
?W?Wk??i?1kk?i[d(i)?WTX(i)]2
=-2??k?i[d(i)?XT(i)W]X(i)=0
i?1 (2-13)
因而有:
??i?1kk?iX(i)X(i)W=??k?id(i)X(i)
Ti?1kk (2-14)
若令:
R(k)=??k?iX(i)XT(i)
i?1k (2-15)
U(k)=??k?id(i)X(i)
i?1 (2-16)
则式2-14可写成:
R(k)W(k)=U(k)
(2-17)
如果R(k)是非奇异的,则:
W(k)=R?1(k)U(k)
(2-18)
上式就是求解滤波器参数的公式,它也是最佳滤波器系数的维纳(Winear)方程,只是应注意这里的W(k)随时间k而改变。但式1-48来调整W(k)有两处不变:第一,需要矩阵求逆及矩阵乘法等运算,因而计算量较大;第二,W(k)与预测误差e(k)之间没建立关系,不能实现直接由预测误差e(k)来调整滤波器参数的要求。不过我们注意到预测误差e(k)由
e(k)=d(k)-XT(k)W(k?1)
(2-19)
表示。利用此表达式,可以将式2-27的U(k)改写为:
U(k)=??k?i[xT(i)W(i?1)?e(i)]X(i)
i?1kk
=??k?i[X(i)XT(i)W(i?1)+e(i)X(i)]
i?1 (2-20)
将上式带入式2-18,
- 8 -
张少博:基于RLS算法自适应滤波器的设计
kk
W(k)=R(k)???1i?1k?iX(i)X(i)W(i?1)+R(k)??k?ie(i)X(i)
T?1i?1
=W1(k)+W2(k)
(2-21)
为了简化第一项W1(k),并建立W(k)与W(k?1)之间的关系,认为k?1时刻及其以前时刻的滤波器参数相同,即:
W(0)?W(1)?...?W(k?1)
(2-22)
则有:
W1(k)=R(k)??k?iX(i)XT(i)W(k?1)=W(k?1)
?1i?1k (2-23)
为了简化W2(k),我们可以认为遗忘因子??0,这相当于只有本时刻的结果被记忆下来,而以前时刻的结果全部遗忘,于是W2(k)可写为:
W2(k)=R(k)?0k?ie(i)X(i)=R?1(k)e(k)X(k)
?1i?1k (2-24)
将式2-23和2-24带入2-22,可得:
W(k)=W(k?1)+R?1(k)X(k)e(k)
(2-25)
式2-36描述了一个滤波器参数受其输入误差e(k)控制的自适应滤波算法,被称为递推最小二乘法(Recursive Least Squares)。
为了实现递推计算,还应解决逆矩阵R?1(k)的递推计算问题。这里,我们引入一个著名的引理——矩阵求逆引理,该引理如下:
若A是非奇异阵,则
(A?BCT)?1=A?1?A?1B(I?CTA?1B)?1CTA?1 (2-26)
这里只要用(A?BCT)左乘上式右边,并严正其结果等于单位阵即可。
由R(k)的定义式2-12可导出:
R(k)=R(k?1)+X(k)XT(k)
(2-27)
利用矩阵求逆引理,得:
R?1(k?1)X(k)XT(k)R?1(k?1) R(k)=R(k?1)-T?11?X(k)R(k?1)X(k)?1?1 (2-28)
- 9 -
张少博:基于RLS算法自适应滤波器的设计
这样我们可以利用R?1(k)随k的迭代式而推得W(k)的迭代式。我们将基本RLS的自适应滤波算法综合如下:
初始化步骤:(对于k=0)
令W(0)?0,R(0)?I
运算步骤:对于k=1到k所需的终了时刻
e(k)=x(k)?XT(k)W(k?1)
?1?1 (2-29) (2-30) (2-31)
R?1(k?1)X(k)XT(k)R?1(k?1) R(k)?R(k?1)-T?11?X(k)R(k?1)X(k)W(k)=W(k?1)+R?1(k)X(k)e(k)
从结构来看RLS自适应滤波器的自适应是通过对输入数据进行一定的算法实现的,所以这种结构是“开环”的。RLS算法中的R?1(k)与LMS算法中的?作用相同,但?为标量,而R?1(k)则是随k而变的矩阵的逆,这说明不同时刻W(k)的每个元素的调整量均随新进的数据的不同步长因子做调整,而不是统一的用同一个因子?来调整,这表征了调整的精细性及新信息数据利用的充分性。RLS算法复数乘法正比于k2,使其自适应速度更快[3]。
- 10 -
张少博:基于RLS算法自适应滤波器的设计
第3章 基于RLS算法自适应滤波器的实现
3.1 Matlab仿真自适应滤波器
在许多场合,一个输入信号往往包含有周期性信号和宽带成分,而周期性信号是期望得到的。如图4.1所示是一个自适应噪声消除滤波器(ANC)的原理图,输入是带有噪声的正弦波,它能够通过自适应调节,分离出信号中所包含的周期性成分和随机成分,从噪声中还原出正弦波。其原理是当周期信号和噪声混合的输入信号被延长一定时间后,其中的周期信号成分是高度相关的,但根据高斯理论的推断,噪声信号是不相关的。于是自适应滤波器就会减小输出信号中噪声的能量,产生周期信号的最佳估计信号。周期信号和噪声都是时变信号,因此滤波器必须根据输入信号的特性适应这种变化,决定权值的选取,最终使得输出信号的能量最低,这样就从某种程度上消除了噪声[4]。
图3.1 自适应噪声消除滤波器原理框图
下面用Matlab中的Simulink工具对自适应滤波器进行模拟仿真。 如图3.2所示,是RLS设置参数:
图3.2 RLS滤波器设置参数
- 11 -
张少博:基于RLS算法自适应滤波器的设计
即递推最小二乘自适应滤波器的FIR阶数为32,存储指数的权重因子为1.0,filter—taps的初值为0.0,初始输入的估计方差为0.1。
Simulink仿真模型界面图,如图3.3所示。
图3.3 RLS自适应滤波器滤除噪声仿真模型界面图
3.2 自适应滤波器性能分析
观察显示结果,其中Time Scope的显示,如图3.4所示。
图3.4 FIR阶数位32的波形显示界面图
从图3.4中可以看出,第一个显示器中显示的信号为周期信号,代表有用信号;第二个显示器显示的是被噪声干扰后的周期信号;第三个显示器显示的是经过所设计的自适应滤波器后的波形。第一个显示器中也含有滤波后的波形以便与原周期信号进行比较。第四个是噪声信号。
从图3.4中可以分析出,一开始输出信号为0,经过N 次迭代后,自适应滤波器
- 12 -
张少博:基于RLS算法自适应滤波器的设计
慢慢调整权值使输出信号逼近原周期信号,最后与周期信号基本重合。
图3.5和图3.6分别是FIR阶数位16和64的仿真输出所示。
图3.5 阶数16波形显示界面图
图3.5 阶数64波形显示界面图
将图3.3、图3.4及图3.5中的第一个显示器中的波形比较可以发现,当阶数位16时,自适应速度慢而且滤波效果差,噪声较大,当阶数位64时,自适应的滤波器大幅提高,但滤波效果较阶数位32时就差了许多,因此,为了提高滤波器的滤波效果,在设计RLS自适应滤波器时阶数尽量选择32附近。
如图3.7和图3.8分别的滤波后的幅度响应和功率频谱。
- 13 -
张少博:基于RLS算法自适应滤波器的设计
图3.7 幅度响应
图3.8 功率频谱
经过N次的叠加,自适应滤波器的幅度和功率均趋于平稳。
通过上述仿真结果可以看出,基于MATLAB的自适应滤波器滤除噪声系统能够有效地从噪声中恢复出原始信号,但在实际应用中,要注意参考信号与噪声信号的相关性,相关性越大,自适应噪声抵消系统的噪声抵消效果越好。
- 14 -
张少博:基于RLS算法自适应滤波器的设计
第4章 结论
本文首先介绍了课题的来源和研究本课题的意义,以及自适应滤波器的研究现状,综述了自适应滤波技术,为本文的研究工作打下理论基础。在第二章中详细阐述了自适应滤波器的基本原理,着重介绍了自适应算法,并对两种算法进行了比较,第三章利用Matlab的Simulink 工具仿真了RLS自适应滤波器消除噪声模型,并对其进行了分析和研究,利用图表显示了RLS自适应滤波器参数对滤波器性能的影响,从而对RLS滤波器有了更深刻的了解。Matlab强大的运算和图形显示功能,可使数字信号处理实现效率大大提高,使数字信号处理工作变得十分简单,为滤波器的优化设计及合理应用提供了可靠依据,有助于提高工程技术人员分析和解决问题的能力。
自适应滤波技术的核心问题是自适应算法的性能问题,研究自适应算法是自适应滤波器的一个关键内容,算法的特性直接影响滤波器的效果。在实际中,自适应滤波器的应用比较复杂,包括维纳滤波和卡尔曼滤波都是基于改变参数的滤波方法,修改参数的原则一般采用均方最小原则,修改参数的目的就是使得误差信号尽量接近于0。传统的滤波方法总是设计较精确的参数,尽量精确地对信号进行处理,传统滤波方法适用于稳定的信号,而自适应滤波器可以根据信号随时修改滤波参数,达到动态跟踪的效果。
[5]
- 15 -
张少博:基于RLS算法自适应滤波器的设计
参考文献
[1] 李梦醒,秦姣华. Simulink仿真技术在数字滤波器设计中的应用[J].湖南城市学院学报,
2005, 14(3):66 - 68.
[2] 郑宝玉.自适应滤波器原理[M].北京:电子工业出版社,2006.
[3] 赵春晖,张朝柱,李刚.自适应信号处理。哈尔滨:哈尔滨工业大学出版社,2006. [4] 李宏,谢霞,郑俊.基于Maltab 环境的DSP滤波教学实验系统的设计与实现[J]. 电气电
子教学学报,2005,27(2):76 - 79.
[5] 荣雅君,杨秋霞. 自适应滤波器的设计及其应用[J].河北大学学报,2003,23(3):307 -
311.
- 16 -