自适应均衡(包括LSM和RLS算法)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
自适应均衡实验
1、实验内容和目的
1)通过对RLS 算法的仿真,验证算法的性能,更加深刻的理解算法的理论。
2)分别用RLS 算法和LSM 算法实现图1中的自适应均衡器,比较两种算法的差异,分析比较算法的性能,从而掌握两种算法的应用。
图1 自适应均衡框图
2、基本原理分析
1)LMS 算法原理
LMS 算法一般来说包括两个基本过程:滤波过程和自适应过程。
滤波过程来计算线性滤波器的输出及输出结果与期望响应的误差。
自适应则是利用误差来自动调节滤波器的参数。
LMS 算法也是一个递推的算法。
设()J n 是滤波器在n 时刻产生的均方误差,其梯度计算如下:
()()22n n ∇=-+J p Rw
其中R 和p 分别是输入的自相关矩阵和输入与期望输出的互相关矩阵:
()()()ˆH n n n =R
u u
()()()*ˆn n n =p
u d 则梯度向量的瞬态估计为:
()()()()()()*ˆˆ22H n n n n n n ∇
=-+J u d u u w 由最速下降算法可以得到抽头向量更新的递推关系式:
()()()()()()*ˆˆˆ1H
n n n n n n μ⎡⎤+=+-⎣⎦w w u d u w
整个LMS 算法归纳总结如下: 参数设置:
M=抽头数(滤波器长度) μ=步长参数 m a x
2
0MS μ<<
其中max S 是抽头输入功率谱密度的最大值,而滤波器长度M 为中到大 初始化:
如果知道抽头权向量()n w 的先验知识,则用它来选择()ˆ0w 的合适值,否则令()ˆ00=w。
更新滤波过程:
()()()ˆH y n n n =w
u ()()()e n d n y n =- ()()()()*ˆˆ1n n n e n μ+=+w
w u 2)RLS 算法原理
RLS 算法是一个递归的过程,递归最小二乘问题的正则方程可用矩阵写为
()()()ˆn n n =Φw
z 其中n 是可测数据的可变长度,()n Φ更新抽头输入的自相关矩阵,()n z 是抽头
输入与期望响应之间的互相关向量,()ˆn w 是抽头的权值向量。
它们对应的递归更新公式为
()()()()1H n n n n λ=--ΦΦu u (2.1)
()()()()*1n n n n λ=--z z u d (2.2) ()()()()*ˆˆ1n n n n =-+w
w k ξ (2.3) 其中λ是遗忘因子,是一个接近1有小于1的正常数,()n d 是期望输出,()n k 和()n ξ定义如式2.4和式2.5
()()()1=n n n -k Φu (2.4)
()()()()ˆ1H
n n n n =--ξd w u (2.5)
整个RLS 算法的过程可以总结为: a . 算法初始化
1
ˆ(0)(0)δ-==w 0P I
式中的δ是正则化参数,在高信噪比时取小的正常数,低信噪比时取大的正常数。
b . 递推过程,对应n=1,2,…
*11()(1)();()
();
()()
ˆ()()(1)();ˆˆ()(1)()();()(1)()()(1)
H H H n n n n n n n n n n n n n n n n n n n n λλλ--=-=
+=--=-+=---πP u πk u πξd w
u w
w k ξP P k u P
3、实验参数设置
1)对RLS 算法仿真
仿真的是一个ARMA 模型,模型参数如下:
()()()()()()10.35210.52u n u n u n v n v n N n =---+-+-+
其中N 为白噪声,服从均值为0,方差为0.01的正态分布,输入信号v 时伪随机序列,通过原始序列v0=[1 0 1 1 0 1 0 0 1]经过9级移位寄存器产生,输出u 的两个初始值设为1、1.5。
递推次数为200次,采用RLS 算法对模型参数进行估计,将估计
得到的参数与上面的模型参数比较。
RLS 算法中遗忘因子λ取1,正则化参数δ取0.01。
2)基于RLS 算法的均衡
均衡器的抽头数为M=11,递推次数为200,数据源产生有零平均和单位方差的由符号+1和-1组成的Bernoulli 的序列{x (n )}。
数据源之后的信道可以用升余弦脉冲响应来模拟:
20.5{1cos[(2)]}1,2,3()0
n n h n W
π⎧
+-=⎪
=⎨⎪⎩其它
均衡器的输入信号为:
3
1()()()()k u n h k x n k v n ==-+∑
信道延时
(1)
2=72
M -∆=
+ 信噪比为30dB ,遗忘因子λ取1,正则化参数δ取0.004。
分别取W=2.9、W=3.1、W=3.3和W=3.5,用RLS 算法做均衡,画出其学习曲线。
3)RLS 均衡和LMS 均衡比较
信道参数、均衡器长度、递推次数、正则化参数、遗忘因子、数据源等都不变,W=3.1,分别在信噪比为10dB 和信噪比为30dB 的情况下,针对LMS 算法步长参数μ=0.075,用RLS 算法和LMS 算法做均衡,比较其学习曲线。
4、实验过程及结果分析
1)RLS 算法仿真(运行my_rls ):
5101520253035404550
-1-0.5
0.5
1
1.5
待估参数迭代过程
5
10
15
20
25
30
35
40
45
500102030405060708090100估计方差迭代过
程
上面两个图中画出了迭代的前50次的结果,可以看到基本上迭代到20次的时候,模型参数的递推就已经收敛了,而且得到的模型参数值与真实值相差无几,下面给出了迭代200次后的模型参数值:
1.0283 -0.3643 0.9740 0.4745
比较原ARMA 模型()()()()()()10.35210.52u n u n u n v n v n N n =---+-+-+,可以看到用RLS 算法对ARMA 模型提取参数是非常有效的。
2)基于RLS 算法的均衡(运行main ) 画出其学习曲线如图所示:
10
10
10
10
10
1
迭代次数n
集平均平方误差
四种不同特征值扩散度下的RLS 算法学习曲线
从上图中可以看到,虽然W 不同,但4条曲线的收敛速度基本上是一致的,在迭代到40次的时候就收敛了,W 是控制信道失真的程度的,也就是说信道失真的不同并不影响均衡器的收敛速度。
但是随着W 的增大,收敛后的集平均平方误差是在不断增大的,从均衡器输入信号的形式中3
1()()()()
k u n h k x n k v n ==-+∑可以看到u (n )非零的最大相关长度是2。
其自相关矩阵的特征值与W 是密切相关的,W 控制了它的特征值扩散度,W 对特征值扩散度()R χ的影响如下表:
可以看到随着W 的增大,特征值扩散度也是增大的,从而使得RLS 算法的性能下降。
3)RLS 均衡和LMS 均衡比较
分别画出RLS 和LMS 均衡的学习曲线如下图:
050100150
200250300350400450500
10
-3
10
-2
10
-1
10
10
1
迭代次数n
集平均平方误差
当W=3.1和SNR=30dB 时的RLS 算法和LMS 算法的学习曲线
050100150
200250300
350400450500
10
-1
10
10
1
迭代次数n
集平均平方误差
当W=3.1和SNR=10dB 时的RLS 算法和LMS 算法的学习曲线
从上图中可以看到,在大信噪比的时候RLS 算法做均衡的收敛速度要比LMS 算法的收敛速度快得多,而且收敛后的集平均平方误差也比LMS 算法小得多,且收敛后RLS 递推也比较平稳不会再出现大的波动,而LMS 算法收敛后任然有一些小尖峰出现,其稳定性要比RLS 算法差一些。
在小信噪比的情况下,RLS 算法收敛速度的优势变得不明显,但收敛后的集平均平方误差任然比LMS 算法小得多,性能也比较稳定,总体而言RLS 算法复杂度比LMS 算法高,相应的其各方面的性能也比较好。
5、总结和体会
本实验中首先用RLS 算法对ARMA 模型进行了参数的提取,验证了提取方法的有效性,得到了较好的提取结果。
之后针对不同的特征值扩散度(信道参数W )进行RLS 算法均衡的仿真,得出了随特征值扩散度的增大均衡性能不断变坏的结论,最后分别对大信噪比和小信噪比条件下的RLS 均衡和LMS 均衡做了比较,得到了RLS 算法在收敛速度和平方误差等方面优于LMS 算法的结论。
通过这一次的实验,对RLS 算法和LMS 算法有了更加深刻的理解,并初步掌握了其实际应用,也获得了一些新的Matlab 编程的经验。