用恒模算法进行盲自适应均衡的MATLAB 仿真
一:仿真内容:
1:了解盲均衡算法和CMA 算法的原理;
2:用CMA 算法来仿真4QAM 信号;
二:算法原理:
1:盲均衡算法:
普通的均衡器需要训练和跟踪两个阶段,在训练阶段,需要已知信号的一些特性参数来训练均衡滤波器,或者直接周期地发送训练序列。
由于训练序列并不含用户的数据,而占用了信道资源,自然会降低信道的利用率。
另外,在跟踪阶段,不发送训练序列,如果信道特性是快速变化的,均衡器的性能将迅速恶化。
盲均衡能够不借助训练序列(即我们通常所说的“盲”,而仅仅利用所接收到的信号序列即可对信道进行均衡。
换言之,其本身完全不用训练序列,就可以自启动收敛并防止死锁情况,且能使滤波器的输出与要恢复的输入信号相等。
盲均衡从根本上避免了训练序列的使用,收敛范围大,应用范围广,克服了传统自适应均衡的缺点,从而降低了对信道和信号的要求。
盲均衡的原理框图如下:
在上图中,x(n)为系统的发送序列,h(n)为离散时间传输信道的冲激响应,其依据所用调制方式的不同,可以是实值,也可以是复值;n(n)为信道中叠加的高斯噪声;y(n)为经过信道传输后的接收序列,同时也是均衡器的输入序列;w(n)为盲均衡器的冲激响应,盲均衡器一般采用有限长横向滤波器,其长度为L; )
(~n x 为盲均衡器的输出信号,也即经过均衡后的恢复序列。
且有下式成立:
y(n)=h(n)*x(n)+n(n);
)(~n x =w(n)*y(n)=w(n)*h(n)*x(n); 2:Bussgang 算法
Bussgang类盲均衡算法作为盲均衡算法的一个分支,是在原来需要训练序列的传统自适应均衡算法基础上发展起来的。
早期的盲均衡器以横向滤波器为基本结构,利用信号的物理特征选择合适的代价函数和误差控制函数来调节均衡器的权系数。
这类算法是以一种迭代方式进行盲均衡,并在均衡器的输出端对数据进行非线性变换,当算法以平均值达到收敛时,被均衡的序列表现为Bussgang 统计量。
因此,此类算法称为Bussgang类盲均衡算法。
Bussgang类盲均衡算法的显著特点是算法思路保持了传统自适应均衡的简单性,物理概念清楚,没有增加计算复杂度,运算量较小,便于实时实现。
缺点是算法的收敛时间较长,收敛后剩余误差较大,没有解决均衡过程中局部收敛问题,对非线性信道或存在零点的信道均衡效果不佳。
Bussgang类算法的原理框图如下:
Godard是其中性能最好的算法:a.代价函数的推导只与接收信号的幅值有关,与相位无关,因此对载波相位偏移不敏感;b.在稳态条件下,此算法能获得比其它算法小的均方误差;c.它能均衡一色散信道,即使起始眼图是关闭的。
Godard最早提出了恒模盲均衡算法。
恒模盲均衡算法适用于所有具有恒定包络(简称恒模)的发射信号的均衡,它是Bussgang算法的一个特例。
3:CMA(恒模算法)
现代通信系统中常用的QAM调制方式具有频带利用率高的显著优势,随着电平级数的增加,传输数码率越高,但电平间的间隔减小,码间干扰增加,抗噪性能变差。
近年来,研究最多的盲均衡算法是恒模算法(CMA)。
CMA算法被广泛用于恒包络信号的均衡,因其计算量小及良好的收敛性能也应用于非恒包络信号的盲均衡,如QAM信号。
然而,其初始化之后的收敛效果却不令人满意,存
在较大的剩余误差,对于非恒模信号来说,误符号的方差更加严重。
同时,CMA 及其改进算法对于高阶的QAM 信号都存在较大的失调。
这就需要我们对CMA 算法进行适当改进,以达到更好的收敛效果。
CMA 算法的诸多优点使之被广泛应用于恒包络信号的均衡、非恒包络信号(如QAM 信号)及自适应阵列处理等领域中。
恒模算法(Const Modulus Algorithm ,CMA)就是当参数p=2时的Godard 算法,是由Godard 最早提出的。
它是Bussgang 类盲均衡算法中最常用的一种,具有计算复杂度低、易于实时实现、收敛性能好等优点,己成为通信系统中广泛采用的盲均衡技术。
恒模算法的代价函数为:
J(w(n))=E{(|x ~
(n)|-R 2)2} 根据传输理论和盲均衡的框图可以得到:
y(n)=h(n)*x(n)+n(n);
均衡器的输出为:
)(~n x =w(n)*y(n)=w(n )*h(n)*x(n)=w T (n)*y(n)
由上得到权系数的更新公式为:
)(])(~)[(~)()1(*22n y n x R n x n W n W -+=+μ
式中μ是自适应步长,通常取足够小的正常数。
下表给出CMA 算法的流程:
三:仿真内容:
利用CMA 算法来仿真QAM 信号:首先举4QAM 调制的例子。
用复信号表示4QAM 调制相当于只传输4种取值的信号,即x=a+bj ,a=2/2±,b=2/2±,因此发送信号的星座是四个点,假设4QAM 的基带信号通过一个信道,信道用一个FIR 滤波器来表示,滤波器的传输函数为:
3211.05.02.0)(----++=z z z z H 信号经FIR 滤波器输出后加入了高斯白噪声,
信噪比为30db ,接收到的4QAM 信号经过一个均衡器,均衡器是由长度为6的FIR 滤波器构成,应用CMA 算法进行盲均衡,步长取0.02(0.001效果很差,所以将步长稍改大)。
(仿真程序见附件cma.m )
四:结果分析:
下图是仿真图形:
第一个图为经过4QAM 调制后产生的传输序列sn 所构成的星座图:可以明显的看到4QAM 基带信号的星座图。
-0.8-0.6-0.4-0.200.20.40.60.8
-0.8-0.6
-0.4
-0.2
0.2
0.4
0.6
0.8
传输序列的4QAM 星座图
第二个图为经过信道之后的输出信号,由于码间干扰, 4QAM 信号已经有点混乱。
-1.5-1-0.500.51 1.5
-1.5-1
-0.5
0.5
1
1.5
经过FIR 滤波器之后的输出4QAM 信号
第三个图为加上一个30dB 的高斯白噪声之后的星座图,可以看到由于噪声干扰,接收到的信号已经非常混乱。
-1.5-1-0.500.51 1.5
-1.5-1
-0.5
0.5
1
1.5
加过噪声之后的4QAM 信号
第四个图是收敛后的均衡器输出的分布图,由图可以看到盲均衡器将输出聚
集在4个星座的附近。
由于前面一部分的序列会被当作训练序列,所以实际的发送序列是从中间序列开始的。
-1-0.8-0.6-0.4-0.200.20.40.60.81
-1-0.8
-0.6
-0.4
-0.2
0.2
0.4
0.6
0.8
1
盲均衡器输出的4QAM 信号分布图
下图为CMA 算法的收敛图,由图可以看出,作为盲均衡器的CMA 算法的收敛速度明显比LMS 算法的慢,大约要到接近1000次迭代以后才能达到收敛,而LMS 算法一般只需几十至几百次迭代,这就是缺乏期望响应的代价。
由于步长和初值的不同,使得收敛的值有所不同。
0100020003000400050006000
70008000900010000-180-160
-140
-120
-100
-80
-60
-40
-20
CMA 算法的收敛图
点数/n e n .2/d B
五:结论
本报告首先介绍了盲均衡算法的数学模型,接着分析了Bussgang类盲均衡算法,重点介绍了其中的最为常用的且是本实验用到的CMA算法并对其进行了MATLAB仿真,分析了仿真结果。
但是CMA算法采用固定步长,这就使得步长对于CMA算法的收敛性能起着决定性的作用。
固定步长CMA算法在收敛速度和收敛精度方面对调整步长的要求是相矛盾的,在实际应用中,要根据不同的需求决定步长值的大小。
因此本实验中我采用0.02的步长才能得到此效果,如果采用0.001的步长,收敛效果和星座图的效果很差,需要提出一种更有利的算法,使得算法的收敛性有更大提高。
总之,通过查阅资料完成此次仿真,让我了解了盲自适应均衡的模型和恒模算法的原理,也让我看到在恒模算法中存在的需要改进的地方。
但由于知识有限,仅做到此,希望老师能多多指教。