PCCC码(Turbo码)的编码和译码算法(2)

2019-08-30 21:26

复接分量编码器1交织器分量编码器2穿刺矩阵(a)外码编码器交织器内码编码器(b)交织器1并行编码器外码编码器交织器2内码编码器(c)外码编码器交织器1内码编码器1交织器2内码编码器2(d)

图1-1 Turbo码的几种编码结构(a)PCCC(b)SCCC(c)HCCC-I(d)HCCC-II

1993 年,C.Berrou 提出的Turbo 码就是PCCC 结构,主要由分量编码器、交织器、穿刺矩阵和复接器组成。分量码一般选择为递归系统卷积(RSC)码,当然也可以选择分组码、非递归卷积(NRC)码以及非系统卷积(NSC)码。通常两个分量码采用相同的生成矩阵(也可不同)。若两个分量码的码率分别为R1和R2,则Turbo码的码率为:

R=

R1R2

R1?R2?R1R2 (1-1)

在AWGN 信道上对PCCC 的性能仿真证明,当BER 随SNR 的增加下降到

一定程度时, 就会出现下降缓慢甚至不再降低的情况,一般称为误码平台(error floor)。为解决这个问题, 1996 年,S.Benedetto 提出了串行级联卷积码(SCCC)的概念,它综合了Forney 串行级联码(RS 码+卷积码)和Turbo 码(PCCC)的特点,在适当的信噪比范围内,通过迭代译码可以达到非常优异的译码性能。Benedetto 的研究表明,为使SCCC 达到比较好的译码性能, 至少其内码要采用递归系统卷积码,外码也应选择具有较好距离特性的卷积码。若外码编码器和内码编码器的编码速率分别为RO和RI,则SCCC 的码率R 为:

R=RO×RI

(1-2)

HCCC是将前两种方案结合起来,从而既能在低SNR下获得较好的译码性能,又能有效地消除PCCC 的误码平台,称为混合级联卷积码。综合串行和并行级联的方案很多,这里只给出两种常见的方案,一是采用卷积码和SCCC 并行级联的编码方案,如图1(c)所示;另一种是以卷积码为外码,以PCCC 为内码的混合级联编码结构,如图1(d)所示。 我们主要讨论PCCC 结构的卷积码。为便于讨论,将PCCC 编码结构重画为图1-2(a)所示。

u=(u0, u1,…, uK-1)v(0)=(v0(0), v1(0),?,vK-1(0))分量编码器1v(1)=(v0(1), v1(1),?,vK-1(1))π分量编码器2v(2)=(v0(2), v1(2),?,vK-1(2))(a)uv(0)+++++v(1)++++πu’+v(2)(b)

图1-2 PCCC 编码器基本结构

系统包括输入信息序列u,两个(2,1,v)系统反馈(递归)卷积编码器,一个交织器(用π表示)。假设信息序列含有K*个信息比特以及v个结尾比特(以便返回到全0态),其中v是第一个编码器的约束长度,因此有K=K*+v,信息序列可表示为:

u=(u0, u1,…, uK-1)

由于编码器是系统的,因此信息序列就等于第一个输出序列,即: u= v(0)=(v0(0), v1(0),?,vK-1(0))

第一个编码器输出的校验序列为: v(1)=(v0(1), v1(1),?,vK-1(1))

交织器对K个比特进行扰序处理,得到u’,第二个编码器输出的校验序列为:

v(2)=(v0(2), v1(2),?,vK-1(2))

从而最终的发送序列(码字)为:

v=(v0(0) v0(1) v0(2), v1(0) v1(1) v1(2),?,vK-1(0) vK-1(1) vK-1(2))

因此,对该编码器来说,码字长度N=3K,Rt=K*/N=(K-v)/3K,当K 比较大时,约为1/3。

在图1-2(b)中,两个分量码都是(2,1,4)系统反馈编码器,具有相同的生成矩阵,为:

G[D]=[1 (1+D4)/(1+D+D2+D3+D4)]

对于Turbo 码来说,需要注意以下几点:

