浅谈polar码

 


目录

极化码预备知识:

极化码编码:

预备知识

对于B-DMC信道有两个重要的信道参数:

行向量(a1,…,aN)

运算符号

信道极化

信道联合

信道分裂

信道极化定理

极化编码

极化码译码

SC译码算法

SCL译码算法

路径度量值

CRC-SCL译码算法


极化码预备知识:

极化码是已知的唯一一种能够被证明“达到”香农限的信道编码方法。

极化码是通过信道极化现象,使可靠的信道传输信息比特,在不可靠的信道上传输冻结比特,做到了扬长避短。

极化码在设计的时候不考虑最小距离特性,而是利用信道联合和信道分裂的过程来选择具体的编码方案。而且在译码时也是采用概率算法。

码长=N的极化码,它利用信道W的N个独立副本,进行信道联合和信道分裂,得到新的N个分裂之后的信道,随着码长的增加,分裂之后的信道将向两个极端发展:其中一部分分裂信道会趋近于完美信道,即信道容量趋近于1的无噪声;而另一部分分裂信道会趋近于完全噪声信道,即信道容量趋近于0的信道。

原信道W的二进制输入对称容量记作I(W),那么当码长趋近于无穷的时候,信道容量趋近于1的分裂信道比例约为K=N×I(W):信息比特的数量,而信道容量趋近于0的比例约为N×(1−I(W)):冻结比特的数量。对于信道容量为1的可靠信道,可以直接放置消息比特而不采用任何编码,即相当于编码速率为R=1R=1;而对于信道容量为0的不可靠信道,可以放置发送端和接收端都事先已知的冻结比特,即相当于编码速率为R=0。那么当码长N→∞时,极化码的可达编码速率R=K/N=N×I(W)/N=I(W),即在理论上,极化码可以被证明是可达信道容量的。

对极化码可靠性度量有三个方法:巴氏参数法、密度进化法、高斯近似法

巴氏参数法:

浅谈polar码_第1张图片

密度进化法:

浅谈polar码_第2张图片

高斯近似法:

浅谈polar码_第3张图片


极化码编码:

预备知识

码长为N,信道极化,信息比特在容量趋于1的信道中传输、数量为K,其余容量趋于0的信道传输冻结比特、数量为P,N=K+P,码率R=K/N。

一个二进制输入离散无记忆信道(B-DMC)可表示为W:X→Y,X是输入符号集合,Y是输出符号集合,转移概率为W(y|x),x∈X,y∈Y,输入X是0或者1,Y和转移概率是任意值。对信道W的N次使用后的信道可表示为WN:XN→YN的转移概率为

对于B-DMC信道有两个重要的信道参数:

对称容量:

巴氏参数:

I(W)是信道速率的度量,在等概率输入下的可靠传输时的最大速率。(越大越好)

Z(W)是信道可靠性的度量,在只传输0或1下的最大似然判决错误概率的上限。(越小越好)

以上参数取值都是0到1,成反比,单位都是bit。

W为对称信道时,I(W)等于香农容量。W(0|0)=W(1|1)W(0|0)=W(1|1)且W(1|0)=W(0|1)、

W(y|0)W(y|1)=0W(y|0)W(y|1)=0或W(y|0)=W(y|1)都是对称信道。

行向量(a1,…,aN)

在这里简写成,其子项量为,例如表示一行5列的向量,其中我们可以知道,e是代表列序号偶索引的向量,o代表列序列奇索引的向量。

运算符号

⊕为模2加,⊗为克罗内克积(Kronecker Power)。记表示A的n次克罗内克积,有递归式并且定义A⊗0=[1]。记|A|表示集合A中元素的个数。

信道极化

信道极化分为信道联合和信道分裂。

信道联合

下图得到向量信道:,转移概率为:

浅谈polar码_第4张图片

下图得到向量信道:,转移概率为:

浅谈polar码_第5张图片

其中,是一种特殊的置换矩阵,称为逆洗牌操作。逆洗牌操作是指首先将原向量奇数位的所有元素抽出,然后按照各元素间的原始相对顺序排列看成新向量的前半段的元素,而剩下的元素按相对顺序自动看成新向量的后半段元素,即的操作,从u到x可以由表示。

