基于5G的极化码编码设计与实现
2020-02-04袁钦李利花
袁钦 李利花
(南昌大学共青学院 江西省共青城市 332020)
目前,国内外对接近香农限的信道编码研究较多,最典型的有Turbo 码和高通主推的低密度奇偶校验码(LDPC)。它们的性能非常出色,但人们一直在寻找一种更好的接近香农限、编码和解码简单的方法。
极化码(Polar Code)自2008年提出,就成为了学术界研究的热点之一,逐渐成为5G 标准之一。其在直接提升网络覆盖及用户传输速率等方面,比LDPC 码和Turbo 码有着明显的优势,尤其是在信道编解码方面。
1 极化码原理及整体方案设计
Polar 码的构造就是选择信道的一个过程,选择良好的信道,它用于传输各种有效信息,即选择达到信道容量1 的信道,并通过计算的巴氏参数放弃近似为0 的子信道。
在二进制离散无记忆信道W 中,Polar 码输入包含三个信息,分别是信道、码长和信息比特长度,分别用W、N、K 来描述,表示成(W,N,K),其中码长其中K Polar 码编码实际上就是信息位和冻结位的选择问题。其选择方法是,子信道单独进行传输信息,将有效的信息传输出去,其对应的索引位就是信息位的集合A;同理选择子信道传输固定信息。其对应的索引就是冻结位的集合Ac。 首先,仿真前需要进行参数设置,具体设置如下:码块:block;码长:N;码率:R;信噪比:SNR(dB)、snr。 block,码块,指的是“一次信息发送动作所传递的信息位数”。N,码长,是“一个信息单元所占据的比特位数”。R,码率,就是有用信息占所传输信息的比例。SNR,即为信噪比(Signal Noise Ratio),其换算关系如下式:SNR(dB)=10*log10(snr)。 为了更加直观的表示出编码的过程,我们给出以下的编码流程图,如图1所示。 图1:Polar 码编码仿真流程图 图2:编码示意图 数组的定义,用于仿真前期数据准备 signal=randi([0,1],1,ST);%信息位比特,随机二进制数 frozen=zeros(1,FT);%固定位比特,规定全为0 encode =zeros(1,N * block);%编码后的比特 极化码的编码重点在于生成矩阵的产生,以及信息位、冻结比特位的选取。 生成矩阵是编码的关键。首先通过翻转矩阵RN来实现对输入的数据的比特翻转,然后进行信道极化,即信道的联合和信道的分裂。如图2所示。 仿真实现过程:先将向量下标减一后,转化为二进制数;再将得到的二进制数反序排列;最后将反序后的二进制数转化为十进制数,加一,这样就实现了整个的翻转。该翻转过程简化为矩阵运算,其中:。 图3:Matlab 仿真结果图 信道极化过程中,有一部分I(W)可以到达1,另一部分则趋近于0。需计算出联合、分裂后信道的巴氏参数,并进行排序,然后根据码率选择巴氏参数较小的信道作为信息位,剩余信道作为冻结位。具体代码如下: 数组 encode 就是我们得到的编码矩阵。 将源程序代码输入Matlab 后进行仿真运行,结果如图3所示。 图3 中,横坐标为信噪比,纵坐标为误码率,从图上结果可以看出,信噪比越大,信号的误码率(BER)就越小。 为研究Polar 码的编码和性能,本文使用Matlab 对Polar 编码进行仿真分析,达到了初步理论值。然而本设计还有许多不足,如在编码时叠加噪声失败,结果对比不够明显,未来可以改进编码方法,添加噪声进行对比和改善译码方法。1.1 仿真参数设置
1.2 编码设计
1.3 生成矩阵的产生
1.4 编码实现
2 仿真结果及分析
3 结论