690 likes | 1.04k Views
第7章 信 道 编 码. 7.1 信道编码的基本概念 7.2 线性分组码 7.3 循 环 码 7.4 BCH 码 7.5 卷 积 码 7.6 纠正突发错误码 7.7 交 织 码 7.8 级 连 码 *7.9 信道编码的性能界限 *7.10 实际信道编码应用 7.11 Turbo 码 7.12 高效率信道编码 TCM. 7.1 信道编码的基本概念.
E N D
第7章 信 道 编 码 • 7.1 信道编码的基本概念 • 7.2 线性分组码 • 7.3 循 环 码 • 7.4 BCH 码 • 7.5 卷 积 码 • 7.6 纠正突发错误码 • 7.7 交 织 码 • 7.8 级 连 码 • *7.9 信道编码的性能界限 • *7.10 实际信道编码应用 • 7.11 Turbo 码 • 7.12 高效率信道编码TCM
7.1 信道编码的基本概念 • 信道编码的目的是为了改善数字通信系统的传输质量。由于实际信道存在噪声和干扰的影响,使得发送的码字与经信道传输后所接收的码字之间存在差异,我们称这种差异为差错。一般,信道噪声、干扰越大,码字产生差错的概率也就越大。
在有记忆信道中,噪声、干扰的影响往往是前后相关的,错误是成串出现的,一般在编码中我们称这类信道为突发差错信道。实际的衰落信道、码间干扰信道均属于这类信道。在有记忆信道中,噪声、干扰的影响往往是前后相关的,错误是成串出现的,一般在编码中我们称这类信道为突发差错信道。实际的衰落信道、码间干扰信道均属于这类信道。 • 有些实际信道既有独立随机差错也有突发性成串差错,我们称它为混合信道。
从信道编码的构造方法看,其基本思路是根据一定的规律在待发送的信息码中加入一些人为多余的码元,以保证传输过程可靠性。信道编码的任务就是构造出以最小多余度代价换取最大抗干扰性能的“好码”。 从信道编码的构造方法看,其基本思路是根据一定的规律在待发送的信息码中加入一些人为多余的码元,以保证传输过程可靠性。信道编码的任务就是构造出以最小多余度代价换取最大抗干扰性能的“好码”。 • 1. 不重复 • 2. 重复一次 • 3. 重复两次
线性分组码在构造时,将输入信息分成k位一组进行编码,并按照一定线性规律加上人为多余的码元,构成n(n>k)位一组的输出,故一般可采用符号(n,k)表示,其中n表示输出的码组长度,k表示输入信息分组,即输出码组中信息码位数,显然余下的r=n-k位码元则表示在编码过程中按照一定线性规律人为加入的多余码元。线性分组码在构造时,将输入信息分成k位一组进行编码,并按照一定线性规律加上人为多余的码元,构成n(n>k)位一组的输出,故一般可采用符号(n,k)表示,其中n表示输出的码组长度,k表示输入信息分组,即输出码组中信息码位数,显然余下的r=n-k位码元则表示在编码过程中按照一定线性规律人为加入的多余码元。
前向纠错也称为自动纠错。发端发送具有一定纠错能力的码,收端译码时,若传输中产生差错的数目在码的纠错能力之内译码器可以对差错进行定位并自动加以纠正。反之,若差错数目大于纠错能力则无能为力。前向纠错FEC方式的主要优点是不需要反馈信道并能自动纠正差错,所以它比较适合于实时传输系统。前向纠错也称为自动纠错。发端发送具有一定纠错能力的码,收端译码时,若传输中产生差错的数目在码的纠错能力之内译码器可以对差错进行定位并自动加以纠正。反之,若差错数目大于纠错能力则无能为力。前向纠错FEC方式的主要优点是不需要反馈信道并能自动纠正差错,所以它比较适合于实时传输系统。
本章主要介绍应用最广的前向纠错,又称纠错编码。本章主要介绍应用最广的前向纠错,又称纠错编码。 • 上世纪90年代以来,相继寻找到并行级联的Turbo码和低密度校验码(LDPC)能在低频谱效率的二进制条件下逼进Shannon限。
7.2 线性分组码 • 线性分组码中的线性是指码组中码元间的约束关系是线性的,而分组则是对编码方法而言。即编码时将每k个信息位分为一组进行独立处理,变换成长度为n(n>k)的二进制码组。 • 由上述定义可见,一个线性分组编码f是一个从矢量空间GF(2k)到另一个矢量空间GF(2n)上的一组线性变换。它可应用线性代数理论中有限维的矩阵来描述。
(1) 将同一伴随式S所对应的错误图样排成一行,它总共有2k个彼此正交的元素(码),构成一个集合,称它为陪集合; • (2) 将上述2k个正交元素(码)中汉明重量最小的元素放在该行的首位,并称它为陪集首;
(3) 将不同类型伴随式S所决定的2n-k种2k个元素组成的行放在不同的列,而在不同列中行的排列与第一行相同,并完全对应; • (4) 所有各行中第一列的元素组成了一个集合,称它为陪集首集合,它是在最小距离准则下最可能产生错误的集合。
7.3 循 环 码 • 一个(n,k)线性分组码,如果每个码字经任意循环移位之后仍然是一个线性分组码,那么就称此码是一个循环码。
由于对任意一个n维矢量 • c=(c0c1…cn-1) • 都可以用一个次数不超过n-1的多项式按下式惟一的确定: • c(x)=c0+c1x+…+cn-1xn-1 • 当c是一个码字时,称相应c(x)的为码字多项式。
循环码是线性分组码的一个大子类,线性分组码的一些主要性质,循环码均具有。因此,循环码也可以分为系统码和非系统码两类,它们之间是一种初等变换的关系。 循环码是线性分组码的一个大子类,线性分组码的一些主要性质,循环码均具有。因此,循环码也可以分为系统码和非系统码两类,它们之间是一种初等变换的关系。
CRC即循环冗余校验Cyclic Redundancy Cheek就是一种广泛用于检错的循环码。 • 循环码特别适合于检测错误,这是由于它既具有很强的检测能力,同时实现起来也比较简单。CRC用于检错,一般能检测如下错误:
(1) 突发长度<n-k+1的突发错误; • (2) 大部分突发长度=n-k+1的错误,其中不可检出错误仅占2-(n-k-1); • (3) 大部分突发长度>n-k+1的错误,其中不可检出错误仅占2-(n-k); • (4) 所有与许用码组码距≤dmin-1的错误; • (5) 所有奇数个错误。
常用的CRC码,已成为国际标准,有下列4种: • CRC-12 • CRC-16 • CRC-CCITT • CRC-32 • 其中CRC-12用于字符长度为6bit情况,后3种则用于8bit字符。CRC码在数码通信及移动通信中得到广泛的应用。
7.4 BCH 码 • BCH码是一类最重要的循环码,能纠正多个随机错误,它是1959年由霍昆格姆(Hocquenghem)、博斯(Bose)和查得胡里(Chaudhuri)各自独立发现的二元线性循环码,人们用他们3人名字的字头BCH命名为BCH码。由于它具有纠错能力强、构造方便、编码简单、译码也较易实现一系列优点因而广泛被采用。
BCH码的码长为奇数,在实际使用中,为了得到偶数码长,并增加其检错性能,可以在BCH码的生成多项式中乘上一个(1+x)因式,从而得到(n+1,k+1)扩展BCH码,其码长为偶数。扩展BCH码相当于在BCH码上加了一个全校验位,扩展后码距增加1。然而扩展BCH码已不再具有循环性。例如(23,12)戈雷码在使用中常采用它的扩展形式,变成(24,12)扩展戈雷码,它能纠正3个错误,同时发现4个错误。BCH码的码长为奇数,在实际使用中,为了得到偶数码长,并增加其检错性能,可以在BCH码的生成多项式中乘上一个(1+x)因式,从而得到(n+1,k+1)扩展BCH码,其码长为偶数。扩展BCH码相当于在BCH码上加了一个全校验位,扩展后码距增加1。然而扩展BCH码已不再具有循环性。例如(23,12)戈雷码在使用中常采用它的扩展形式,变成(24,12)扩展戈雷码,它能纠正3个错误,同时发现4个错误。
这里简要介绍彼得森译码的基本思路如下: • 1.用生成多项式g(x)的各因式作为除式,对接收到的码多项式求余,得到t个余式,称为部分伴随式; • 2.用t个部分伴随式构造一个特定的译码多项式,它以错误位置数为根; • 3.求译码多项式的根,得到错误位置; • 4. 纠正错误位置。
7.5 卷 积 码 • 卷积码是1955年埃里亚斯(Elias)最早提出,稍后,1957年伍成克拉夫(Wozencraft)提出了一种有效译码方法,即序列译码。1963年梅西(Massey)提出了一种性能稍差,但比较实用的门限译码方法,由于这一实用性进展使卷积码从理论走向实用化。而后1967年维特比(Viterbi)提出了最大似然译码法。它对存储器级数较小的卷积码的译码很容易实现,人们后来称它为维特比算法或维特比译码,并被广泛地应用于现代通信中。
7.5.1 卷积码编码 • 卷积码的编码器是由一个有k个输入位(端)、n个输出位(端),且具有m节移位寄存器所构成的有限状态的有记忆系统,通常称它为时序网络。卷积码编码原理图见图7-5-1。
若输入信息序列为u=(u0u1u2…) • 则对应输出为两个码字序列: • c①=(c0①c1①c2①……) • c②=(c0②c1②c2②……) • 其相应编码方程可写为: • c①=u*g① • c②=u*g② • 其中“*”表示卷积运算,g①、g②表示编码器的两个脉冲冲激响应。
7.5.2 卷积码的译码 • 1967年,维特比(Viterbi)引入了一种卷积码的译码算法,这就是著名的维特比算法。后来小村(omura)证明维特比算法等价于求通过一个加权图的最短径问题的动态规划解。最后,福尼(Forney)指出它事实上就是卷积码的最大似然译码算法。即译码器所选择的输出总是能给出对数似然函数值为最大的码字。
维特比算法,即是找出通过格子图中具有最大度量值的最大似然路径。这个算法在实际应用中是采用迭代方式来处理的。在每一步中,它将进入每一状态的所有路径的度量值进行比较。并存储具有最大度量值的路径,即幸存路径。其具体步骤可归纳如下。维特比算法,即是找出通过格子图中具有最大度量值的最大似然路径。这个算法在实际应用中是采用迭代方式来处理的。在每一步中,它将进入每一状态的所有路径的度量值进行比较。并存储具有最大度量值的路径,即幸存路径。其具体步骤可归纳如下。
① 从时刻l=m开始,计算进入每一状态的单个路径的部分度量值,并存储每一状态下的幸存路径及其度量值。 • ② l增加1,l=m+1,将进入某一状态的分支度量值与前一时间段的幸存度量值相加,然后计算进入该状态的所有最大度量的路径,即幸存路径及其度量,并删去所有其他路径。 • ③ 若l<L+m=5+2=7,重复步骤②,否则停止。
下面讨论维特比译码器的改进。从上面例子可看出维特比算法有如下特点。下面讨论维特比译码器的改进。从上面例子可看出维特比算法有如下特点。 • (1) (n,k,m)卷积码编码器共有2km个状态,因此维特比译码器必须有2km个存储器,以便存储2km个幸存路径(或信息序列u)以及每一个路径与y=(y0y1y2…yj-1)的距离dj。可见译码器复杂性随km指数增长。为了使译码器不太复杂,一般取m≤10。 • (2) 信息序列存储器存储的信息长度为KL,若L很大则译码器存储量也随之增大,以致难以实用。
前面我们讨论了BSC信道中的维特比译码,它是硬判决译码,为了充分利用信道输出的信号所提供的有关信息,提高译码性能,我们可以不将解调器输出波形进行硬判决{0 1},而是进行多电平量化(Q=2m),然后再输入维特比译码器,我们称这种适应Q进制输入的维特比译码器为软判决维特比译码器。
*7.5.3 卷积码的距离特性 • 在分组码中,常以最大的最小距离作为纠错能力的度量。 • 用状态图求生成函数的方法可以求得卷积码的距离特性,特别是自由距离df。但是在给定n,k和N是无法求得df与卷积码生成多项式间的计算公式,必须逐个计算不同卷积码生成函数才能获得最大df的好码。
7.6 纠正突发错误码 • 纠突发差错,既可采用分组码,也可采用卷积码。在分组码中,循环码不仅对检测突发差错很有效,而且对纠正突发差错也是很有效的。其中最为典型的是法尔(Fire)码和RS码,法尔码是一类纠正突发差错的循环码,且能用很简单的电路实现译码。除法尔码以及RS码以外,应用分析法和计算机搜索方法也可构造一些纠正突发差错的循环编码。
纠突发差错的卷积码首先是由哈格尔巴杰(Hagelberger)构造。同一类型更为有效的码是稍后由岩垂(Iwadare)和梅西(Messey)独立构造。怀纳(Wyner)和阿什(Ash)最先研究用于纠定段突发差错的卷积码,同一类型最佳码稍后由伯利坎普(Berlekemp)和普霍帕拉塔(preparatc)独立地发现。纠突发差错的卷积码首先是由哈格尔巴杰(Hagelberger)构造。同一类型更为有效的码是稍后由岩垂(Iwadare)和梅西(Messey)独立构造。怀纳(Wyner)和阿什(Ash)最先研究用于纠定段突发差错的卷积码,同一类型最佳码稍后由伯利坎普(Berlekemp)和普霍帕拉塔(preparatc)独立地发现。 • 除了法尔码以外,通过分析方法和计算机搜索,已找到一些非常有效的纠单个短突发错误的循环码和缩短循环码。
7.7 交 织 码 • 迄今为止,前面所介绍的各类信道编码除法尔码及RS码以外,都是用于无记忆信道的, 即是针对独立差错(随机错误)设计的。 • 这里,我们所要讨论的是可以纠正很长的突发差错,而且也不仅限于一个突发。在某种意义上说,它是一种信道改造技术,它通过信号设计将一个原来属于突发差错的有记忆信道改造为基本上是独立差错的随机无记忆信道。
假若,发送一组信息X=(x1x2…x24x25), 首先将X送入交织器, 同时将交织器设计成按列写入按行取出的5×5阵列存储器。然后从存储器中按行输出送入突发差错的有记忆信道, 信道输出送入反交织器, 它完成交织器的相反变换, 即按行写入按列取出, 它仍是一个5×5阵列存储器。
推广至一般,我们称这类交织器为周期性的分组交织器,分组长度为: 推广至一般,我们称这类交织器为周期性的分组交织器,分组长度为: • L=M×N • 故又称之为(M,N)分组交织器。它将分组长度L分成M列N行并构成一个交织矩阵,该交织矩阵存储器是按列写入按行读出。
分组周期交织方法其特性可归纳如下。 • (1) 任何长度l≤M的突发差错,经交织变换后,成为至少被N-1位隔开后的一些单个独立差错。 • (2) 任何长度l>M的突发性差错,经去交织变换后,可将长突发l变换成短突发l1=[l / M]。
(3) 完成交织与去交织变换在不计信道时延的条件下,两端间的时延为2MN个符号,而交织与去交织各占MN个符号,即要求存储MN个符号。 • (4) 在很特殊的情况下,周期为M个符号单个独立差错序列经去交织后,会产生相应序列长度的突发错误。
7.8 级 连 码 • 在很多实际通信的信道中,出现的差错既不是单纯随机独立的也不是明显的单个突发差错,而是混合型差错。为了对付这类混合差错,采用仅能纠正随机独立差错或纠正单个突发差错的码都不太合适。因此,我们希望能设计一类既能纠随机独立错误又能纠单个或多个突发差错的码。交错码、乘积码、级连码均属于这类纠错码。其中性能最好,最为有效,也最常采用的是级连码。
级连码是一种由短码构造长码的一类特殊的、有效的方法。它首先是由范尼(Forney)提出的。级连码是一种由短码构造长码的一类特殊的、有效的方法。它首先是由范尼(Forney)提出的。 • 在编码时,首先将k1·k2个二进制信息元划分为k2个字节,每一个字节有k1个信息元。同时每一个字节内的k1个信息元按照二进制分组码或卷积码编成(n1,k1)的内码c1,即字节间共有k2个字节则一般按照非二进制RS码编成(n2,k2)的外码c2。
1984年美国NASA给出一种用于空间飞行数据网的级连码编码方案,以后被人们称为标准级连码系统,它采用(2,1,7)卷积码作为内码、(255,223)RS码作为外码,并加上交织器。1984年美国NASA给出一种用于空间飞行数据网的级连码编码方案,以后被人们称为标准级连码系统,它采用(2,1,7)卷积码作为内码、(255,223)RS码作为外码,并加上交织器。
*7.9 信道编码的性能界限 • 信道编码的性能界限一般可划分为两大类型:一类是存在性的理论性能界限,即信道编码定理所要讨论的理论上的误码概率界限;另一类是构造性的性能界限,它又称为工程实现上的最小距离界限。
*7.9.1 信道编码定理 • 信道编码定理所要讨论的是信道编码的存在性的理论性能界限,也即信道编码的极限或渐近性能,它是以随机编码为基础的。
*7.9.2 信道编码的构造性能界限 • 所谓信道编码的构造性能界限即最小距离界限,它在构造新码,估计新码性能时,很有用处,它可说明所寻找的新码与最好性能的码接近的程度。 • 伯利坎普(Berlekamp)曾将编码理论研究归结为如下3个问题,最佳码性能有多好,如何设计好码以及如何译码。
*7.10 实际信道编码应用 • 从前面分析可以看出,信道编码是提高通信系统可靠性的最主要手段,它不仅成功地用于典型的加性高斯噪声AWGN信道,也成功的用于各类变参量的衰落信道。
在GSM中其信道编码和交织的总体方案包括以下3个步骤。在GSM中其信道编码和交织的总体方案包括以下3个步骤。 • (1) 用分组码(系统循环码)进行外编码,建立由“信息比特+奇偶校验比特”构成的码字,然后在其后加若干比特“0”作为尾比特。
(2) 用卷积码进行内编码,即将(1)中得到的“信息比特+奇偶校验比特对于TCH/FS还要进行重排+尾比特”用卷积码进行编码,建立“编码比特”。 • (3) 采用重排(随机接入信道RACH和同步信道SCH除外)和交织技术将衰落引起长突发错误改造为独立错误信道。
1.外编码(分组循环编码) • 首先将输入待编码数据分成20ms的260bit一帧,并将其中一级比特前50bit(一级A类)进行(53,50,2)截短循环码,其生成多项式为: • g(x)=1+x+x3 • 得到3个奇偶校验比特p(0),p(1),p(2)。 • 码多项式为: • d(0)x52+d(1)x51+…+d(49)+p(0)x2+p(1)x+p(2)
2.内编码(卷积器) • 首先将编码得到的189bit进行码速率为1[]2的(2,1,4)卷积编码,其生成多项式为: • g0(x)=1+x3+x4 • g1(x)=1+x+x3+x4 • 3.重排和交织
7.11 Turbo 码 • 1993年法国人Berrou等在ICC国际会议上提出了一种采用重复迭代(Turbo)译码方式的并行级联码,并采用软输入/输出译码器,可以获得接近Shannon极限的性能,至少在大的交织器和BER≈10-5条件下,可以达到这种性能。Turbo码的优良性能,受到移动通信领域的广泛重视,特别是在第三代移动通信体制中,非实时的数据通信广泛采用Turbo码。本节将重点介绍它产生的背景和基本原理。
1. 产生背景 • 由于Turbo码的性能已逼近理论上最优的Shannon信道编码的极限,因此这里需首先简介Shannon信道编码定理。 • (1) Shannon信道编码定理 • 1948年信息创始人C.E.Shannon从理论上证明了信道编码定理,又称为Shannon第二编码定理。
Shannon等人的证明中引用了三个基本条件: • ① 采用随机编译码方式; • ② 编译码的码长L∞; • ③ 译码采用最佳的最大后验译码。