当前位置:文档之家› 自适应信号处理作业

自适应信号处理作业

1.自适应滤波如何运用到系统辨识?自适应滤波理论和技术是统计信号处理和非平稳随机信号处理的主要内容, 它具有维纳滤波和卡尔曼滤波的最佳滤波性能, 但不需要先验知识的初始条件, 它是通过自学习来适应外部自然环境, 因而具有广泛的应用。

自适应滤波器( Adaptive filter) 是自设计的,由于其依靠递归算法进行运算, 因此可在有关信号特征的完整知识不能得到的环境下, 圆满的完成滤波运算。

由于稳定性问题和IIR 局部最优,所以, 自适应滤波器大多用FIR 来实现。

在自适应滤波器应用中一个重要问题是使可调节滤波器参数最优的标准, 以及利用这种标准形成实际上可行的算法。

最小均方( LMS, leastmean-square) 算法是现今应用最为广泛的一种线性自适应算法, 它不需要有关的相关函数和矩阵求逆运算, 是一种极为简单的算法.最小均方误差(LMS,least mean square) 算法于1960年提出后, 因其具有计算量小、易于实现等优点而获得大量应用。

典型的应用领域有系统辨识、信号处理和自适应控制等。

LMS 算法的基本原理是基于估计梯度的最速下降法, 即沿着权值的梯度估值的负方向进行搜索,以期达到权值最优, 实现均方误差最小意义下的自适应滤波。

系统辨识是根据系统的输入输出时间函数来确定描述系统行为的数学模型,是现代控制理论中的一个分支。

对系统进行分析的主要问题是根据输入时间函数和系统的特性来确定输出信号。

系统辨识包括两个方面:结构辨识和参数估计。

在实际的辨识过程中,随着使用的方法不同,结构辨识和参数估计这两个方面并不是截然分开的,而是可以交织在一起进行的。

2.在系统辨识中,LMS,RLS算法的形式?2.1 LMS原理:设通信系统输出信号为:y(k)=W T X(k) (1) 其中,该系统权向量为:W=[w1, w2,…, w n]T(2) 输入信号为X(k)=[x(k), x(k-1), …,x(k-m+1)]T(3) 误差信号定义为e(k)=d(k)-y(k)=d(k)-W T(k)X(k) (4) LMS算法的原理是用e2(k)来估计E(e2(k)),此时有▽(k)=-2e*(k)X(k) (5) 这样梯度法的叠代公式变为W(k+1)=W(k)+2μe*(k)X (k) (6) 其中,*为共扼。

算法步骤:基本的LMS算法如下:步骤1 初始化:W(0)=0, 0<μ<1/λmax步骤2 W(k+1)=W(k)+2μe(k)X*(k)步骤3 判断是否收敛,如果不收敛,令k=k+1,回步骤2。

2.2 RLS原理SISO 系统动态过程的数学模型:11()()()()()A z z k B z u k n k --=+(1)其中()u k ,()z k 为输入输出量,()n k 为噪声。

式中11212()1...aa n n A za z a za z----=++++11212()...bb n n B zb zb zb z----=+++展开后得到:1212()(1)(2)...(1)(2)...()a b n n b z k a z k a z k a b u k b u k b u k n =------+-+-++-模型(1)可化为最小二乘格式:()()()z k h k n k τθ=+(2)记1212[,,...,,,...,]abn n a a a b b b τθ=为待估计的参数。

()[(1),...,(),(1),...,()]a b h k z k z k n u k u k n τ=------,对于1,2,...k L =(L 为数据长度)。

方程(2)构成一个线性方程组,写成()()()L L L z k H k n k θ=+; (1)(2)()L z z Z z L ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦ ,(1)(2)()Lh h H h L τττ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎢⎥⎣⎦,(1)(2)()L n n n n L ⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦ 根据最小二乘法一次完成算法,其参数估计为:1ˆ()L L L LLS H H H Z ττθ-=。

参数递推估计,每取得一次新的观测数据后,就在前次估计结果的基础上,利用新引入的观测数据对前次估计的结果,根据递推算法进行修正,减少估计误差,从而递推地得出新的参数估计值。

这样,随着新观测数据的逐次引入,一次接一次地进行参数估计,直到参数估计值达到满意的精确程度为止。

算法步骤:步骤一:初始化(0)0W =;1(0)P I σ-=,其中I 为单位矩阵; 步骤二:更新1,2,...n =计算更新增益矢量:()(1)()/[()(1)()]T g n P n X n X n P n X n λ=-+-; 滤波:()(1)()T y n W n X n =-; 误差估计:()()()e n d n y n =-;更新权向量:()(1)()()W n W n g n e n =-+;更新逆矩阵:1()[(1)()()(1)]T P n P n g n X n P n λ-=---;其中,()P n 为自相关矩阵()xx P n 的逆矩阵,常数λ是遗忘因子,且01λ<<。

3.最优意义下的权向量是什么?LMS :W(k+1)=W(k)+2μe*(k)X (k) RLS :()(1)()()W n W n g n e n =-+4.采用LMS ,RLS 算法后,仿真结果,分析步长选择对整体性能的影响? LMS :4.1输入信号采用在区间(0,1)为均匀分布的随机信号。

图1给出的是采用LMS 算法,当μ=0.01,叠代1000次后,得到系统滤波器参数的收敛曲线图。

