Turbo纠错码的原理

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Turbo纠错码的原理、性能和应用——第二讲Turbo码编解码原理

门爱东

本讲座撰写人门爱东先生,北京邮电大学副教授。

一 Turbo码概述

第一讲介绍了纠错编码的基本概念,典型的Turbo码信道编码器框图如图1a 所示。Turbo码采取巧妙、独特的措施,将普通的ECC组成元素重新排列,达到了非凡性能。

Turbo编码器包括两个或多个独立的并行“支路编码器”,一般采用循环系统卷积码(RSC)处理相同的输入数据,但送给第二个编码器的输入数据要经过交织器扰序。两个编码器输出的校验序列经过一个复接器后成为一个输出码流。

图中的编码器是一个两级编码/校验的简单配置,纠错性能大为提高。如果是多级配置,纠错性能还将进一步提高。Turbo码的独创性在图中不易体现,它依赖于合适地选择支路编码器、交织器和解码器。

从图1b可以看出,接收端的Turbo解码器比发端的Turbo编码器复杂得多。编码器并行处理原始数据码流,而解码器在两个阶段中是串行处理数据的。第一个解码器得到此阶段原始数据的最大似然估计,收端交织器按发端交织器的扰序方式对第一个解码器的估计进行扰序,扰序后的估计和附加的冗余信息(发端第二个编码器产生的校验比特)一起送给第二个解码器。如果第一个解码器纠错成功的话,送给第二个解码器的码流中所包含的误码数将少于送给第一个解码器的。

第二个解码器处理送来的数据,产生对原始数据进一步精细的估计,使结果应该包含更少的误码比特。接收端使用反交织器对数据去扰序,使之恢复原来的排列顺序。如果没有更进一步的精确要求,则去交织器把最后的输出数据传给硬判决器,产生最终的解码输出。

如果需要进一步减少误码数量,则接收机把反交织器的输出反馈回第一个解码器,并且重复上述过程,根据需要,可以进行多次迭代。当然,每次迭代都增加相当大的延时和计算复杂度,但是它也有效地减少了误码数量,特别是在前几次迭代中。

为了充分利用反馈和迭代特性,系统需要前面介绍的“软输入/软输出”支路解码器,体现Turbo码的特色。事实上,迭代解码的反馈机制非常有效,由此获得了Turbo这个命名——它类似于汽车的涡轮增压发动机原理。

二 软判决

对数似然比(LLR)是迭代解码的关键。为了更好地理解Turbo 解码的原理,让我们看看什么是LLR 。任何解码过程的最后一步都是硬判决,输出0和1码流。软判决解码器包含一个对硬判决判决质量的测量环节。Turbo 码以独特的方式采用了软判决,允许把质量信息从一个解码器馈送给下一个解码器,也可把最后一个解码器的输出反馈给第一个解码器。在这种方式中,每一阶段都可利用前一阶段收集的质量信息,而且,解码过程可以迭代任意多次。

为什么说LLR 是软判决过程的关键呢?假定信息比i ∈{0,1}通过一个噪声信道传输,发射机把逻辑值{0,1}分别映射为电压{-1, 1},然后送给接收机。接收机测量一个有噪声的接收电压r 。对于硬判决,接收机把接收到的信号r 和0电平门限比较,并依照r 的符号判决i=0或i=1。

很明显,上述判决的质量依赖r 偏离0电平的范围:越靠近0的值,越缺乏正确判决的可信度。如果接收电压为0.1V 时,接收机判决i=1,但其可信度较低,那么就产生了一个问题:电压0.2V 是否就能提供双倍的可信度,而0.4V 是否就意味着更高的可信度?当然,答案依赖于信道引入的失真类型。大多数情况下,经过交织等处理以后,可视为高斯信道,且可信度遵循高斯分布,其概率密度函数(PDF)为: p(r|i=1)=()()[]22/121

σπσ

−−r e p(r|i=1)=()()[]22/121

σπσ+−r e

因为没有发射机是发送0还是1的先验概率,接收机必须判断后验概率P(i=1|r)和P(i=0|r)哪一个更大,检查它们的比值。当比值大于1时,则判决i=1,否则i=0。由于涉及比值和指数运算,因此,采用此比值的对数形式,即LLR :

Λ(i|r) =log

==i)|0p(i i)|1p(i =log

====0)i |0)(p(r p(i 1))i |1)(p(r p(i

=log

==+ ==0)i |p(r 1)i |p(r log 0)p(i 1)p(i 对于硬判决,只要LLR>0,接收机就判决i=1,而当LLR<0时,i=0。对于软判决,LLR 的大小是质量测量。

根据上述公式,LLR 由两个分量构成:

Λ(r|i)=Λ(i)+Λ(r|i)

第一项Λ(i)是对发送0和1比特的先验概率的估算,通常情况下概率相等,Λ(i)=0。第二项Λ(r|i)是对信道传输失真的估计,因为它包括上述描述的信道噪声(PDF)的影响,此项是那些采用LLR 的解码器最感兴趣的。

另外,Turbo 码的支路编码器一般使用循环系统码卷积码,信道LLR 自身由两部分组成:

Λ(r|i)=Λi+Λe

这里,Λi 是基于接收到的数据(信息比特i ,即系统部分)的LLR ,而Λe 是接收到的校验比特的LLR 。Λe 也称为外信息,它在Turbo 码解码器之间共享。这些来自软判决测量的LLR 用于最大后验概率(MAP)和最大似然(MLSE)解码算法,Turbo 解码可以采用MAP 或者MLSE 算法。

综上所述,Turbo 码的计算复杂度非常高。Turbo 码包含两个支路解码器,若只进行一次迭代,其复杂度大约是同等传统解码器的两倍;如果进行二次迭代,则复杂度是传统解码器的四倍。进一步,如果Turbo 解码器使用了MAP 算法,其复杂度将是传统解码器的八倍多。

三 数据交织

Turbo 码的另一特性是采用了随机扰序的交织器,代替前面提到的乘积码中采用的矩阵交织。

如图2所示Turbo 码编码器的结构,包含两个相同RSC 支路编码和一个交织器,码率为1/3,其实现如同长度为N 的线性分组码。

首先把输入码流d k 划分为长度为N 的数据块,送给每个编码器。第一个编码器产生N 比特的校验码流y 1k ;第二个编码器也处理同样的数据,但要经过一个具有固定交织方式的交织器p 的扰序,也生成N 比特的校验码流y 2k 。Turbo 编码器把原始数据码流d k 和校验码流y 1k 、y 2k 一起传送,形成一个3N 比特的块,码率为1/3。

相关文档
最新文档