(1) 为了得到靠近Shannon 限的系统性能,信息分组长度(交织器大小)K 一般比较大, 通常至少几千个比特。

(2) 对于分量码来说,一般选择相同结构,且约束长度较短,通常v≤4。 (3) 递归分量码(由系统反馈编码器产生)会比非递归分量码(前馈编码器)有更好的性能;

(4) 高码率可通过穿刺矩阵产生,如图1-2(b)中,可通过交替输出v(1)和v(2)得到1/2 的编码速率。

(5) 通过增加分量码和交织器也可得到较低编码速率的Turbo 码,如图1-3 所示。

u=(u0, u1,…, uK-1)v(0)=(v0(0), v1(0),?,vK-1(0))分量编码器1v(1)=(v0(1), v1(1),?,vK-1(1))π1分量编码器2v(2)=(v0(2), v1(2),?,vK-1(2))π2分量编码器3v(3)=(v0(3), v1(3),?,vK-1(3))

图1-3 速率R=1/4的Turbo码

(6) 最好的交织器能够对比特以伪随机的方式进行排序,传统的块交织器(行

-列)在Turbo 码中性能不好,除非block 长度很短;

(7) 由于交织器只是对比特位置进行重新排序,因此,交织后的序列u’与原始序列u 具有相同的重量;

(8) 对每个分量码来说,用BCJR(或MAP)算法作为SISO 译码器能够获得最好的性能;因为MAP 译码器使用了前向-后向算法,信息是以block 的形式进行的,因此, 对第一个分量译码器来说,附加v 个0 比特能够让它返回到全0 态;但对于第二个译码器来说,由于交织器的作用,将不能返回到全0 态。

图1-2(b)所示的编码器,穿刺后得到1/2 的码率。此时穿刺矩阵可以为

?10?P=?,其输出就为v=(v0(0) v0(1), v1(0) v1(2),?)。当信息序列长度K=65536 比??01?特,SISO MAP 译码器经过18 次迭代后,在0.7dB 可以达到10-5 的误比特率,与Shannon 限只相差0.7dB。

Turbo 码有两个缺点:(1)较大的译码时延,这是由于block 长度较大、译码需要多次迭代造成的。这样对于实时业务或高速数据的传输就非常不利;(2)BER 在10-5后会出现误码平台,这是由于Turbo 码的重量分布造成的。对于某些对BER 要求较高的应用就不适合, 当然通过交织器的设计能够提供码字的最小距离,从而降低误码平台。

例1-1:用于QAM的8状态并行级联卷积码 (PCCC,Parallel Concatenated Convolutional Code)。

根据图1-4,这里的PCCC码将把K2个类型2的比特b2(1), b2 (2),…, b2 (K2)变成K3个类型3的比特b3(1), b3(2),…, b3(K3)。这K2个类型2的比特包含两组尾比特b2 (K2 – 2), b2 (K2 – 1), b2 (K2)和b2’ (K2 –2), b2’(K2 – 1), b2’(K2),目标是要使分量递归系统卷积码RSC(recursive systematic convolutional)编码器的最后状态归零。两个分量编码器的初始状态为零。正如图1-4所示,这一编码过程分4步执行:

a)用一个8状态递归系统卷积码RSC编码器(图1-4中上面的那个RSC编码器)实现1/2的码率的编码;

b) 用一个二次线汇内编码器对输入的K2 – 3个类型2的比特实现交织; c) 用第二个8状态递归系统卷积码RSC编码器对已交织的比特实现等同于a)的1/2的码率的编码,并且只保留校验序列(码);

d) 实现对两个递归系统卷积码RSC编码器输出的校验序列(码)的穿刺,以获得码率为K2/ K3的8状态并行级联卷积码PCCC。

这四步骤的通用描述分别列在[3]的8.2.3.4.1, 8.2.3.4.2, 8.2.3.4.3和8.2.3.4.5。编


PCCC码(Turbo码)的编码和译码算法(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:《教育技术应用》教学大纲

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: