You are on page 1of 6

用恒模算法进行盲自适应均衡的 MATLAB 仿真

用恒模算法进行盲自适应均衡的 MATLAB 仿真
一:仿真内容:
1:了解盲均衡算法和 CMA 算法的原理;
2:用 CMA 算法来仿真 4QAM 信号;
二:算法原理:
1:盲均衡算法:
普通的均衡器需要训练和跟踪两个阶段,在训练阶段,需要已知信号的一些
特性参数来训练均衡滤波器,或者直接周期地发送训练序列。由于训练序列并不
含用户的数据,而占用了信道资源,自然会降低信道的利用率。另外,在跟踪阶
段,不发送训练序列,如果信道特性是快速变化的,均衡器的性能将迅速恶化。
盲均衡能够不借助训练序列(即我们通常所说的“盲”,而仅仅利用所接收
到的信号序列即可对信道进行均衡。换言之,其本身完全不用训练序列,就可以
自启动收敛并防止死锁情况,且能使滤波器的输出与要恢复的输入信号相等。盲
均衡从根本上避免了训练序列的使用,收敛范围大,应用范围广,克服了传统
自适应均衡的缺点,从而降低了对信道和信号的要求。
盲均衡的原理框图如下:

在上图中,x(n)为系统的发送序列,h(n)为离散时间传输信道的冲激响应,
其依据所用调制方式的不同,可以是实值,也可以是复值;n(n)为信道中叠加的
高斯噪声;y(n)为经过信道传输后的接收序列,同时也是均衡器的输入序列 ;w(n)
为盲均衡器的冲激响应,盲均衡器一般采用有限长横向滤波器,其长度为 L;
为盲均衡器的输出信号,也即经过均衡后的恢复序列。
且有下式成立:
y(n)=h(n)*x(n)+n(n);
=w(n)*y(n)=w(n)*h(n)*x(n);
2:Bussgang 算法
Bussgang 类盲均衡算法作为盲均衡算法的一个分支,是在原来需要训练序
列的传统自适应均衡算法基础上发展起来的。早期的盲均衡器以横向滤波器为基
本结构,利用信号的物理特征选择合适的代价函数和误差控制函数来调节均衡
器的权系数。这类算法是以一种迭代方式进行盲均衡,并在均衡器的输出端对数
据进行非线性变换,当算法以平均值达到收敛时,被均衡的序列表现为
Bussgang 统计量。因此,此类算法称为 Bussgang 类盲均衡算法。
Bussgang 类盲均衡算法的显著特点是算法思路保持了传统自适应均衡的简
单性,物理概念清楚,没有增加计算复杂度,运算量较小,便于实时实现。缺点
是算法的收敛时间较长,收敛后剩余误差较大,没有解决均衡过程中局部收敛
问题,对非线性信道或存在零点的信道均衡效果不佳。
Bussgang 类算法的原理框图如下:

1
用恒模算法进行盲自适应均衡的 MATLAB 仿真

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{(| (n)|-R ) }

根据传输理论和盲均衡的框图可以得到:
y(n)=h(n)*x(n)+n(n);
均衡器的输出为:
~
x (n) =w(n)*y(n)=w(n)*h(n)*x(n)=w (n)*y(n)

由上得到权系数的更新公式为:
W (n  1)  W (n)  ~
x (n)[ R  ~
2
2x ( n) ] y * ( n)

式中  是自适应步长,通常取足够小的正常数。

2
用恒模算法进行盲自适应均衡的 MATLAB 仿真

下表给出 CMA 算法的流程:

三:仿真内容:
利用 CMA 算法来仿真 QAM 信号:首先举 4QAM 调制的例子。用复信号表示
4QAM 调制相当于只传输 4 种取值的信号,即 x=a+bj,a=  2 / 2 ,b=  2 / 2

,因此发送信号的星座是四个点,假设 4QAM 的基带信号通过一个信道,信道


用一个 FIR 滤波器来表示,滤波器的传输函数为:
H ( z )  0.2  0.5 z 1  z 2  0.1z 3 信号经 FIR 滤波器输出后加入了高斯白噪声,

信噪比为 30db,接收到的 4QAM 信号经过一个均衡器,均衡器是由长度为 6 的


FIR 滤波器构成,应用 CMA 算法进行盲均衡,步长取 0.02(0.001 效果很差,
所以将步长稍改大)。
(仿真程序见附件 cma.m)
四:结果分析:
下图是仿真图形:
第一个图为经过 4QAM 调制后产生的传输序列 sn 所构成的星座图:可以明
显的看到 4QAM 基带信号的星座图。

3
用恒模算法进行盲自适应均衡的 MATLAB 仿真

传 输 序 列 的 4QAM星 座 图
0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8
-0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8

第二个图为经过信道之后的输出信号,由于码间干扰, 4QAM 信号已经有


点混乱。
经 过 FIR滤 波 器 之 后 的 输 出 4QAM信 号
1.5

0.5

-0.5

-1

-1.5
-1.5 -1 -0.5 0 0.5 1 1.5

4
用恒模算法进行盲自适应均衡的 MATLAB 仿真

第三个图为加上一个 30dB 的高斯白噪声之后的星座图,可以看到由于噪声


干扰,接收到的信号已经非常混乱。
加 过 噪 声 之 后 的 4QAM信 号
1.5

0.5

-0.5

-1

-1.5
-1.5 -1 -0.5 0 0.5 1 1.5

第四个图是收敛后的均衡器输出的分布图,由图可以看到盲均衡器将输出
聚集在 4 个星座的附近。由于前面一部分的序列会被当作训练序列,所以实际的
发送序列是从中间序列开始的。
盲 均 衡 器 输 出 的 4QAM信 号 分 布 图
1

0.8

0.6

0.4

0.2

-0.2

-0.4

-0.6

-0.8

-1
-1 -0.8 -0.6 -0.4 -0.2 0 0.2 0.4 0.6 0.8 1

5
用恒模算法进行盲自适应均衡的 MATLAB 仿真

下图为 CMA 算法的收敛图,由图可以看出,作为盲均衡器的 CMA 算法的收


敛速度明显比 LMS 算法的慢,大约要到接近 1000 次迭代以后才能达到收敛,
而 LMS 算法一般只需几十至几百次迭代,这就是缺乏期望响应的代价。由于
步长和初值的不同,使得收敛的值有所不同。
CMA算 法 的 收 敛 图
0

-20

-40

-60

-80
en.2/dB

-100

-120

-140

-160

-180
0 1000 2000 3000 4000 5000 6000 7000 8000 9000 10000
点 数 /n

五:结论
本报告首先介绍了盲均衡算法的数学模型,接着分析了 Bussgang 类盲均衡
算法,重点介绍了其中的最为常用的且是本实验用到的 CMA 算法并对其进行
了 MATLAB 仿真,分析了仿真结果。
但是 CMA 算法采用固定步长,这就使得步长对于 CMA 算法的收敛性能起
着决定性的作用。固定步长 CMA 算法在收敛速度和收敛精度方面对调整步长的
要求是相矛盾的,在实际应用中,要根据不同的需求决定步长值的大小。因此本
实验中我采用 0.02 的步长才能得到此效果,如果采用 0.001 的步长,收敛效果
和星座图的效果很差,需要提出一种更有利的算法,使得算法的收敛性有更大
提高。
总之,通过查阅资料完成此次仿真,让我了解了盲自适应均衡的模型和恒
模算法的原理,也让我看到在恒模算法中存在的需要改进的地方。但由于知识有
限,仅做到此,希望老师能多多指教。

You might also like