下图是的2个独立副本联合产生信道,u首先转化成s:,输入为s,输出为

转移概率为   

浅谈polar码_第6张图片

信道分裂

信道极化的第二个阶段,将信道联合构成的复合信道分裂成N个二进制输入的坐标信道

转移概率为竖线前面是输出,后面是输入。

奇序分裂子信道和偶序分裂子信道的转移概率由两个递归式得到:

浅谈polar码_第7张图片

信道极化定理

对任意的B-DMC,信道W与任意,当N以2的幂次趋于无穷大时,极化信道中满足的信道数占信道总数N的I(w),满足的信道所占的比例为1-I(W)。

极化编码

极化码具有一般的二元线性分组码的基本编码要素,可以通过下列式子进行编码:

,其中u为原始比特序列、包含信息比特和冻结比特,x为编码后的序列,G为生成矩阵,码长为N。

极化码编码步骤:

1.极化信道可靠性估计

2.比特混合

3.构造生成矩阵

4.代入式子进行编码

具体分析:

1.极化信道可靠性估计:由下列式子计算巴氏参数。

巴氏参数越小越好。

2.比特混合:选择巴氏参数越小的K个分裂子信道传输信息比特,其他分裂子信道传输冻结比特。

3.构造生成矩阵:,其中,表示F的n次克罗内克积:是比特转置矩阵,用来完成比特反序重排的操作,具体操作是将原来的十进制序列号按二进制表示,首项为最高有效位,再将二进制序列反序,得到,最后以b1为最高位重新按十进制表示成,令输出序列的第j个元素取值为原序列的第i个元素。的递归定义式为,作用效果如下:,反映出了信道极化中的逆洗牌操作。

BEC(0.5)下(8,4)极化编码的例子

首先构造生成矩阵

浅谈polar码_第8张图片

在BEC信道下擦出概率为0.5,即,i=1,2,……8,根据一下公式可以得到的计算结果

浅谈polar码_第9张图片

得到:

浅谈polar码_第10张图片

可以看出,i=4,6,7,8时信道可靠性高根据公式,在冻结比特设置为0的情况下:

若给定信源序列为(1,0,1,1),对应的码字为(1,0,1,0,0,1,0,1)


极化码译码

信息序列u经过极化信道的传输得到码字x,在接收端接收到了y,译码器就是从接受的信息中恢复处信息序列u的估计值

SC译码算法

SC译码算法是polar码的基本算法,也是polar码的核心算法。该算法是一种连续消除译码算法,知道最后一个比特判决输出在得到最终的译码输出序列。对于参数的polar码编码,估计值通过下列公式判决得到:

其中,hi是一个判决函数,定义如下:

译码过程中,将转移概率之比定义为似然比(LR),也即单个比特的LR:

则第i个判决单元的判决准则为:

我们可以来通过两个递归的公式来得出信息的LR形式:

浅谈polar码_第11张图片

借助递归函数F和G函数:

其中:

递归终止条件是N=1。

浅谈polar码_第12张图片

上图是最左边是译码结果,最右边是初始LLR值。根据上面的式子经过递推可以得到初始估计值。

浅谈polar码_第13张图片

极化码的编码复杂度都是

优点:极化码在码长足够大时使用SC译码算法进行译码能够获得良好的渐进性能,并且在码长趋于无限长时,极化码被证明能够达到信道容量。

缺点:实际系统中,码长是有限的,由于SC译码算法的逐比特译码性能可能造成错误传输,导致其译码性能有限。

SCL译码算法

SCL译码算法主要是通过多保存一些译码路径来保证译码性能的正确性,同时也提出了牺牲较少的信息比特使用CRC对信息进行冗余校验,最后在SCL的译码后使用CRC来辅助译码路径的选择。当然与SC译码算法相比,SCL算法的计算复杂度和存储空间均为SC算法的L倍。

SC译码也可以表示成码树上的局部最优路径的搜索

浅谈polar码_第14张图片

每一条路对应一条选择路径,每一层仅搜索一层,最宽的线条表示路径选择的方向。因为后面比特的译码需要前面的信息比特估计值,如果有一个信息比特译码错误,那么错误传播还是会发生,最后整条路径都是错误的。

