假设信源输出为有限域GF(2)上连续的二元符号序列,称为消息序列。
在分组码中每一个消息分组含有k个信息比特,一共有2k个不同的消息,对应2k个不同的码字。所有码字的集合构成一个(n,k)分组码。其中参数n称为码长,k称为码的维度或消息长度,由编码器产生的n-k个添加到每个输入消息中的消息比特称为冗余比特。码率R=k/n,可以解释为每一个码比特所携带的平均信息比特数。
对于线性分组码,确定其最小距离就等价于求最小重量。
一个二元(n,k)线性分组码C是GF(2)上所有n维向量组成的向量空间V的一个k维子空间,一共有2k个码字。C中存在k个线性独立的码字,使得C中每个码字是这K个线性独立码字的线性组合。
假设:待编码的信息为u,对应的码字为c,G为生成矩阵,H为校验矩阵。
满足:c = u · G,c · H = 0, GHT = 0。
假定C是一个已有的(n, k)线性分组码,可以对其进行简单修改而得到一个新码。这些方法很简单,但很实用。
扩展码(extending a code):通过对C中的码字增加校验符号而增加码长(或者说获得码长更长的新码),这对应于增加生成矩阵的列。例如,对Hamming码增加一个全校验位就得到扩展Hamming码。
删余码(puncturing a code):通过将C中码字的一些校验符号删去(或者说进行打孔)而减少码长,从而得到码率更高的码。这对应于删掉生成矩阵的列。
缩短码(shortening a code) :通过扔掉一些数据符号而减少码长,这对应于删去校验矩阵的列或者减少生成矩阵的维数。新码的码率变小,扔掉的数据符号一般是固定取值的,从而收发双方已知。
增余删信码(expurgating a code):它是在原码基础上,删去一些数据符号而同时增加校验符号,从而码长不改变,但显然码率会降低,这对应于删去生成矩阵的行。一个增余删信码是原码的子码。
基于接收序列、编码规则和信道的噪声特征,接收机进行判决,给出哪一个消息是实际发送的,这个判决操作称为译码。依赖于译码器的输入不同,译码分为硬判决译码和软判决译码。
假定一个二元(n, k)线性分组码的码字c采用BPSK调制并在AWGN信道上传输。二进制调制器只有两个输入(M =2),而信道输出为实数(-∞,+∞)。如果解调器的输出采用两个电平量化(Q =2),则译码器的输入符号只有两种取值。这种情况下,解调器是做硬判决,基于解调器硬判决输出的译码称为硬判决译码。
如果解调器的输出采用多于两个电平量化(Q> 2)或不进行量化,则解调器就是做软判决,基于这个软判决输出的译码称为软判决译码。
LDPC编码是基于稀疏二分图(Biparite Graph)设计的校验码,采用迭代方式进行译码。经典的LDPC在长码块的时候有优异的性能和较低的译码复杂度,曾多次刷新与香农限的逼近记录。
LDPC首先在数字电视上得到应用。之后LDPC在WiMAX标准和无线局域网(WLAN)、无线高保真(WiFi)中成为可选技术。在5G NR标准中作为eMBB数据信道的编码方案。
近年来,LDPC在短码设计、支持灵活码长码率、码率兼容/自适应重传等方面都有许多突破。
Polar码是一种新提出的线性分组码,是针对二元对称信道(BSC)的严格构造码,可以达到BSC的信道容量。基本思想是利用信道的两极分化现象,把承载较多信息的比特放在理想信道中,而把已知比特“冻结比特”放在非理想信道中。信道极化是一种普遍存在的现象,不仅在BSC信道,而且在AWGN信道也广泛存在。它随着码长的增长变得更为明显。
极化码虽然历史不长,但是已有很多在码字设计和译码算法方面的经验,在码的性能指标上有较强的竞争力,这使得它在5G NR标准中作为eMBB控制信道的编码方案。
卷积码采用维特比译码算法。具体:采用时不变的网格结构(Trellis)来有效的译码。之后又出现了其他的基于Trillis的译码算法,如BCJR算法。卷积码可以分为非递归和递归两种类型。常用的经典的卷积码多数是非递归的。
当约束长度较小时,卷积码的译码复杂度较低,性能也不算差。尤其是码长较短时,卷积码性能与Turbo码的相近。所以,它广泛应用于3G和4G中的各类物理控制信道、系统消息信道、一些适用于低成本终端的下行业务信道中。
一般的卷积码需要有若干比特用来对卷积码的移位寄存器清零,即让编码器的状态回归0。为了降低这部分开销, LTE采用咬尾卷积码。其特点是编码器的结束状态需要与初始状态相同。由于接收端并不知道咬尾卷积码编码器的状态,译码复杂度稍有增加。
Turbo码使人们看到性能逼近香农界的优秀性能,并领略到随机编码的潜力和迭代译码的威力。从此,随机信道编码与迭代译码成为主流的编码思路。
Turbo码的思想是在编码环节引入随机图样的交织器,将两个递归卷积码并行或串行的级联起来,这样就增加了这个码字的纠错能力。在译码环节上采用次优但是复杂度较低的迭代算法。比特的软信息在两个卷积译码器之间往复迭代,使得置信度不断提高。
相对传统LDPC码,Turbo码在码长、码率的灵活度和码率兼容自适应重传方面有不少优势。因此,它在3G和4G中是必选的编码方式。但是Turbo码的译码复杂度在多数情况下要高于LDPC,尤其在大码长和高码率场合下。
为了进一步提高信道编码的前向纠错和检错能力,可以在物理层的信道编码之上加外层编码。
在2G中,内层的信道编码一般是纠错能力有限的分组码或者卷积码,此时外层编码成为不可或缺的环节。3G/4G/5G系统中,依然采用外层编码(如CRC)来进行纠错和检错。
5G需要支持低时延高可靠场景,这些业务所占资源很有可能打掉一些其他业务——如移动宽带、海量物联网——等的资源。这会对那些被打掉资源的业务造成突发性干扰。而外层编码有望承载这些业务的信道的鲁棒性。
此外,外层编码可以提高链路自适应的能力。这在有HARQ的情况下,能使链路更有效的进行重传。
在Turbo码和LDPC码的基础上提出的一种信道编码方案。综合了两者的优点:不仅具有Turbo码的简单性,而且具有LDPC码的并行译码特性。
Spinal码是一种在时变信道中适用的无速率码,也是一种逼近香农界的码。其核心是对输入消息比特连续使用伪随机哈希函数结合高斯映射函数不断产生伪随机量化的高斯符号。相比于现存的信道编码,Spinal码可以在码长很短的条件下逼近香农容量。在较好的信道条件下,Spinal码的性能优于现存的信道编码加高阶调制方案。