前言
在《Polar Code(2)编码原理》中详细阐述了Polar Code的编码原理。为了更好的理解编码的过程,本文将给出一个编码实例。
设码长 N = 8 N=8 N=8,信息比特数 K = 4 K=4 K=4,下面列出所有使用到的公式。
c 1 N = u 1 N G N c_1^N=u_1^NG_N c1N=u1NGN
G N = B N F ⊗ n G_N=B_NF ^{\otimes n} GN=BNF⊗n
F ⊗ n = F ⊗ F ⊗ ( n − 1 ) F^{\otimes n}= F\otimes F^{\otimes (n-1)} F⊗n=F⊗F⊗(n−1)
F = [ 1 0 1 1 ] F=\left [ \begin{matrix} 1 & 0\\ 1 & 1 \end{matrix} \right] F=[1101]
B N = R N ( I 2 ⊗ B N / 2 ) B_N=R_N(I_2\otimes B_{N/2}) BN=RN(I2⊗BN/2)
B 2 = I 2 B_2=I_2 B2=I2
编码步骤
1.信道可靠性估计
假设对于各二进制删除信道(BEC),已计算出各个分裂信道的巴氏参数 Z ( W N ( i ) ) Z(W_N^{(i)}) Z(WN(i))。
2.比特混合
假设通过第一步得到巴氏参数最小的4个子信道的序号为 { 4 , 6 , 7 , 8 } \{4,6,7,8\} {
4,6,7,8},则信息比特序号集合记为
A = { 4 , 6 , 7 , 8 } A=\{4,6,7,8\} A={
4,6,7,8}
则冻结比特序号集合为
A c = { 1 , 2 , 3 , 5 } A^c=\{1,2,3,5\} Ac={
1,2,3,5}
设信息比特集合为 ( i 1 , i 2 , i 3 , i 4 ) = ( 1 , 1 , 1 , 1 ) (i_1,i_2,i_3,i_4)=(1,1,1,1) (i1,i2,i3,i4)=(1,1,1,1),冻结比特集合为 { 0 , 0 , 0 , 0 } \{0,0,0,0\} {
0,0,0,0},则最终得到
u 1 8 = 0 , 0 , 0 , i 1 , 0 , i 2 , i 3 , i 4 = [ 0 , 0 , 0 , 1 , 0 , 1 , 1 , 1 ] u_1^8={0,0,0,i_1,0,i_2,i_3,i_4}=[0,0,0,1,0,1,1,1] u18=0,0,0,i1,0,i2,i3,i4=[0,0,0,1,0,1,1,1]
3.构造生成矩阵
回忆: G N = B N F ⊗ n G_N=B_NF ^{\otimes n} GN=BNF⊗n
B 8 = R 8 ( I 2 ⊗ B 4 ) B_8=R_8(I_2\otimes B_4) B8=R8(I2⊗B4)
B 4 = R 4 ( I 4 ⊗ B 2 ) B_4=R_4(I_4\otimes B_2) B4=R4(I4⊗B2)
计算:
B 2 = [ 1 0 0 1 ] B_2=\left [ \begin{matrix} 1 & 0\\ 0 & 1 \end{matrix} \right] B2=[1001]
I 2 ⊗ B 2 = [ 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 ] I_2\otimes B_2=\left [ \begin{matrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1 \end{matrix} \right] I2⊗B2=⎣⎢⎢⎡1000010000100001⎦⎥⎥⎤
R 4 R4 R4是由 I 4 I_4 I4变换而来,先排 I 4 I_4 I4的奇数列,再排 I 4 I_4 I4的偶数列:
R 4 = [ 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 ] ⇐ I 4 = [ 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 ] R_4=\left [ \begin{matrix} 1 & 0 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 1 \end{matrix} \right] \Leftarrow I_4=\left [ \begin{matrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1 \end{matrix} \right] R4=⎣⎢⎢⎡1000001001000001⎦⎥⎥⎤⇐I4=⎣⎢⎢⎡1000010000100001⎦⎥⎥⎤
B 4 = R 4 ( I 2 ⊗ B 2 ) = [ 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 ] ⋅ [ 1 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 ] = [ 1 0 0 0 0 0 1 0 0 1 0 0 0 0 0 1 ] B_4=R_4(I_2\otimes B_2)=\left [ \begin{matrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1 \end{matrix} \right] \cdot \left [ \begin{matrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1 \end{matrix} \right]=\left [ \begin{matrix} 1 & 0 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 1 \end{matrix} \right] B4=R<