5G移动通信中的信道编码
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.4 几类常用的分组码

在线性分组码中,重复码和单奇偶校验码都是比较简单的码,但是它们都非常实用。其他常用的分组码包括Hamming码、BCH码、RS码、RM码等,它们都具有很好的代数结构并且获得了广泛应用。但由于在5G通信系统中,除RM码之外,其他几种码均未使用,因此这里不再具体赘述。

2.4.1 重复码和单奇偶校验码

重复码和单奇偶校验码是两种比较简单的线性分组码。在GF(2)上的长度为n重复码(repetition code)Crep(n,1)是只有一个信息比特的二元(n,1)线性码,这种码只是简单地把单个信息比特重复n次。因此,在GF(2)上,它只有两个码字:全0码字(00···0)和全1码字(11···1)。很明显,它的生成矩阵是

编码运算是c=uG,其中u∈{0,1}。

在GF(2)上的长度为n单奇偶校验(Single Parity-Check, SPC)码Cspc是一个二元(n, n-1)线性分组码,它的每个码字包含n-1个信息比特和1个校验比特。令u=(u0, u1, · · ·, un-2)是未编码信息,那么单校验比特c被加进去就构成了n比特码字(u0, u1, u2, · · ·, un-2, c),这个单校验比特c就是消息u中的n-1个信息比特的模2和,即

c=u0⊕u1⊕· · ·⊕un-2

因此,Cspc中的每一个码字的重量都为偶数。Cspc包含GF(2)上所有重量为偶数的n维向量,所以它的最小距离为2。任何奇数个错误的错误图样将使得Cspc中的码字变为一个非法码字,任何非零偶数个错误的错误图样将使得Cspc中的码字变为另一个合法码字。这表明单奇偶校验码能检测到任何包含奇数个错误的错误图样,但不能检测到包含非零偶数个错误的错误图样。

(n, n-1)单奇偶校验码的校验矩阵是H=[11 ··· 1],其系统形式的生成矩阵如下

其中,In-1是一个(n-1)×(n-1)的单位阵。易知(n,1)重复码的生成矩阵Grep和(n, n-1)单奇偶校验码的生成矩阵Gspc的任意一行的内积均为0,即n-1维的零向量)。因此,(n,1)重复码和(n, n-1)单奇偶校验码是对偶码。

重复码的软判决译码

假定(n,1)重复码的码字c用映射x=1-2c在AWGN信道上传输,接收向量为y,则条件LLR为

其中,Lc=2/σ2是信道值。如果L(u) > 0,则译码器判决u=0;否则判为u=1。因为Lc是常数,译码规则可简化为

可以证明,(n,1)重复码采用软判决译码的比特错误概率是

即与未编码系统相同。

2.4.2 循环冗余校验(CRC)码

循环冗余校验(Cyclic Redundancy Check, CRC)码是一类(缩短的)循环码,因为其编译码非常简单,并且具有优秀的突发错误检测能力,所以CRC码经常用于错误检测系统。在5G通信系统中,CRC码被用于控制信道级联Polar编码的外码;在数据信道的编码中,LDPC码之前也使用了CRC码。与普通循环码一样,CRC码也有二元码与多元码之分,这里主要讨论二元CRC码。

由于CRC码通常是通过缩短方法从循环码导出的,因此CRC码也用一个生成多项式g(x)来定义。关于g(x)的选择,Gallager[68]指出,通常在实践中选择g(x)=(x+1)b(x),其中b(x)是本原多项式。(x+1)项保证所有奇数重量的错误图样是可检测的,因为在模2算术下,没有一个奇数项多项式包含(x+1)因子。关于不同次数的不同多项式的详细讨论参见文献[70]。

考虑信息位长度为k、码长为n的系统CRC码。令u(x)=u0+u1x+· · ·+uk-1xk-1是待编码的消息向量u=(u0, u1, · · ·, uk-1)的多项式表示,c(x)=c0+c1x+· · ·+cn-1xn-1是码字c=(c0, c1, · · ·, cn-1)的多项式表示。注意向量与多项式系数的对应关系,这里将最高次项系数放在最右边,并且假定编码时最高有效位先发送:cn-1, cn-2, · · ·。

g(x)=g0+g1x+· · ·+gr-1xr-1+xr是次数为r=n-k的码生成多项式,其系数giGF(2)。令Rg(x)[f(x)]表示取多项式f(x)除以g(x)的余式的操作,则与普通循环码一样,CRC码的系统形式编码运算可描述为

其中xru(x)对应于向量u的移位运算

CRC校验比特(p0, p1, · · ·, pn-k-1)由多项式p(x)=Rg(x)[xru(x)]给出。为方便起见,在本节中使用G=[P Ik]系统形式的生成矩阵表示。

式(2.31)中的多项式除法可用反馈移位寄存器实现,整个CRC码的系统编码器电路如图2.5所示。编码前,r=n-k个移位寄存器的初始状态全清为0,门1开,输出选择开关接通A;然后输入信息序列u(x)的系数,高次位系数首先进入电路,它一方面作为码字的一部分送往信道;另一方面自动乘以xn-k后进入g(x)除法电路。k次移位后,移位寄存器中的内容为p(x)的系数,此时将门1关闭,输出选择开关接通B,再经过r次移位后,把寄存器中的校验位全部输出。这样,送往信道的码字c(x)为

