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