当前位置:   article > 正文

Polar码(2)- Polar编码

polar编码

       信道通过信道合并和分裂后,比特信道的容量产生极化现象,一部分子信道的容量趋向于1(“好”信道),另一部分的信道的容量趋向于0(“坏”信道)。因此,我们在“好”信道上发送信息比特,在“坏”信道上发送冻结比特(发端和收端都已知的比特信息)。本文主要介绍Polar的编码过程。
       对于给定的比特输入 u 1 N = ( u 1 , u 2 , . . . , u N ) T u^{N}_{1}=(u_1,u_2,...,u_N)^T u1N=(u1,u2,...,uN)T,其中N为码长,则编码后的结果为
x 1 N = u 1 N ∗ G N x^{N}_{1}=u^{N}_{1}*G_{N} x1N=u1NGN       其中 G N G_{N} GN N × N N \times N N×N的生成矩阵。进一步,对子信道进行选择,假设信道比特选择的子信道集合为 A A A,在A中的子信道上传输信息比特;另外 A c = ( 1 , 2 , . . . , N ) − A A_{c}=(1,2,...,N)-A Ac=(1,2,...,N)A,在 A c A_c Ac集合中的子信道传输冻结比特; G N ( A ) G_N(A) GN(A) G N G_N GN的子信道;用公式可表示为 x 1 N = u A G N ( A ) ⊕ u A c G N ( A c ) x^{N}_{1}=u_{A}G_{N}(A)\oplus u_{A_{c}}G_{N}(A_{c}) x1N=uAGN(A)uAcGN(Ac)       众所周知,Polar是陪集码的一种特例,因此,以 G N G_N GN为生成矩阵生成的陪集码可以由参数 ( N , K , A , u A c ) (N,K,A,u_{A_c}) (N,K,A,uAc)确定,其中K为信息比特的长度; N = 2 n N=2^{n} N=2n为所有分裂子信道的数目;K/N即为码率;A为信息比特的索引集合; A c = ( 1 , 2 , . . . N ) − A A_{c}=(1,2,...N)-A Ac=(1,2,...N)A为冻结比特的索引集合; u A c u_{A_c} uAc为冻结比特信息,通常我们将冻结比特信息全部置为0。
       但在实际中,为了Polar译码的递归便利性,我们采用如下Polar生成矩阵进行编码
G N = B N F ⊗ n G_{N}=B_{N}F^{\otimes n} GN=BNFn       其中有 B N = R N ( I 2 ⊗ B N / 2 ) B_{N}=R_{N}(I_2 \otimes B_{N/2}) BN=RN(I2BN/2) B 2 = I 2 B_{2}=I_{2} B2=I2 F ⊗ n = F ⊗ F ⊗ n − 1 F^{\otimes n}=F \otimes F^{\otimes n-1} Fn=FFn1 F = [ 1 0 1 1 ] F=

[1011]
F=[1101]       上式中的 R N R_{N} RN为奇偶分离矩阵;具体 G N G_{N} GN的推导过程如下
       根据如下图递归编码结构有 G N = ( I N / 2 ⊗ F ) R N ( I 2 ⊗ G N / 2 ) , N ⩾ 2 , G 1 = I 1 G_{N}=(I_{N/2} \otimes F)R_{N}(I_{2} \otimes G_{N/2}),N\geqslant 2,G_{1}=I_{1} GN=(IN/2F)RN(I2GN/2)N2G1=I1
在这里插入图片描述
       根据交换律有 ( I N / 2 ⊗ F ) R N = R N ( F ⊗ I N / 2 ) (I_{N/2} \otimes F)R_{N}=R_{N}(F \otimes I_{N/2}) (IN/2F)RN=RN(FIN/2)       对应的信道极化图为
在这里插入图片描述

       因此,上式可变换为 G N = R N ( F ⊗ I N / 2 ) ( I 2 ⊗ G N / 2 ) = R N ( F ⊗ G N / 2 ) , N ⩾ 2 G_{N}=R_{N}(F \otimes I_{N/2})(I_{2} \otimes G_{N/2})=R_{N}(F \otimes G_{N/2}),N\geqslant 2 GN=RN(FIN/2)(I2GN/2)=RN(FGN/2)N2       进一步,用 G N / 2 = R N / 2 ( F ⊗ G N / 4 ) G_{N/2}=R_{N/2}(F \otimes G_{N/4}) GN/2=RN/2(FGN/4)做等量替换,则有
G N = R N ( F ⊗ ( R N / 2 ( F ⊗ G N / 4 ) ) ) = R N ( I 2 ⊗ R N / 2 ) ( F ⊗ 2 ⊗ G N / 4 ) G_{N}=R_{N}(F \otimes (R_{N/2}(F \otimes G_{N/4})))=R_{N}(I_{2}\otimes R_{N/2})(F^{\otimes 2}\otimes G_{N/4}) GN=RN(F(RN/2(FGN/4)))=RN(I2RN/2)(F2GN/4)       根据性质 ( A C ) ⊗ ( B D ) = ( A ⊗ B ) ( C ⊗ D ) (AC) \otimes (BD)=(A \otimes B)(C \otimes D) (AC)(BD)=(AB)(CD)并令 A = I 2 , B = R N / 2 , C = F , D = F ⊗ G N / 4 A=I_{2},B=R_{N/2},C=F,D=F \otimes G_{N/4} A=I2B=RN/2C=FD=FGN/4,则有 G N G_{N} GN的最终表达式
G N = B N F ⊗ n G_{N}=B_{N}F^{\otimes n} GN=BNFn       其中 B N = R N ( I 2 ⊗ R N / 2 ) ( I 4 ⊗ R N / 4 ) ⋯ ( I N / 2 ⊗ R 2 ) B_{N}=R_{N}(I_{2} \otimes R_{N/2})(I_{4} \otimes R_{N/4})\cdots (I_{N/2} \otimes R_{2}) BN=RN(I2RN/2)(I4RN/4)(IN/2R2)       进一步 B N B_{N} BN的化简形式为 B N = R N ( I 2 ⊗ B N / 2 ) B_{N}=R_{N}(I_{2} \otimes B_{N/2}) BN=RN(I2BN/2)

参考文献:Channel Polarization: A method for constructing capacity-achieving codes for symmetric binary-input memoryless channels, Erdal Arikan

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/575113
推荐阅读
相关标签
  

闽ICP备14008679号