系统极化码和非系统极化码的性能比较
2019-07-11李晖叶铭童强程杰王力杰
李晖,叶铭,童强,程杰,王力杰
(1. 海南大学信息科学技术学院,海南 海口 570228;2. 海南省海洋通信与网络工程技术研究中心,海南 海口 570228)
1 引言
极化码是 5G通信中的一种控制信道编码方案[1],也是一种可达二进制输入离散无记忆信道(BDMC, binary-input discrete memoryless channel)对称容量的编码方案[2]。然而,极化码在串行抵消(SC, successive cancellation)译码算法下容易受到差错传播的影响,且在中短码长上的性能并不理想[3]。最初介绍的极化码是一类非系统线性分组码,即所谓的非系统极化码(NSPC, non-systematic polar code)[4]。因为任意的分组码可转换为系统码,所以非系统极化码也能被系统地编码成系统极化码(SPC, systematic polar code)[5-6]。非系统极化码被系统编码后未必能保持原有的低复杂度特性;就性能而言,被系统编码后的系统极化码也未必能比非系统编码的非系统极化码具有优势,对此人们并不清楚。与基于2×2核矩阵的极化码一样,结构不同的基于多维核矩阵的极化码也有系统极化码和非系统极化码之分。当l>2时,称l×l核矩阵为多维核矩阵。
为了优化极化码在中短码长上的性能,本文介绍了系统极化码和非系统极化码的编码方法,这里介绍的系统极化码的编码方法是在保证误帧率(FER, frame error rate)性能不变的情况下保留低复杂度的特性[4]。鉴于通信系统中大多设计往往将干扰最有害的高斯白噪声作为标准,本文的仿真实验是在加性高斯白噪声(AWGN, additive white Gaussian noise)信道下进行的。仿真结果表明,系统极化码相对非系统极化码有相同的误帧率性能,但具有更好的误码率(BER, bit error rate)性能。这从侧面证明了系统极化码比非系统极化码在 SC译码算法下对差错传播的抵抗性更强,也验证了Arikan等[3-4,7]的研究成果。因此,可以用这类系统极化码来代替非系统极化码,以弥补极化码在中短码长上性能的不足。同时,与非系统极化码相比,系统极化码获得了一定的编码增益,这有利于极化码在5G通信中的应用。
2 非系统极化码
以基于 2×2核矩阵的极化码为例,令码长为N=2n,n=1,2,…,信息块长为K,那么码率信道W的转移概率由W(y|x)表示。给定一个BDMC的信道W:χ→γ,其中x∈χ,y∈γ,χ={0,1}和γ分别表示输入和输出字母表,那么对称信道容量为
对于任意一个BDMC的信道W,当码长N足够大时,一部分无噪声信道的信道容量会趋近于对称信道容量,而另一部分信道则是完全不可靠的。以好的信道传输信息比特,以不可靠的信道传输固定比特,则极化码理论上可达信道容量。对于二进制删除信道(BEC, binary erasure channel),信道的可靠性通过巴氏(Bhattaharyya)参数估计[3];对于其他信道,信道的可靠性能够通过密度进化或高斯近似方法计算[8-9]。事实上,对称容量越大,信道的可靠性也就越大。集合A是可靠信道的集合,即是集合{1,...,N}的任意一个子集。传输固定比特的信道集合由A的补集Ac表示。给定一个码长N,极化码的编码方式为
其中,源码字表示要传输的比特,它包含信息比特uA和固定比特uAc;码字表示源码字经过编码后的比特;GN表示N阶生成矩阵,定义为
其中,BN表示位反转置换矩阵;表示核矩阵;⊗n表示n次克罗内克积。将码源字和生成矩阵拆分成两部分,即和那么式(3)可修改为
3 系统极化码
为了考虑极化码各种可能的系统编码方案,正如式(5)中所规定的,本文把码字也拆分成两部分,即是集合{1,...,N}的任意一个子集。式(5)可修改为[11]
其中,GAB表示生成矩阵GN的子矩阵,包含数组的元素。这里也可以将集合A和集合B看成指示行数的指数集合。对于极化码的系统编码,xB发挥着与uA在非系统编码中作为信息携带者相同的作用,本文可以认为xB是码字x1N仅包含信息比特的部分,而uAc和之前一样是固定的。对于一个给定的参数为(A,uAc)的非系统译码器,如文献[4]中提到的那样,若式(6)和式(7)在uA和xB的可能取值中建立一个一一对应的关系,那么就存在一个参数为(B,uAc)的系统译码器。经过这样的系统编码后,极化码转换成可保留原有低复杂度特性的系统极化码。
相似地,当集合A和集合B有相同数目的元素,而GAB又是一个可逆矩阵,参数为(A,uAc)的非系统极化码也能够通过系统编码转换成参数为(B,uAc)且可保留原有低复杂度特性的系统极化码[4]。在这种情况下,计算式(8)并将得到的uA代入式(7)中,参数为(B,uAc)的系统译码器就能实现的映射。事实上,目前已有不少的系统编码的简化方案[5,11]。例如,文献[10]提及一种保留原有低复杂度特性的系统极化码的编码方法,其核心内容是将SC译码器作为系统极化码的编码器。
非系统极化码作为一种线性分组码,可以通过系统编码的方式转换成系统码,即系统极化码。系统极化码相对于非系统极化码,不仅在编码构造上有所差异,在译码处理上也有所不同[12-13]。经过译码器判决后,在接收端得到了一组完整的二进制数y,而固定比特uAc是已知的,这些对于系统极化码和非系统极化码是一样的。译码的主要工作就是在已知这 2个参数的情况下给出源码字的估计,固定向量可以忽略。但是,对于非系统极化码而言,译码器在产生源码字的估计和输出其仅包含信息比特部分uA的估计后就停止工作,误帧率和误码率的统计是通过比较uA和完成的。对于系统极化码而言,译码器在产生后还要计算码字的估计并输出其仅包含信息比特部分的估计,误帧率和误码率的统计是通过比较xA和完成的。系统极化码和非系统极化码在译码处理上的差异如图1所示。
图1 系统极化码和非系统极化码的译码处理
4 系统极化码的性能分析
第2节和第3节已介绍了系统极化码和非系统极化码在编码构造和译码处理上的差异,本节将提供充足的证据证明系统极化码比非系统极化码具有更好的性能。这里进行的所有的仿真实验是在AWGN信道下对不同码长和不同码率的极化码进行的,调制方式均为二进制相移键控(BPSK, binary phase shift keying)。本文也采用不同的译码算法对结构上不同的系统极化码和非系统极化码进行仿真分析。
图 2给出的是在 SC译码算法下,当码长N=256,码率R分别为0.36、0.50、0.84时的SPC和NSPC的误帧率性能曲线。通过观察图2可以发现,SPC和NSPC具有相同的误帧率性能。而且,码率越小,极化码的误帧率性能越好。
图2 码长N=256时,不同码率的SPC和NSPC在SC译码算法下的误帧率性能曲线
然而,图2并不能充分地证明SPC和NSPC具有相同的误帧率性能。为此,本文考虑了不同码长的极化码。图3为当码率R=0.50,码长N分别为256、512、1 024时SC译码所得的误帧率性能曲线。由图3可知,仿真结果再次证明SPC和NSPC的误帧率性能是一致的。当然,在信噪比较高的区间,码长越大,极化码的误帧率性能越好。
图3 码率R=0.50时,不同码长的SPC和NSPC在SC译码算法下的误帧率性能曲线
图4为当码率R=0.50时,码长N=256的SC译码和码长N=512的SCL译码所得的NSPC和SPC的误码率性能曲线。SCL译码器的列表大小设置为32。在相同的仿真情况下,SPC明显比NSPC具有更好的误码率性能。例如,图4中SCL译码下误码率达到10-3时,SPC的信噪比约为1.8 dB,而NSPC的信噪比约为2.2 dB,因而SPC比NSPC获得了将近0.4 dB的编码增益。同时也可以看出,码长对极化码性能的影响同样适用于SPC,即码长越长,SPC的误码率性能越好。
图4 码率R=0.50时,不同码长的SPC和NSPC的误码率性能曲线
基于3×3核矩阵的SPC和NSPC[14-15]的误码率性能的仿真结果如图5所示。从图5中可以看出,对于码长类型为N=3n形式的极化码,仿真结果表明SPC比NSPC具有更好的误码率性能。值得注意的是,前文进行仿真实验的极化码码长类型为N=2n形式,而这里仿真的极化码码长类型为N=3n形式。换句话说,前者是基于2×2核矩阵的极化码,后者是基于3×3多维核矩阵的极化码,这2种极化码在结构上是不同的。此处码长N=243,码率R=0.50,基于复杂度方面的考虑采用的是SCL译码算法[16-17],列表大小设置为32。极化码还有其他高性能的译码算法,如串行抵消堆栈(SCS, successive cancellation stack)和循环冗余校验-串行抵消列表(CRC-SCL,cyclic redundancy check-successive cancellation list)等译码算法[18-19]。
图5 码长N=243、码率R=0.50时的SPC和NSPC在SCL译码算法下的误码率性能曲线
综上所述,本文从不同码率、不同码长和不同译码算法以及不同结构的极化码等方面系统地分析了SPC和NSPC的性能。仿真结果证明了SPC和NSPC具有相同的误帧率性能,但前者具有更佳的误码率性能。文献[4-5]论述和证明了SPC相应的编码方法及其具有与NSPC同样的编码复杂度。因此,极化码可通过系统编码方案来弥补其在中短码长上性能的不足,而不必付出编码复杂度高的代价。同时,文献[3]指出基于2×2核矩阵的极化码易受到差错传播的影响,文献[4]在特定的码长、码率和译码算法的条件下说明基于2×2核矩阵的SPC比NSPC对差错传播具有较强的抵抗性,而文献[7]在特定码长、码率等仿真条件下研究对比了基于2×2核矩阵的SPC和NSPC的性能。但这些文献并未系统地论证SPC和NSPC的性能差异性以及SPC对差错传播的抵抗性。本文较系统地对SPC和NSPC的性能差异性进行了研究,这些仿真结果从侧面证明了SPC在SC译码算法下对差错传播的抵抗性比NSPC更强,也佐证了上述文献的研究成果。此外,文献[4-5]并未对SPC和NSPC的性能差异性进行详细的分析。文献[11]提出了一种基于降维裂解策略的 SPC并行编码方案,但涉及非系统极化编码和系统极化编码方案及其相应性能的研究较少,该编码方案降低了计算复杂度,但并不能改善极化码的性能。
SPC和NSPC的性能差异性的机理与极化码基于信道极化现象的编码思想有关。当码长足够大时,信道极化产生的一部分信道的信道容量会逼近1,而另一部分的信道的信道容量则逼近0,用信道容量大的、几乎无噪声的信道传输含有信息量的信息比特,又用信道容量小的、充满噪声的信道传输固定比特,这样极化码便在理论上可达信道容量,实现性能的最优化。当码长足够大时,信道两极分化,因此也需要信息比特和固定比特的两极分化。NSPC仅仅是将源码字拆分成信息比特和固定比特2个部分,而SPC在编码步骤上将源码字和码字都拆分成信息比特和固定比特2个部分,使信息比特和固定比特的分化更加明显。这样SPC会把更多含有信息量的信息比特分配到信道容量逼近1的信道上,在传输的总码数不变的情况下,误码的次数会更少,所以SPC比NSPC具有更好的误码率性能。此外,译码统计误码率时,NSPC比较的是源码字仅包含信息比特的部分和源码字仅包含信息比特部分的估计,而SPC比较的是码字仅包含信息比特的部分及其估计,这样也会使SPC和NSPC的误码率性能有所不同。
SPC比NSPC对差错传播具有更强的抵抗性,这是因为SPC将码字进一步有效分割,信息比特被分配到码字而不是源码字,信息比特更多地被分配到可靠信道上,系统编码中的信息比特能够直接地通过信道进行观察。同时,误帧率一般是指译码后有误的帧数占总帧数的比例,因此系统编码后的极化码在误帧率性能上并没有什么变化。然而,源码字估计中的任何译码错误本该在进一步编码这一步骤中被放大,但是仿真结果却不是这种情况。这个问题是未来值得研究的一个课题。本文的仿真实验是采用SC和SCL译码算法进行译码的,所得出的结果还需要得到置信传播、SC的其他改进和辅助算法等译码算法的进一步验证。
5 极化码性能的理论分析
其中,Ad表示码字重量为d的码字数目。为了更好地分析分组码C的误码率性能,式(9)可扩展成码字输入输出质量枚举函数(IOWEF, input-output weight enumerating function),即
5.1 距离谱的定义和计算
若给定一个二进制(n,k)线性分组码C,则C的码字重量枚举函数(WEF, weight enumerating function)可定义为
其中,Am,d表示输入码字重量为m的信息产生的输出码字重量为d。距离谱为线性分组码C对应的WEF和 IOWEF的码字重量分布。令路径l∈{0,1,…,L-1}和译码层次i∈{0,1,…,N-1},则新的路径度量定义为[20]
路径似然的比较等同于路径度量值的比较,利用基于对数似然值路径度量的SCL译码算法,计算极化码距离谱的流程如图6所示[14]。
图6 计算极化码距离谱的流程
5.2 误码率和误帧率性能的理论分析
距离谱可用来分析分组码的性能,而极化码实际上也是一种线性分组码,所以极化码的误码率和误帧率性能也能通过距离谱分析。相应的距离谱可按图 6所示的流程获得。误帧率Pf{ε}的上界可由联合界获得[21],即
其中,dε表示事件,码字重量d≥1的码字比全0码字更接近向量,函数这里利用联合界可得出误帧率的上界。同样地,利用联合界,可得误码率的上界[22]
其中,K表示信息块长。具体地,通过图6所示的步骤完成距离谱的计算,获得WEF和IOWEF,再将生成的WEF和IOWEF等相关参数代入式(12)和式(13),就可以获得极化码的误帧率和误码率性能的上界。式(12)和式(13)中小于或等于号的左边表示极化码的误帧率或误码率性能的上界,右边则是对应的误帧率和误码率性能的上界,这里的联合界需要和相关的距离谱配合才能得出差错性能的上界。值得注意的是,这里的性能上界是指极化码在理论上误码率或误帧率性能所能达到的上限,可用于分析极化码的性能趋势,但并不代表具体的性能。
按照图6中的方法得出生成的WEF,再根据式(12)就能获得SPC和NSPC的误帧率性能上界,如图7所示。仿真条件为码率R=0.50,列表L=32,码长N=128。其中,虚线表示极化码误帧率的性能上界,即极化码理论上所能达到的误帧率最大值;而实线表示通过仿真分析达到的极化码误帧率性能。从图7中可以看出,NSPC具有和SPC一样的FER性能,并逐渐逼近其性能上界,NSPC和SPC的误帧率性能上界几乎相等,同时SPC的FER性能上界曲线却有大于1的部分,这正说明了差错性能上界只是理论上的最大数值,而不是实际上所能达到的FER性能。仿真得到的误帧率性能和对应的性能上界并没有冲突,进一步验证了图2和图3仿真结果的正确性。
根据图6计算出的WFE和IOWFE以及式(13),可得出极化码误码率的性能上界。在同样的上述仿真条件下,得出SPC与NSPC的误码率性能上界,如图8所示。图8曲线表示极化码在一定条件下所能达到的最大BER性能,即BER性能上界。和实际情况一样,SPC比NSPC具有更好的BER性能上界。这里得出的SPC和NSPC的BER性能上界仍然有差异,与图4和图5中这两者的BER性能差异相呼应。
图7 SPC与NSPC在SCL译码算法下的误帧率上界
图8 SPC与NSPC在SCL译码算法下的误码率上界
6 结束语
本文在不同码率、不同码长、不同码长类型和不同译码算法等仿真条件下,比较详细地证明了SPC和NSPC具有相同的误帧率性能,但前者具有更好的误码率性能。同时,本文给出了SPC和NSPC的性能差异的机理,也论证了SPC对差错传播具有更强的抵抗性,并分析了其原因。此外,利用距离谱分析极化码理论上的误码率和误帧率性能,进一步验证了仿真结果的合理性。在采用相同译码算法的情况下,使用系统编码方案有利于优化极化码的性能以及在5G通信中的应用。将NSPC转换成SPC的关键在于寻到合适的指数集合A和B,使生成矩阵的子矩阵GAB是可逆矩阵。对于多维核矩阵构造的极化码,如码长类型为N=5n形式的极化码,系统编码能否有利于其性能的优化,也是未来值得研究的一个方向。