为解决这一问题,提出了以SC译码算法为基础的改进译码算法——SCL算法,即在译码的过程中能够保存最多L候选路径,可以减少路径出错的概率。我们需要设置合适的最大路径L值,在译码复杂度不是很高的情况下获得良好的译码性能。

 与SC算法一样,改进的算法依然从码树根节点开始,逐层依次向叶子节点层进行路径搜索。不同的是,每一层扩展后,选择路径度量值最小的L条,保存一个列表中,等待进行下一层的扩展。因此称该算法为串行抵消列表译码算法,并称参数L为搜索宽度。当L=1时,SCL算法为SC算法,当L≥2的k次幂时,SCL算法等于ML算法。

路径度量值

在SCL译码中,存在L条路径同时进行译码搜索,对于任意一条路径以及任意发送比特,对应的路径度量值定义如下:

其中,

如果发送端所有信息比特在{0,1}上均匀分布,那么对于任意两条不同路径,当且仅当成立时,有如下关系成立:

由上式可见,路径对应的转移概率越大,路径度量值越小。基于这种关系就完全可以在对数似然比上对2L条路径进行挑选。上式可以近似表示为:

但考虑译码过程中包含了信息比特和冻结比特,因此上式可以改写为:

其中对于信息比特的判决有:

SCL译码其实就是有L个SC译码同时进行。

 

例子:

假设原始比特序列,其中为信息比特,经过polar编码以后通过AWGN信道传输,假设接收端已知信道对数似然比为

则最终的最佳路径结果为:

浅谈polar码_第15张图片

从上图可以看到,最终的估计值为,这并不是最终的结果,因为极化编码是经过逆洗牌操作的(比特反转),(0 0 1 1)对应的位置为(1 3 2 4),所以最终的结果为(0 1 0 1)。

CRC-SCL译码算法

循环冗余校验是一种信道检测技术,在实际数字通信系统中已经得到了广泛应用。对于Polar码而言,在SCL译码结束时得到一组候选路径,能够以非常低的复杂度与CRC进行联合检测译码,选择能够通过CRC检测的候选序列作为译码器输出序列,从而提高译码算法的纠错能力。

CRC-SCL算法就是在信息比特中添加CRC校验比特序列,利用SCL译码算法正常译码获得L条搜索路径,然后借助“正确信息比特可以通过CRC校验”的先验信息,对这L条搜索路径进行挑选,若校验结果为0,就认为该条路径是正确的,从而输出最佳译码路径。给定polar码码长为N,CRC校验码码长为m,若极化码的信息为长度为K,编码信息比特的长度为k,如图1所示,有K=k+m。Polar码的码率仍然为R=K/N。

浅谈polar码_第16张图片

上图是算法的编译码过程。

步骤:

首先牺牲一定位数的比特数,对信息比特序列做CRC校验,然后进行极化码编码,在译码端SCL译码结束后,对最终保留的L条路径都进行CRC校验,最终选择输出路径即为信息比特的译码路径。

译码输出的路径的挑选规则如下:

1.若只有一条路径通过CRC校验,则输出该路径;
2.若有多条路径经过CRC校验,选择似然概率最大的那条路径;
3.若没有路径通过CRC校验,输出似然概率最大的那条路径。

浅谈polar码_第17张图片

算法步骤:定义为SCL译码码树第i层对应的候选路径集合,搜索列表宽度为L的CRC-aided SCL译码算法。

1.初始化:候选路径列表初始化为一条空路径,对应的路径度量值设置为0:

2.扩展:对于列表中的每个序列,产生2个长度为i的序列,分别对应译码为比特0或1,即,对于每个更新路径度量值。

3、竞争:若经过步骤2后,列表中的路径数未达到L条,则跳过此步;否则,保存路径度量值最小的L条路径,并删除其余路径。

4.CRC辅助路径选择:重复步骤2和3直到码树第N层。把列表中的候选路径按度量值从小到大排序,依次进行CRC校验。第1个通过CRC校验的路径即为译码器输出的估计序列。若没有路径通过CRC检测,则把第1条路径作为译码器输出估计序列。

算法优点:能够降低SCL的复杂度。

最终的流程图:

浅谈polar码_第18张图片

你可能感兴趣的:(公开)