turbo的仿真 下载本文

内容发布更新时间 : 2024/9/30 15:21:40星期一 下面是文章的全部内容请认真阅读。

Turbo码仿真报告

系(部)名 称 通信工程学院 姓 名 XXXX 学 号 XXXX

课 程 名 称 通信系统的计算机模拟

Turbo码

1: turbo码的编码介绍 1.1:框图

一个常见的Turbo码编码器如图所示。两个分量编码器之间通过交织器相连,分量编码器对相同的输入信息进行编码,交织器保证两个分量编码器输出信息尽量不相关。通常输出的信息比特序列只需要从任何一个分量编码器中选取即可,但考虑到实现问题,选取不经过交织的那一路比特序列要方便得多。另外,为了能够提高编码速率,两个分量编码器输出的校验比特序列经删余和复用后输出,信息比特序列一般不进行删余处理。

1.2:分量编码器介绍

上图给出编码约束度K=3,生成多项式(g1,g2)?(7,5)的RSC编码框图。若k时刻的输

入比特位uk,则输出的字码xk是一个二进制比特对(xk,xk),其中,xk?uk称为信息比特,

spsxkp称为校验比特。记位移寄存器的输入ak,则:

ak?uk??guak?1 x??g2iak?1

pki?1i?0k?1k?1对K=3的RSC码,他的状态转移和时间的关系可以形象用网格图表示,对于K=3的情况一共有4个状态,而且没一个状态有两个转移状态,分别对应+1或-1的情况,分支上的数据分别表示K时刻RSC编码器的输入和输出,若k-1时刻RSC编码器处于0状态,并输入0时,则k时刻编码器仍处于0状态,并输出00,当输入1时,则k时刻编码器转到2状态,并输出11.

1.3:交织器介绍

交织器是Turbo码编码器主要的组成部分,也是Turbo码的重要特征之一。线性码的纠错译码性能实质上是由码字的重量分布决定的,Turbo码也是线性码,所以其性能也是由码字重量分布决定。在传统的信道编码中,所使用的交织器一直是分组交织器或卷积交织器,其目的主要是抗信道突发错误,即将信道或级联码内码译码器产生的突发错误随机化,把由于受到噪声干扰而导致具有相关性的数据恢复成相互独立的

交织器是一个映射函数

优点:1:作用:将输入信息序列中的比特位置进行重置,以减小分量码输出校验序列的相关性和提高码重。2:从相关性层面上看,交织器最大可能地置乱输入信息序列的顺序,降低了输入/输出数据的相关性,使得邻近码元同时被噪声淹没的可能性都大大减小,从而增强了抗突发噪声的能力3: 从码重层面上看,交织器增大了校验码重,尤其是改善了低码重输入信息序列的输出校验码重,从而增大了码的最小自由距离,提高了纠错能力。

缺点:带来了一定的编、译码延时,交织深度越大,延时也越大,但同时性能也越好 设计性能较好的交织器的特点和基本原则:(1)通过增加交织器的长度,可以使译码性能得到提高;(2)交织器应该使输入序列尽可能地随机化,从而避免编码生成低重码字的信息序列在交织后编码仍生成低重码字,导致turbo码的自由距离减小

1.4:删余模块

一切差错控制编码都是有冗余的,传输时扣除部分比特并不妨碍信息的还原,只是有可能损失一些编码增益。实际系统中通常需要结合编码增益、速率匹配等因素对编码器的输出进行删余处理。当编码器有多路并行输出时(比如卷积码、Turbo码),为了同后接的系统(通常是串行通信)匹配,还需要以时分复用的方式合成一路比特流。Turbo码编码结构中的删余器一般以开关单元代替,其作用是调整总编码速率,即通过对两次编码的校验序列进行删除和复合,调整实际的校验位数。如当用两个R=1/2的RSC作为成员码时,交替的选取两个校验序列使各有一半发送出去就可得到总速率为1/2的