c=(p0, p1, · · ·, pn-k-1, u0, u1, · · ·, uk-1)

图2.5 系统CRC码的编码电路

现在考虑CRC译码器。令接收向量的多项式表示为r(x)=c(x)+e(x),其中e(x)为错误图样,则伴随多项式

如果s(x)=0,则e(x)=0,即检测到r(x)中有一个或多个错误发生;否则,如果s(x)=0,则原来的消息向量u可从r(x)中立即提取得到。

在实践上,循环码(包括CRC码)用于检错时,伴随式计算可以很方便地用移位寄存器电路实现。考虑系统码的情况,接收向量r可以写为

在接收端,使用与发送端相同的编码器对接收到的信息块u进行编码,产生估计的校验块p′′。然后比较pp′′,如果它们不同,则说明r不是一个有效码字,接收序列中有错误存在。这种检错方法使得发送端的编码器与接收端的错误检测电路基本相同,从而简化了设计。

实际上,根据系统形式的校验矩阵,则有伴随式

s=rHT=p-p′′

表2.1列出了一些常用的不同长度CRC码的生成多项式[71]

表2.1 常用CRC码生成多项式

注意:循环码的生成多项式g(x)是GF(q)上的多项式(xn-1)的因子,所以给定g(x)的次数为r, CRC码的最大长度小于或等于g(x)定义的原循环码的码长n。例如,CRC-12码的生成多项式g12(x)整除x2047-1,这样g12(x)定义了一个码长为2047,维数为2047-12=2035的循环码,它能够对多达2035比特的数据进行编码。

CRC码的检错性能如下。

(1)一个由次数为r=n-k的生成多项式定义的循环码(或缩短循环码,CRC码)C能够检测长度br比特的所有突发错误图样。

一个长为b的突发错误是这样的错误图样:第一位错误符号和最后一位错误(含最后一位)符号之间的比特数是b。例如,“.....00001×××××1000.....”是一个长度为7的单突发错误图样,其中×为任意{0,1}符号。

(2)长度为b=n-k+1的不可检测突发错误图样在整个b长错误图样中的占比是2-(n-k-1),即码C能够检测百分之(1-2-(n-k-1))× 100的长度为n-k+1的突发错误。

(3)长度为b>n-k+1的不可检测突发错误图样在整个b长错误图样中的占比是2-n+k

例如,CRC-12码能够检测所有长度≤12的单个突发错误,能够检测99.95%的长度为13的突发错误,还能够检测99.976%的长度大于13的突发错误。

2.4.3 Simplex码

在5G通信系统中,对控制信息的编码除了重复码与Polar码,还用到了单纯形(Simplex)码,在此对Simplex码的概念进行简要介绍。

GF(q)上码长为n、维数为m的Simplex码是GF(q)上码长n=(qm-1)/(q-1)的(n, n-m,3) Hamming码的对偶码,其生成矩阵是一个m×n的矩阵,矩阵的列由来自于GFn(q)的每一个一维子空间的一个非零向量所组成。GF(q)上(n, m)Simplex码中每一个非零码字的重量为qm-1

5G通信系统中使用了二元(3,2)Simplex码,其生成矩阵为

2.4.4 Hadamard矩阵与Hadamard码[57]

定义2.3 一个n阶Hadamard矩阵H是一个由{+1, -1}作为元素组成的n×n矩阵,并且满足HHT=nI

由定义可知,Hadamard矩阵的任意两行是正交的(内积为0)。为方便起见,下面将用Hn表示n阶Hadamard矩阵。Hadamard矩阵的逆阵可简单地用下式求得。

从上式可得HTH=nI。因此,Hadamard矩阵的任意两列也是正交的。

下列定理给出了Hadamard矩阵阶数n的有效取值。

定理2.1 如果一个n阶Hadamard矩阵存在,则n取值为1、2、4或4的倍数。

关于Hadamard矩阵的构造,主要有两种方法:Sylvester构造和Paley构造。Sylvester构造很简单,即如果Hn是一个n阶Hadamard矩阵,那么

其中⊗表示两个矩阵的Kronecter积运算。例如

关于Paley构造,这里不做介绍,读者可参见相关文献[57]

Hadamard码

将Hadamard矩阵Hn中的1替换为0, -1替换为1,就得到一个二进制Hadamard矩阵An。基于An,我们能够构造几种不同类型的Hadamard码。

(1)如果删掉An的最左列,剩下的行形成一个长为n-1的Hadamard码,它共包含n个码字,最小距离dmin=n/2。该码也称为Simplex码。

(2)如果将中的n个码字的补集(complements)添加进来,则得到码,它包含2n个长为n-1的码字,最小距离dmin=n/2-1。

(3)如果将Ann行的补集补充进来,则得到码,它包含2n个长为n的码字,最小距离dmin=n/2。

注意,如果n等于2m,则由Sylvester构造的Hadamard矩阵而得到Hadamard码是线性的。