引言未来的无线通信系统必须能为用户提供高速率、高质量、实时的多媒体业务,然而无线信道,特别是移动无线信道是典型的随机时变信道,其在时间域、频率域以及空间角域均存在着随机性的扩散,这些扩散将造成接收信号在相对应的频率域、时间域以及空间域产生严重的衰落现象,衰落将严重地恶化无线通信系统的传输可靠性及频谱效率。
为了实现高效、可靠的无线数据传输,两种手段是必要的:①利用各种分集对抗衰落,②利用信道编码实现差错控制。
频率分集、时间分集、空间分集是主要的分集手段,充分利用这些分集方法将衰落信道尽可能地改造为AWGN信道,然后利用信道编码进行检错和纠错。
一般的信道编译码方案,难以在无线通信中以较低的信噪比达到数据业务的服务质量(QoS)(例如一般要求误比特率 BER≤10-6),即使在以前的无线移动通信系统中通常采用的RS码与卷积码串行级联的信道编码方案,与香农(C.E. Shannon)界有较大的差距,直到1993年出现的Turbo码的性能与香农界的差距仅为0.5dB。
他们发明的Turbo码的创新之处在于:用两个递归系统卷积成员码并行级联编码,这两个系统递归卷积成员码之间用一个伪随机交织器相连接,并且采用软入软出(SISO, Soft-In-Soft-Out)的迭代译码算法。
从此,Turbo 码就成为编码界的一个研究热点。
S. Ten Brink在[2]得到的Turbo码的性能与香农界的差距仅为0.1dB。
一、3G 移动通信系统的特点&Turbo 码的应用1.13G 移动通信系统的特点第三代移动通信系统的数据速率可从几kbps 到2 Mbps ;高速移动时为144 kbps ;慢速移动时为384 kbps ;静止时为2 Mbps 。
多媒体化:提供高质量的多媒体业务,如话音、可变速率数据、活动视频和高清晰图像等多种业务,实现多种信息一体化。
全球性:公用频段, 全球漫游, 大市场。
在设计上具有高度的通用性,该系统中的业务以及它与固定网之间的业务可以兼容,拥有足够的系统容量和强大的多种用户管理能力,能提供全球漫游。
是一个覆盖全球的、具有高度智能和个人服务特色的移动通信系统。
综合化:多环境、灵活性,能把现存的寻呼、无绳、蜂窝(宏蜂窝、微蜂窝、微微蜂窝)、卫星移动等通信系统综合在统一的系统中(具有从小于50m 的微微小区到大于500km 的卫星小区) ,与不同网络互通,提供无缝漫游和业务一致性。
网络终端具有多样性。
平滑过渡和演进:与第二代系统的共存和互通,开放结构,易于引入新技术。
智能化:主要表现在优化网络结构方面(引入智能网概念)和收发信机的软件无线电化。
个人化:用户可用唯一个人电信号码(PTN )在任何终端上获取所需要的电信业务,这就超越了传统的终端移动性,真正实现个人移动性目前,Turbo 码的理论和应用研究仍在进行,这些研究将主要集中在如下几个方面:1)最优分量码与交织器的联合设计。
2)低复杂性译码算法。
3)译码迭代过程的优化,收敛性以及迭代停止准则的设计。
4)联合信道估计/多用户检测/均衡和译码算法。
5)Turbo 码与高阶调制技术的结合。
6)Turbo 编译码器的硬件实现。
7)Turbo 码在无线通信,移动通信以及多媒体通信中的应用, 特别是在移动通信网络,IMT-2000及加密系统中的应用等等。
1.2 Turbo 码在第三代移动通信中的中的应用WCDMA 和cdma2000都同时采用了卷积码和并行级联卷积Turbo 码(PCCC)作为纠错编码。
Turbo 码主要用于对时延要求不高的高速数据业务。
并行级联卷积码Turbo 码的对应的两个相同的递归系统卷积成员码的生成多项式如[34]中所规定的321)(1D D D g ++=, 31)(2D D D g ++=。
在cdma2000-1XHDR 中, 串行级联卷积Turbo 码(SCCC)作为信道编码方案,其内码是递归系统卷积码,生成多项式是21)(1D D D g ++=,21)(2D D g +=,外码是非递归卷积码,生成多项式是21)(1D D D g ++=, 21)(2DD g +=。
由于移动环境的复杂性,为了保证数据业务的QoS, WCDMA 和cdma2000都引入了重传机制,如HSDPA 中的利用基于RCPT(Rate Compatible Punctured Turbo Code)的HARQ 解决方案。
二、 Turbo 码的分类现在广义的Turbo 码是指采用级联或乘积编码方法并利用迭代译码方法的编译码方案。
迭代译码的基本思想是将一个的复杂的长的译码步骤分解为多个相对简单的迭代译码步骤而且在迭代译码步骤之间信息概率的转移或者是软信息的传递确保几乎没有信息损失。
根据其成员码和级联的方法的不同,Turbo 码的分类♦ P_SCR 并行级联卷积Turbo 码(Parallel Serial Concatenated Convolutional code)♦ SCC 串行级联卷积Turbo 码(Serial Concatenated Convolutional code)♦ HCC 混合级联卷积Turbo 码(Hybrid Concatenated Convolutional code)♦ SCC 分组码卷积码串行级联编码 (Serial Concatenated Convolutional and Block code) ♦ 分组码Turbo 码通用的实现迭代译码 的“SISO”译码模块的输入包括信道的软信息和先验信息,这种“SISO”译码模块的输出信息可以分解为三部分: 信道的软信息、先验信息和外部信息(又称边信息),而外部信息可以作为下一次迭代译码的先验信息。
各种迭代译码算法的主要差别就在于输出软信息的计算,实际上也就是外部信息的度量。
并行级联卷积码的软入软出(SISO )迭代译码算法有:♦ MAP (Maximum A Posteriori 最大后验概率, 基于网格图) ♦ LOG-MAP♦ MAX-LOG-MAP♦ SOVA (Soft-Output-Viterbi-Algorithm)其中对于卷积级联Turbo 码中研究的最多的是并行级联卷积Turbo 码,其次是串行级联卷积Turbo 码;在分组码Turbo 码中,Turbo 乘积码(Turbo Product Code)和LDPC 码(Low-Density Parity-Check codes)是研究较多的两种。
三、 Turbo 码编译码原理Turbo 码编码器是由两个或两个以上的子编码器(又称组成编码器)并行连接形成的,其中的子编码器最开始是一种递归系统卷积码(RSC)。
两个码率均为R=1/2的RSC 编码器通过交织器(Interleaver)分隔开,分别对输入的数据并行处理,如图3(a)所示。
这种编码器属于系统编码器,因为编码器1#的上面一部分输出就是输入的数据(与之对应的编码器2#的输出被取消)。
图中,若Turbo 码未进行收缩(Puncturing, 即通过MUX 多路选择器有选择地删除校验输出位),则总的码率为r=1/3。
由于有交织器,进入下面那个编码器的数据与输入数据的顺序不同,因此,Turbo 码的最优(最大似然)译码相当复杂,是不实用的。
然而,文[3]中提出的次最优(Suboptimal)迭代译码算法大大降低了译码的复杂性,而且取得了好的性能。
其译码的思想是:将整个译码问题分成更小的问题——对其中的每个码进行译码,获得局部最优解,并以迭代(Iterative)的方式共享信息。
译码器以后验比特概率(APP, A posteriori bit probabilities)的形式产生软输出信息。
Turbo 码译码器的结构如图1(b)所示。
图中,译码器1接收数据信息,译码输出软判决信息,经交织后,将此信息送至译码器2。
译码器2则将输出的软判决信息反馈给译码器1,作为下一次迭代的先验信息,同时,译码器2输出硬比特判决结果。
就这样,迭代译码继续进行下去,直到获得所需要的性能为止。
一般,迭代5-10次即可得到很好的结果。
然而,随着迭代的进行,后一次迭代产生的附加编码增益比前一次要小,以至达到一个极限,因此,并不是迭代次数越多性能就会有相应多的改善。
Turbo 译码一般使用软判决译码方法,软比特判决一般用后验对数似然比(LLR)的形式表示:L i = log ]|0[]|1[y m P y m P i i ==在输入端接收先验信息、在输出端产生后验信息的译码算法称为软输入软输出(SISO, Soft-input and soft-output)译码算法。
Viterbi 算法和MAP 算法经过改造可以成为SISO 算法。
设有一个码率为1/2、由RSC 码构成的SISO 译码器,它接收3个输入:系统通过噪声信道接收到的系统比特x i (未编码)、通过噪声信道接收到的校验输入比特y i 和接收比特的先验信息L a(i) (来自于另一个译码器的输出),产生LLR 输出L i 。
对于二元相移键控(BPSK)形式的调制,其输入输出之间的关系为:y' = a sE (2x-1) + n'式中,a 为衰落幅度,sE (2x-1)是BPSK 已调码元符号,E s 是每个码元符号的能量(若码率为r ,则它与每比特的能量符号E b 的关系是:E s = r E b ),n'为零均值、方差2σ= N 0/2的Gaussian 随机变量。
若a 为常数,则为加性白高斯噪声(AWGN)信道。
否则,称为慢衰落信道,不同的衰落类型a 有不同的分布,常见的是Rayleigh 分布和Rician 分布。
上式有另一种更为方便的表示形式:y = a(2x-1) + n式中,噪声n 的方差成为2 = N 0/2E s利用此信道模型在SISO 译码器输出端的对数似然输出为:L i = i s i x N Ea 04 + L a (i) + L e (i)式中,x i 为通过噪声信道接收到的未编码系统比特;L a(i)为先验信息,它来自于另一个译码器;L e(i)为外部信息,它表示当前译码得到的“新息(new information)”。
对于第一次迭代译码,第一个译码器没有先验信息,即L a1(i) = 0于是,得到:L i1 = i si x N E a 04 + L e1(i) 对于第二个译码器,第一次译码的先验信息L a2(i)为来自于第一个译码器的外部信息L e1(i),因此有L i2 = i s i x N Ea 04 + L e1(i) + L e2(i)对于第二次迭代,L e2(i)又作为第一个译码器的先验信息,就这样进行迭代循环。