Turbo码,而当校验序列全部发送出去的时候则得到1/3速率的Turbo码。一般情况下,删余之后的Turbo码的码率为1/2或1/3。相对应的删余矩阵为P=【1 0,O 1】或P=[1,1】。 Turbo码中,删余器通常比较简单,因为在一般的应用中,码率都是在1/2或者1/3,

因此即使有删余器,它一般也只是周期性的从两个分量编码器中选择校验比特输出即可,不过对于码率大于1/2的情况,假设Turbo码由编码速率相等的两个分量编码器和一个交织器构成,而速率为k/n的分量编码器,可以通过每传送k个信息比特,就传送n—k个校验比特的方法来获得,同时,由于k个信息比特经过交织器编码后,同样还要产生n一k个校验比特,因此,此时的Turbo码的速率可以达到k/(2n-k),用这种方法调整H和k的值就可以得到不同速率的编码输出。

2:turbo码的译码介绍 2.1:译码结构图

一般,Turbo码的编码部分由两个子编码器组成 ,在其译码部分也就相应有两个子译码器。一般情况下 ,两个子译码器可采用多级级联结构。由于Turbo码第二个子编码器的信息位没有输出 ,第二个子译码器只能利用第一个子译码器译出的信息序列进行译码。软判决译码比硬判决译码性能提高2~3dB,因此每一个子译码器都用软输入软输出译码器。译码器工作原理如下:由于接收序列为串行数据 ,首先要进行数据的串/并转换 ,同时将删除的比特位填上“虚拟比特”(不影响译码判决的值如0)。将经过串/并转换后的xk,y1k送入子译码器1译码 ,并产生关于dk改进的外信息Λ1e(dk)。由于译码器1没有用到可能提高后验概率的校验序列y2k,所以译码器1的输出仅在交织后作为译码器2的先验信息输入,而不能作为对信息序列的判决。将xk和Λ1e(dk)交织后作为子译码器 2的软输入 ,子译码器 2根据译码算法对xk, Λ1e(dk)和y2k用与子译码器1同样的方法再次产生信息比特改进的外信息Λ2e(dj),经去交织后得到

~?2e(dk)作为下一次迭代中子译码器1的先验信息。这样在多次迭代后,

?ddk对子译码器2产生的输出Λ2(dj)去交织后进行硬判决,得到每个信息比特的估值k

2.2:译码算法

MAP算法一如各信息位uk的对数似然比作为软判决:

??L?uk??Pr(uk?1/R1N) ??logNPr(uk?0/R1)?Pr(uk?i/R1N)是信息位uk的最大后验概率APP(i=0或1),uk为软输出,其符号是uk的

硬判决:

????L?uk???????L?uk?????0,uk?1????0,uk?1???其中L?uk???代表判决的可靠程度,幅值越小,其判决的可靠性越小。?进一步可得:L???',联合概率p(s,s,y)指信息位uk为1或0时所uk??logukn?1???p(s',s,y)??s,s?'?p(s,s,y)'n?s,s?'uk?0有存在状态s至s的路径。当信道为无记忆时联合概率p(s,s,y)可写为三个独立的概率之

'积。p(s,s,y)=p(s,s,y)?ps,yj?k.p(s,yk/s).p(yj?k/s)

'''''??yj?k表示从开始至k-1时刻所接受的y序列,yj?k对应从k+1时刻至最终所接受的系列

ak?1?s'??p?s',yj?k??p[s',(y0,...,yk?1)]设:?k(s)?p(yj?k/s)?p[(yk?1,...,yN?1)/s]

'?k(s',s)?p(s/s').p(yk/s',s)前向迭代:ak?s????s,k(s',s)ak?1?s'?

后向迭代:?k?1(s)?'??s'(s,s)?k(s) k???u?1进过整理简化可以得到:L?u?=Lcyk,i?L(uk)?logk

k????k(s',s)ak?1s'?k(s)?s,s?'??k(s',s)ak?1?s'??k(s)?s,s?'??uk?0