信道编码发展概述摘要:信道编码为了与信道的统计特性相匹配,并区分通路和提高通信的可靠性,而在信源编码的基础上,按一定规律加入一些新的监督码元,以实现纠错的编码。
本文主要介绍几种主要的信道编码和译码原理和它们实现方法和性能和各种编码的优缺点,并介绍其在现代通信技术中的应用如WCDMA和3G通信技术。
关键词:分组码; 卷积码; 级联码; Turbo码;通信技术;中图分类号:TP91811Development of Channel CodesAbstract: Channel coding in order to match the statistic properties of channel, and to distinguish the pathway and improve the reliability of communication, and on the basis of the source code, add some new oversight element according to certain rule, in order to realize the error correction coding. This paper mainly introduces several main channel coding and decoding principle and their implementation methods and properties and the advantages and disadvantages of all kinds of coding, and introduces its application in the modern communication technologies such as WCDMA and 3G communications technology.Key words:block codes; convolution code; concatenation codes turbo code; communication technology;0引言一个完整的通信系统,在从信源至接收的全过程中,对信号进行的编码包括信源编码、信道编码以及加密与解密,其中信源编码与信道编码是对信号进行处理的重要步骤,而加密与解密则主要用于接收系统中。
信道编码又称为纠错编码,是指将信号进行编码处理,以使编码后的传送码流与信道传输特性相匹配,其根本目的是为了提高信息传输的可靠性,即提高系统的抗干扰能力。
信道编码是数字通信区别于模拟通信的显著标志,其主要实现方法是通过增大码率或频带,即增大所需的信道容量。
这一点恰好与信源编码为适应存储及信道传输要求而进行压缩码率或频带而相反。
信道编码在当今的通信系统中有这至关重要的地位,TD-SCDMA中主要采用了卷积码和CRC检错码,而Turbo码在WCDMA的差错控制技术中和4G通信中起着至关重要的作用。
1分组码将信源的信息序列按照独立的分组进行处理和编码,称为分组码。
编码时将每k个信息位分为一组进行独立处理,变换成长度为n(n>k)的二进制码组。
简单实用编码包括奇偶监督码、二维奇偶监督码、恒比码、正反码,其中奇偶监督码和分组码又同属于代数码。
分组码一般用符号(n,k)表示,其中n是码组的总位数,又成为码组的长度(码长),k是码组中信息码元的数目,–n k r为码组中的监督码元数目。
在分组码中,把码组中“1”的个数目称为码组的重量,简称码重。
把两个码组中对应位上数字不同的位数称为码组的距离,简称码距又称海明距离。
分组码线性是指码组中码元的约束关系是线性的, 而分组则是对编码而言。
他可以用近似代数理论中有限维有限域的矩阵来描述。
线性分组码实际上是利用线性空间的扩展, 即由原来的k维扩展到n 维, 利用被扩展的(n -k ) 维来发现、纠正信道传输中的差错。
1.1 循环码循环码是一种无权码,每位代码无固定权值,任何相邻的两个码组中,仅有一位代码不同。
而纠错码的译码是该编码能否得到实际应用的关键所在。
译码器往往比编码较难实现,对于纠错能力强的纠错码更复杂。
根据不同的纠错或检错目的,循环码译码器可分为用于纠错目的和用于检错目的的循环码译码器。
通常,将接收到的循环码组进行除法运算,如果除尽,则说明正确传输;如果未除尽,则在寄存器中的内容就是错误图样,根据错误图样可以确定一种逻辑,来确定差错的位置,从而达到纠错的目的。
用于纠错目的的循环码的译码算法比较复杂,而用于检错目的循环码一般使用ARQ 通信方式。
检测过程也是将接受到的码组进行除法运算,如果除尽,则说明传输无误;如果未除尽,则表明传输出现差错,要求发送端重发。
用于这种目的的循环码经常被成为循环冗余校验码,即CRC 校验码。
CRC 校验码由于编码电路、检错电路简单且易于实现,因此得到广泛的应用。
1.2 BCH 码BCH 码是一类重要的纠错码,它把信源待发的信息序列按固定的K 位一组划分成消息组,再将每一消息组独立变换成长为()n n k >的二进制数字组,称为码字。
如果消息组的数目为M (显然M≤2),由此所获得的M 个码字的全体便称为码长为n 、信息数目为M 的分组码,记为n ,M 。
把消息组变换成码字的过程称为编码,其逆过程称为译码。
BCH 码的主要数量指标是:码长n ,首元指数m 0,设计距离d 0,信息位数(表示多项式g(x)的次数)。
BCH 码的重要特性在于:设计距离为d 0的BCH 码,其最小距离至少为d 0,从而可至少纠正0(1/2)d -个独立错误 (汉明码只能纠单个错误)。
由于具有纠错能力强、编码简单、译码较容易实现等优点而被广泛采用。
1.3 RS 码RS 码又称里所码,是一种低速率的前向纠错的信道编码,对由校正过采样数据所产生的多项式有效。
编码过程首先在多个点上对这些多项式求冗余,然后将其传输或者存储。
对多项式的这种超出必要值的采样使得多项式超定(过限定)。
当接收器正确的收到足够的点后,它就可以恢复原来的多项式,即使接收到的多项式上有很多点被噪声干扰失真。
RS 码是一类纠错能力很强的特殊的非二进制BCH 码。
对于任选正整数S 可构造一个相应的码长为n=qS -1的 q 进制BCH 码,而q 作为某个素数的幂。
当S=1,q>2时所建立的码长n=q -1的q 进制BCH 码,称它为RS 码。
当q=2m(m>1),其码元符号取自于F(2m)的二进制RS 码可用来纠正突发差错,它是最常用的RS 码 一个RS 码有以下几个参数: 块长度:n(=2^m -1)个符号 消息长度:k 个符号奇偶校验长度:n k e -=个符号 最小距离:min 1d n k =-+个符号 通过缩短,(n,k)RS 码的长度可以减少到具有相同符号长度的(n',k')RS 码,期中n'和k'分别小于或者等于n 和k 。
RS 码主要被广泛的应用于各种商业用途,最显著的是在CD 、DVD 和蓝光光盘上的使用;在数据传输中,它也被用于DSL 和WiMAX ;广播系统中DVB 和ATSC 也闪现着它的身影;在电脑科学里,它是第六层标准RAID 的重要成员。
2卷积码卷积码是1955年由Elias 等人提出的,是一种非常有前途的编码方法。
分组码的实现是将编码信息分组单独进行编码,因此无论是在编码还是译码的过程中不同码组之间的码元无关,卷积码是一种非线性码,其编码器中有记忆器件存在。
若以(n,k,m )来描述卷积码,其中k 为每次输入到卷积编码器的bit 数,n 为每个k 元组码字对应的卷积码输出n 元组码字,m 为编码存储度,也就是卷积编码器的k 元组的级数,称1 m K +=为编码约束度m 称为约束长度。
卷积码将k 元组输入码元编成n 元组输出码元,但k 和n 通常很小,特别适合以串行形式进卷积码的编码器进行传输,时延小。
与分组码不同,卷积码编码生成的n 元组元不仅与当前输入的k 元组有关,还与前面m -1个输入的k 元组有关,编码过程中互相关联的码元个数为*n m 。
卷积码的纠错性能随m 的增加而增大,而差错率随N的增加而指数下降。
在编码器复杂性相同的情况下,卷积码的性能优于分组码。
卷积码(n,k,m)主要用来纠随机错误,它的码元与前后码元有一定的约束关系,编码复杂度可用编码约束长度m*n来表示。
一般地,最小距离d表明了卷积码在连续m 段以内的距离特性,该码可以在m个连续码流内纠正(d-1)/2(向下取整)个错误。
卷积码的纠错能力不仅与约束长度有关,还与采用的译码方式有关。
总之,由于n,k 较小,且利用了各组之间的相关性,在同样的码率和设备的复杂性条件下,无论理论上还是实践上都证明:卷积码的性能至少不比分组码差。
卷积码的译码算法有多种, 主要包括: 序列译码、迭代译码、list 译码及维特比译码等。
其中维特比译码用的较多, 他是一种基于trellis图最大似然译码, 因此也是一种最佳译码算法。
维特比译码的缺点主要有2个:(1) 要等全部接收的数据进入译码器后才能最后算出译码的结果, 因此时延长。
(2) 共有2b (k -1)条幸存路径的全部历史数据需要保存, 所以存储量很大。
3级联码要想进一步提高编码的性能,必须加长编码。
对于线性分组码就是加长n,对卷积码就是加长K。
但很快就会陷于复杂度不可接受的窘境。
为了解决这个问题,级联码把两个编码以串联或者并联的方式结合在一起,这两个码(称为成员码或分量码)的复杂度在可接受的范围内,它们整体构成了一个更强大的编码。
新一代高性能编码如LDPC、Turbo码等都是级联码的例子。
对于这些码,直接进行全局的ML译码是形不同的(复杂度过高),因此最关键的技术问题是如何达到最佳或近似最佳的译码。
目前人们所想到的方法是迭带形式的概率译码,它能可接近最佳译码。
采用迭代译码的级联码的性能几近仙农极限。
这样的级联一般需要在两级之间加一个交织器。
级联码最简单的例子是RA码,它把重复码的编码结果交织后通过一个差分编码器。
Turbo码是两个卷积码级联。
LDPC本质上是重复码级联了许多的偶校验码。
我们也可将编码、信道、译码整体看成一个广义的信道。
这个信道也存在错误,因此对它还可作进一步的纠错编译码。
对于有多次编码的系统,对各级编码,看成一个整体编码,就是级联码。
级联码的最初想法是为了进一步降低残余误码率(改善渐近性能),但事实上它同样可以提高较低信噪比下的性能。
这是由较好构造的短码进一步构造性能更好的长码(近随机码)的一种途径。
4 Turbo码Turbo 码它巧妙地将两个简单分量码通过伪随机交织器并行级联来构造具有伪随机特性的长码,并通过在两个软入/软出(SISO)译码器之间进行多次迭代实现了伪随机译码。