从图中我们可以看到,三个系数基本在叠代到第200次收敛到真实值,可见算法在这种情况下是有效的。

图1 μ=0.01时的W的收敛曲线图2给出了,当μ为0.01, 0.03, 0.3和0.5时,采用LMS算法叠代300次后得到的滤波器系数收敛曲线图,在图中,我们可以看到,(b)中的μ值大于(a)中的,其收敛速度明显加快。

而(c)中的μ值过大而导致收敛曲线产生了振荡现象,但是最后仍旧收敛。

(d)中μ的取值由于超过了1/λmax,所以导致了曲线的发散。

因此,合理地对μ的取值将影响LMS算法性能的优劣。

图2 不同μ下的w3收敛曲线图4.2输入信号采用正弦信号。

图17给出的是输入为正弦信号时,采用LMS算法,叠代1000次后,w3的收敛曲线,其步长分别取0.01, 0.3 和0.4。

当取μ为0.01时,曲线收敛,但是它并未收敛到真实值,当μ为0.3时,曲线在0.5附近作间歇性振荡现象,而当μ为0.4时,曲线时而发散时而收敛。

得到以上结果的主要原因是,正弦信号为单一频率的信号,而LMS算法要求输入信号的频率应该尽可能丰富,它对频率简单的信号是无法估计出滤波器系数的。

图17 输入为正弦信号的收敛曲线图1 直接型自适应F IR滤波器MATLAB实现MATLAB 有专门的函数ADAPTLMS 实现自适应滤波,用法为:[ y , e , s ] = ADAPTLMS( x , d , s)其中y为滤波器的输出信号, x为滤波器的输入信号, d为期望信号, e为误差信号, s 为包含自适应滤波器信息的结构体, 可用函数INITLMS初始化。

它的语法为: s = INITLMS( h 0, Mu)其中h0 为滤波器系数的初始值, 是一个长度为滤波器阶数的向量可为0; Mu 为步长参数。

自适应滤波器的应用实例:系统辨识现要识别一个未知的线性系统, 这个未知系统可以是一个全零点系统, 也可以是一个零极点系统。

该未知系统可用一个长度为N 的FIR滤波器近似( 建模, 见图2) 。

为了构造这个问题, 未知系统FIR模型并联级联, 并由同一个长度输入序列x ( n )激励。

如果{ y ( n) }代表模型的输出, 而{ d( n) }代表未知系统的输出, 误差序列e( n) =d ( n) - y ( n) 。

如果能将平方误差和减到最小, 就得到一组线性方程组, 因此, 可用LMS 算法来对FIR 模型的自适应, 使得它的输出近似为该未知系统的输出。

仿真源程序和仿真结果如下:图2 系统辨识方框图x = 0.1* randn( 1, 500) ; % 输入信号x( n)b= f ir1( 31, 0.5) ; % 构建待辨识的未知FIR系统d= f ilt er( b, 1, x ) ; % 期望信号d( n)w0= zeros( 1, 32) ; % 自适应滤波器系数的初始化mu= 0.8; % LMS步长参数S= initlms( w0, mu) ; % 初始化s 信息结构体[ y, e, S] = adaptlms ( x , d, S) ; % 自适应滤波stem ( [ b.’ , S.coeffs.’ ] ) ; % 画出识别的系统和未知系统的参数。

图3 系统辩识的仿真结果由图 3 可见, 两个系统的系数非常的接近。

LMS 算法的收敛性能由于主输入端不可避免地存在干扰噪声, LMS 算法将产生参数失调噪声。

干扰噪声越大, 则引起的失调噪声就越大;减小步长因子, 可提高算法的收敛精度, 然而步长因子的减小将降低算法的收敛速度和跟踪速度, 因此固定步长的LMS 自适应滤波算法在收敛速度、时变系统跟踪速度与收敛精度方面对调整步长因子的要求是相互矛盾的。

为了克服这一矛盾, 人们提出了许多变步长自适应滤波算法。

对比:为了检验两种自适应滤波算法在去噪应用中的滤波性能,下面对LMS算法和RLS算法进行计算机模拟仿真实验。

其中采样频率为1000Hz,其算法用MATLAB语言实现。

图2为幅度为2标准正弦波。

图3为幅度为2正弦波叠加带限高斯白噪声的混迭信号,是系统的主输入信号。

图4、图5分别为用LMS算法和RLS算法提取得到的正弦信号。

表一各自适应滤波各参数设置从图上可以看出,用RLS自适应滤波算法提取得到的正弦信号效果较好。

而LMS自适应滤波算法也能将信号提取出来,但是其滤波效果较差,存在没有滤除的随机噪声部分较多。

由于LMS算法只是用以前各时刻的抽头参量等作该时刻数据块估计时的平方误差均方最小的准则,而未用现时刻的抽头参量等来对以往各时刻的数据块作重新估计后的累计平方误差最小的准则,所以LMS算法对非平稳信号的适应性差。

RLS算法的基本思想是力图使在每个时刻对所有已输入信号而言重估的平方误差的加权和最小,这使得RLS算法对非平稳信号的适应性要好。

与LMS算法相比,RLS算法采用时间平均,因此,所得出的最优滤波器依赖于用于计算平均值的样本数,而LMS算法是基于集平均而设计的,因此稳定环境下LMS算法在不同计算条件下的结果是一致的。

相关主题