精华内容
下载资源
问答
  • 为了更好的理解编码的过程,本文将给出一个编码实例。 设码长N=8N=8N=8,信息比特数K=4K=4K=4,下面列出所有使用到的公式。 c1N=u1NGNGN=BNF⊗nF⊗n=F⊗F⊗(n−1)F=[1011]BN=RN(I2⊗BN/2)B2=I2c_1^N=u_1^NG_N \\ G_N...

    前言

    《Polar Code(2)编码原理》中详细阐述了Polar Code的编码原理。为了更好的理解编码的过程,本文将给出一个编码实例。
    设码长N=8N=8,信息比特数K=4K=4,下面列出所有使用到的公式。
    c1N=u1NGNc_1^N=u_1^NG_N
    GN=BNFnG_N=B_NF ^{\otimes n}
    Fn=FF(n1)F^{\otimes n}= F\otimes F^{\otimes (n-1)}
    F=[1011]F=\left [ \begin{matrix} 1 & 0\\ 1 & 1 \end{matrix} \right]
    BN=RN(I2BN/2)B_N=R_N(I_2\otimes B_{N/2})
    B2=I2B_2=I_2

    编码步骤

    1.信道可靠性估计

    假设对于各二进制删除信道(BEC),已计算出各个分裂信道的巴氏参数Z(WN(i))Z(W_N^{(i)})

    2.比特混合

    假设通过第一步得到巴氏参数最小的4个子信道的序号为{4,6,7,8}\{4,6,7,8\},则信息比特序号集合记为
    A={4,6,7,8}A=\{4,6,7,8\}
    则冻结比特序号集合为
    Ac={1,2,3,5}A^c=\{1,2,3,5\}
    设信息比特集合为(i1,i2,i3,i4)=(1,1,1,1)(i_1,i_2,i_3,i_4)=(1,1,1,1),冻结比特集合为{0,0,0,0}\{0,0,0,0\},则最终得到
    u18=0,0,0,i1,0,i2,i3,i4=[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]

    3.构造生成矩阵

    回忆GN=BNFnG_N=B_NF ^{\otimes n}
    B8=R8(I2B4)B_8=R_8(I_2\otimes B_4)
    B4=R4(I4B2)B_4=R_4(I_4\otimes B_2)
    计算
    B2=[1001]B_2=\left [ \begin{matrix} 1 & 0\\ 0 & 1 \end{matrix} \right]
    I2B2=[1000010000100001]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]
    R4R4是由I4I_4变换而来,先排I4I_4的奇数列,再排I4I_4的偶数列:
    R4=[1000001001000001]I4=[1000010000100001]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]
    B4=R4(I2B2)=[1000010000100001][1000010000100001]=[1000001001000001]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]
    I2B4=[1001][1000001001000001]=[1000000000100000010000000001000000001000000000100000010000000001]I_2\otimes B_4=\left [ \begin{matrix} 1 & 0 \\ 0 & 1 \end{matrix} \right] \otimes \left [ \begin{matrix} 1 & 0 & 0 & 0\\ 0 & 0 & 1 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 1 \end{matrix} \right]=\left [ \begin{matrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0\\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \end{matrix} \right]
    同理推导B8B_8
    B8=R8(I2B4)B_8=R_8(I_2 \otimes B_4)
    R8=[1000000000001000010000000000010000100000000000100001000000000001]I8=[1000000001000000001000000001000000001000000001000000001000000001]R_8=\left [ \begin{matrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \end{matrix} \right] \Leftarrow I_8=\left [ \begin{matrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \end{matrix} \right]
    所以,容易推导出B8B_8
    B8=R8(I2B4)=[1000000000001000010000000000010000100000000000100001000000000001][1000000000100000010000000001000000001000000000100000010000000001]=[1000000000001000001000000000001001000000000001000001000000000001]B_8=R_8(I_2\otimes B_4)= \left [ \begin{matrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \end{matrix} \right] \cdot \left [ \begin{matrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0\\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0\\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \end{matrix} \right] \\ =\left [ \begin{matrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0\\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0\\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \end{matrix} \right]

    推导F3F ^{\otimes 3}

    有递归式:
    F3=FF2F ^{\otimes 3}=F \otimes F ^{\otimes 2}
    F2=FF1F ^{\otimes 2}=F \otimes F ^{\otimes 1}
    计算:
    F1=F=[1011]F ^{\otimes 1}=F=\left [ \begin{matrix} 1 & 0 \\ 1 & 1 \end{matrix} \right]
    F2=FF1=[1011]F1=[F10F1F1]=[1000110010101111]F\otimes 2=F\otimes F ^{\otimes 1}=\left [ \begin{matrix} 1 & 0 \\ 1 & 1 \end{matrix} \right] \otimes F ^{\otimes 1}=\left [ \begin{matrix} F ^{\otimes 1} & 0 \\ F ^{\otimes 1} & F ^{\otimes 1} \end{matrix} \right]=\left [ \begin{matrix} 1 & 0 & 0 & 0\\ 1 & 1 & 0 & 0\\ 1 & 0 & 1 & 0\\ 1 & 1 & 1 & 1 \end{matrix} \right]
    F3=FF2=[1011]F2=[F20F2F2]=[1000000011000000101000001111000010001000110011001010101011111111]F \otimes 3=F \otimes F^{\otimes 2}=\left [ \begin{matrix} 1 & 0 \\ 1 & 1 \end{matrix} \right] \otimes F^{\otimes 2}=\left [ \begin{matrix} F^{\otimes 2} & 0 \\ F^{\otimes 2} & F^{\otimes 2} \end{matrix} \right] = \left [ \begin{matrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\ 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0\\ 1 & 1 & 1 & 1 & 0 & 0 & 0 & 0\\ 1 & 0 & 0 & 0 & 1 & 0 & 0 & 0\\ 1 & 1 & 0 & 0 & 1 & 1 & 0 & 0\\ 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0\\ 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \end{matrix} \right]

    得出生成矩阵GNG_N

    G8=B8F3=[1000000000001000001000000000001001000000000001000001000000000001][1000000011000000101000001111000010001000110011001010101011111111]==[1000000010001000101000001010101011000000110011001111000011111111]G_8=B_8F^{\otimes 3}=\left [ \begin{matrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 1 & 0 & 0 & 0\\ 0 & 0 & 1 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 1 & 0\\ 0 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 1 & 0 & 0\\ 0 & 0 & 0 & 1 & 0 & 0 & 0 & 0\\ 0 & 0 & 0 & 0 & 0 & 0 & 0 & 1 \end{matrix} \right] \cdot \left [ \begin{matrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\ 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0\\ 1 & 1 & 1 & 1 & 0 & 0 & 0 & 0\\ 1 & 0 & 0 & 0 & 1 & 0 & 0 & 0\\ 1 & 1 & 0 & 0 & 1 & 1 & 0 & 0\\ 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0\\ 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \end{matrix} \right]=\\ =\left [ \begin{matrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 1 & 0 & 0 & 0 & 1 & 0 & 0 & 0\\ 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0\\ 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0\\ 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\ 1 & 1 & 0 & 0 & 1 & 1 & 0 & 0\\ 1 & 1 & 1 & 1 & 0 & 0 & 0 & 0\\ 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \end{matrix} \right]

    生成Polar Code

    c18=u18G8=[0 0 0 1 0 1 1 1][1000000010001000101000001010101011000000110011001111000011111111]=[0 1 1 0 1 0 0 1]c_1^8=u_1^8G_8=[0\ 0\ 0\ 1\ 0\ 1\ 1\ 1] \cdot \left [ \begin{matrix} 1 & 0 & 0 & 0 & 0 & 0 & 0 & 0\\ 1 & 0 & 0 & 0 & 1 & 0 & 0 & 0\\ 1 & 0 & 1 & 0 & 0 & 0 & 0 & 0\\ 1 & 0 & 1 & 0 & 1 & 0 & 1 & 0\\ 1 & 1 & 0 & 0 & 0 & 0 & 0 & 0\\ 1 & 1 & 0 & 0 & 1 & 1 & 0 & 0\\ 1 & 1 & 1 & 1 & 0 & 0 & 0 & 0\\ 1 & 1 & 1 & 1 & 1 & 1 & 1 & 1 \end{matrix} \right] \\ =[0\ 1\ 1\ 0\ 1\ 0\ 0\ 1]

    最后

    本文主要给了一个Polar Code的编码实例,码长为8,码率为1/2,未编码的码字是[0 0 0 1 0 1 1 1][0\ 0\ 0\ 1\ 0\ 1\ 1\ 1]生成的码字是[0 1 1 0 1 0 0 1][0\ 1\ 1\ 0\ 1\ 0\ 0\ 1],介绍了BNB_NF3F^{\otimes 3}的推导。
    CSDN上的基本为全文摘录,修改部分主要是基于自己的理解,仅供读者参考
    本文作者: Marshall
    本文链接: https://marshallcomm.cn/2017/03/05/polar-code-3-encoding-example/

    展开全文
  • Arikan在讨论信道极化时,采用的是B-DMC(二进制离散无记忆信道),然而在构造极化码时需要使用的计算巴氏参数Z(W)Z(W)Z(W)方法的适用范围是BEC信道。又因为BEC是B-DMC的子集。因此在Polar Code编码时只能回落到BEC...

    前言

    由Arikan发明的Polar Code的经典编码算法已经在第二节基本阐述完毕,第三节则是对前文的举例。在编码实例中,有两个前提假设:
    1.假设采用二进制删除信道
    2.假设采用巴氏参数来评估各分裂子信道的可靠性。
    Arikan在讨论信道极化时,采用的是B-DMC(二进制离散无记忆信道),然而在构造极化码时需要使用的计算巴氏参数Z(W)Z(W)方法的适用范围是BEC信道。又因为BEC是B-DMC的子集。因此在Polar Code编码时只能回落到BEC上来构造。
    注意:当信道不是BEC信道时,比如二进制对称信道(BSC)信道或二进制高斯白噪声信道(BAWGNC),则超出了Z(W)Z(W)的适用范围,原因是各个分裂信道的Z(W)Z(W)的数值无法精确得到。
    为了更精确的估计信道极化中各分裂子信道的可靠性,Mori等人提出了密度进化(Density Evolution,DE)的构造方法。该方法使用与所有类型的B-DMC。
    定义错误概率
    对信道WWNN个独立时隙上进行信道极化以后,得到极化信道Z(WN(i))Z(W_N^{(i)}),其中i=1,2,...,Ni=1,2,...,N。令事件AiA_i表示序号为ii的极化信道WN(i)W_N^{(i)}所承载的比特经过传输后发生错误,即
    Ai={uiN,y1N:WN(i)(y1N,u1i1ui)<WN(i)(y1N,u1i1ui1)}A_i=\{u_i^N,y_1^N:W_N^{(i)}(y_1^N,u_1^{i-1}|u_i)<W_N^{(i)}(y_1^N,u_1^{i-1}|u_i\oplus 1)\}
    则极化信道WN(i)W_N^{(i)}的错误概率为P(Ai)P(A_i)
    注解:关于事件AiA_i的定义,后续会有文章专门作解释。

    密度进化(DE)

    类似于LDPC码等信道编码,信道极化也可以使用Tanner图的结构来表示。下图给了一个N=8N=8的例子,图中圆圈表示表示变量节点,每一个变量节点代表一个比特,同时也存储了该比特取值为0或1时的概率;而方框则表示校验节点,表示与之相连的各变量节点比特值的校验和为0。
    在这里插入图片描述
    由于变量节点的比特值仅可能有0或1两种取值,因此,存储与变量节点的消息往往用对数似然比(LLR)值来表示。
    LN(i)=ln(WN(i)WN(i)(y1N,u^1(i1)0)WN(i)(y1N,u^1(i1)1))L_N^{(i)}=ln(W_N^{{(i)}} \frac{W_N^{(i)}(y_1^N,\hat{u}_1^{(i-1)}|0)}{W_N^{(i)}(y_1^N,\hat{u}_1^{(i-1)}|1)})
    根据《Polar Code(2)编码原理》中的递归式WN(2i1)(y1N,u12i2u2i1)W_N^{(2i-1)}(y_1^N,u_1^{2i-2}|u_{2i-1})与式WN(2i)(y1N,u12i1u2i)W_N^{(2i)}(y_1^N,u_1^{2i-1}|u_{2i}),Tanner图中各个变量节点的LLR值可以递归地计算得到:
    LN(i)(y1N,u^1(2i2))=2tanh1(tanh(LN/2(i)(y1N/2,u^1,o2i2u^1,e2i2)2))tanh(LN/2(i)(yN/2+1N,u^1,e2i2)2)L_N^{(i)}(y_1^N,\hat{u}_1^{(2i-2)})=2tanh^{-1}(tanh(\frac{L_{N/2}^{(i)}(y_1^{N/2},\hat{u}_{1,o}^{2i-2}\oplus\hat{u}_{1,e}^{2i-2})}{2})) \\ \cdot tanh(\frac{L_{N/2}^{(i)}(y_{N/2+1}^N,\hat{u}_{1,e}^{2i-2})}{2})
    LN(2i)(y1N,u^12i1)=LN/22i1(yN/2+1N,u^1,e2i2)+(1)u^2i1LN/22i1(y1N/2,u^1,o2i2u^1,e2i2)L_N^{(2i)}(y_1^N,\hat{u}_1^{2i-1})=L_{N/2}^{2i-1}(y_{N/2+1}^{N},\hat{u}_{1,e}^{2i-2})+(-1)^{\hat{u}_{2i-1}}\cdot L_{N/2}^{2i-1}(y_1^{N/2},\hat{u}_{1,o}^{2i-2}\oplus \hat{u}_{1,e}^{2i-2})
    若最终得到的LN(i)=(y1N,u^1i1)0u^i=0L_N^{(i)}=(y_1^N,\hat{u}_1^{i-1})\ge 0,则判决为\hat{u}_i=0;否则,则判决为u^i=1\hat{u}_i=1
    将某一个变量节点的LLR视为一个随机变量,用a(z)a(z)来表示该随机变量的概率密度函数(PDF)。由于信道满足对称性,可以假设发送的比特为全0,从而该变量节点的比特判决值错误的概率为:
    Pe=0a(z)dzP_e= \int _{-\infty}^{0}a(z)dz
    在对第ii个信道进行可靠性估计时,如上图中加粗线条所示,以比特uiu_i对应的节点为根节点,逐层扩散,直至最右侧一列变量节点,构成译码树。
    awa_w表示信道输入到最右侧一列变量节点的LLR值的PDF;用aN(i)a_N^{(i)}表示LN(i)(y1N,u^1(i1))L_N^{(i)}(y_1^N,\hat{u}_1^{(i-1)})值的PDF。根据密度进化理论以及式(2)和式(3),假设发送的是全零比特序列,在u1i1u_1^{i-1}值已知条件下,序号为ii的极化信道LLR值可以递归的计算如下:
    a2N(2i1)=aN(i)aN(i)\mathbf{a}_{2N}^{\left( 2i-1 \right)}=\mathbf{a}_{N}^{\left( i \right)}\odot \mathbf{a}_{N}^{\left( i \right)}
    a2N(2i)=aN(i)aN(i)\mathbf{a}_{2N}^{\left( 2i \right)}=\mathbf{a}_{N}^{\left( i \right)}*\mathbf{a}_{N}^{\left( i \right)}
    a1(1)=aw\mathbf{a}_{1}^{\left( 1 \right)}\text{=}{\mathbf{a}_{w}}
    其中,运算符\odot*分别表示校验节点与变量节点上的卷积操作。通过概率密度函数aN(i)a_N^{(i)}与式(4)可以得到各个极化信道WN(i)W_N^{(i)}的可靠性度量值P(Ai)P(A_i)

    高斯近似(GA)

    通过密度进化,对极化信道WN(i)W_N^{(i)}的可靠度度量P(Ai)P(A_i)进行计算,可以适用于任意类型的B-DMC信道。然而,在实际算法实现时,需要维护一个高维的向量以存储量化过后的概率密度函数aN(i)\mathbf{a_{N}^{(i)}}。为保证计算结果的精确,该向量的维度常取到10610^6,对如此高维的向量进行式(5)和式(6)的卷积操作,计算复杂度非常高。
    大多数研究场景下,信道编码的传输信道模型均为BAWGNC信道。在BAWGNC信道下,可以将密度进化中的LLR值的概率密度函数用一族方差为均值2倍的高斯分布来近似,从而简化成了对一维均值的计算,大大降低计算量,这种对DE的简化计算即为高斯近似(Gaussian Approximation,GA)。
    对噪声方差为σ2\sigma ^2的BAWGNC信道,调制方式为BPSK,若从信道获取的接收信号为yy
    y=2x+1+zy=-2x+1+z
    注解:这里存在疑问,个人理解BPSK应该是y=2x1+zy=2x-1+z
    其中发送比特x{0,1}x\in \{0,1\}zN(0,σ2)z\sim N\left( 0,{\sigma ^{2}} \right)
    假设发送比特为全零序列,则对应的LLR值为:
    LLR(y)=lnp(yx=0)p(yx=1)=2σ2yLLR\left( y \right)=\ln \frac{p\left( y|x=0 \right)}{p\left( y|x=1 \right)}=\frac{2}{\sigma ^{2}}y
    其中yN(1,σ2)y\sim N\left( 1,{\sigma ^{2}} \right)。因此,式(9)中的LLR值符合均值为2σ2\frac{2}{\sigma^2},方差为4σ2\frac{4}{\sigma^2}的高斯分布。根据已有的高斯近似理论,若输入的消息aN/2  (i)\mathbf{a}_{N/{2}\;}^{\left( i \right)}服从独立的高斯分布,对式(6)所示的变量节点上操作,则其输出aN(i)\mathbf{a}_{N}^{\left( i \right)}也服从高斯分布;对式(5)所示的变量节点上的操作,其输出aN(2i1)\mathbf{a}_{N}^{\left( 2i-1 \right)}也非常接近高斯分布。由于高斯分布可以由其均值和方差决定,因此在概率密度函数的计算过程中值需要考虑均值和方差,但必须满足密度进化的对称条件。
    如果用f(z)f(z)表示LLR的概率密度,则对称条件表示为f(z)=f(z)ezf(z)=f(-z)e^z。对于均值为mm,方差为σ2\sigma^2的高斯分布,该对称条件可以简化为σ2=2m\sigma^2=2m。因此,在高斯近似中仅需要考虑一维的变量,即均值mm。设aN(i)\mathbf{a}_{N}^{\left( i \right)}可以用N(mN(i),2mN(i))N\left( m_{N}^{\left( i \right)},2m_{N}^{\left( i \right)} \right)表示,则式(5)、式(6)和式(7)中所示的LLR计算过程可以用高斯近似成为m2N(2i)=φ1(1[1φ(mN(i))]2)m_{2N}^{\left( 2i \right)}={ {\varphi }^{-1}}\left( 1-{ {\left[ 1-\varphi \left( m_{N}^{\left( i \right)} \right) \right]}^{2}} \right)
    m2N(2i)=2mN(i)m_{2N}^{\left( 2i \right)}=2m_{N}^{\left( i \right)}
    m1(1)=2/σ2  m_{1}^{\left( 1 \right)}={2}/{ { {\sigma }^{2}}}\;
    其中函数
    φ(x)={114πxtanhu2exp((ux)24x)du,x>01                                                       ,x=0\varphi \left( x \right)=\left\{ \begin{matrix} 1-\frac{1}{\sqrt{4\pi x}}\int_{-\infty }^{\infty }{\tanh \frac{u}{2}\cdot \exp \left( -\frac{ { {\left( u-x \right)}^{2}}}{4x} \right)du,x>0} \\ 1\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ ,x=0 \\ \end{matrix} \right.
    φ(x)\varphi \left( x \right)[0,)[0,\infty)上连续单调递减,φ(0)=1\varphi \left( 0 \right)\text{=}1φ()=0\varphi \left( \infty \right)\text{=0},其反函数用φ1(x){ {\varphi }^{-1}}\left( x \right)表示。一般情况下,函数φ(x){ {\varphi }}\left( x \right)可以用如下的近似计算φ(x)={πx(1107x)exp(x4),x10exp(0.4527x0.86+0.0218),0<x<10\varphi \left( x \right)=\left\{ \begin{matrix} \sqrt{\frac{\pi }{x}}\left( 1-\frac{10}{7x} \right)\exp \left( -\frac{x}{4} \right),x\ge 10 \\ \exp \left( -0.4527{ {x}^{0.86}}+0.0218 \right),0<x<10 \\ \end{matrix} \right.
    在得到mN(i)m_N^{(i)}后,各极化信道WN(i)W_N^{(i)}在发送全零时对应的接收信号LLR值服从分布N(mN(i),2mN(i))N\left( m_{N}^{\left( i \right)},2m_{N}^{\left( i \right)} \right),于是可靠度量N(mN(i),2mN(i))N\left( m_{N}^{\left( i \right)},2m_{N}^{\left( i \right)} \right)即可计算如下P(Ai)=012πmN(i)exp((xmN(i))24mN(i))dxP\left( { {A}_{i}} \right)\text{=}\int\limits_{-\infty }^{0}{\frac{1}{2\sqrt{\pi m_{N}^{\left( i \right)}}}\cdot \exp \left( \frac{-{ {\left( x-m_{N}^{\left( i \right)} \right)}^{2}}}{4m_{N}^{\left( i \right)}} \right)}dx

    总结

    巴氏参数、密度进化和高斯近似法都是计算各分裂子信道错误概率P(Ai)P(A_i)的方法,不同的方法有各自的适用范围。巴氏参数仅适用于BEC信道,密度进化法适用于所有类型的B-DMC,而高斯近似法适用于更加实际的BAWGNC。

    最后

    构造极化码的第一步信道可靠性估计是最关键的,本文讲了三种估计方法,分别是巴氏参数(仅适用于BEC)、密度进化(复杂度很高)和高斯近似(最贴近实际的信道)。
    此CSDN上的文章基本为全文摘录,修改部分主要是基于自己的理解,仅供读者参考。
    本文作者: Marshall
    本文链接: https://marshallcomm.cn/2017/03/05/polar-code-3-encoding-example/

    展开全文
  • 以单支共阴数码管为例,可将段接到某端口 Pn,共阴极接 GND,则可编写出对应十六进制的 七段码表字节数据如右图: 16 键码显示的程序 我们在 P1 端口接一支共阴数码管 SLED,在 P2、P3 端口接 16 个按键,分别...
  • 无线通信原理与应用(第一版) 中文版

    千次下载 热门讨论 2011-05-01 21:35:17
    6.10.4 极化分集 6.10.5 频率分集 6.10.6 时间分集 6.11 RAKE接收机 6.12 交织 6.13 信道编码原理 6.14 分组 6.14.1 分组举例 6.14.2 Reed—Solomon实例研究 6.15 卷积 6.15.1...
  • 无线通信原理与应用第二版中文版

    千次下载 热门讨论 2010-10-31 20:52:41
    6.10.4 极化分集 6.10.5 频率分集 6.10.6 时间分集 6.11 RAKE接收机 6.12 交织 6.13 信道编码原理 6.14 分组 6.14.1 分组举例 6.14.2 Reed—Solomon实例研究 6.15 卷积 6.15.1...
  • 10.1.1 SMS编码规范及编码与解码例程 266 10.1.2 AT命令收发短消息实例 273 10.1.3 “实时”接收短消息的方法 281 10.1.4 用串口收发SMS短信编程的一些讨论 283 10.2 计算机与Rabbit 2000嵌入式系统通信编程实例 286...
  • 10.1.1 SMS编码规范及编码与解码例程 266 10.1.2 AT命令收发短消息实例 273 10.1.3 “实时”接收短消息的方法 281 10.1.4 用串口收发SMS短信编程的一些讨论 283 10.2 计算机与Rabbit 2000嵌入式系统通信编程实例 286...
  • Java2核心技术第7版全两卷.pdf中文高清

    千次下载 热门讨论 2012-09-14 14:22:28
     本书内容翔实、深入浅出,附有大量程序实例具实用价值,是java初学者和java程序员的必备参考书。... 《Java2核心技术卷I:基础知识(第7版)》目录: 译者序. 前言 第1章 java程序设计概述 1.1 java程序...
  • Spring面试题

    2015-05-06 07:19:39
    3. hibernate使用Java反射机制,而不是字节增强程序来实现透明性。 4. hibernate的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系。 2. ...
  • 这样的线性流程有着大的问题,首先架构师或数据库专家不是圣人,设计数据库,Dao,Service接口之后,就不需要修改,在编码过程中,会进行大量的修改,特别是那种那只懂数据库的专家在设计之后,开发人员怨声载道。...
  • everything

    2010-04-25 17:05:20
    一是图形操作(推荐):配置 → 操作方式 → 主程序 → 只允许一个TC运行。二是直接在wincmd.ini中的[Configuration]段增加一句 onlyonce=1,并重启TC。 5. 结论 如果你经常需要按照文件名进行快速搜索,并且磁盘...
  • 只是实例化解释器并退出。 2.3.2 qjsc 编译器 用法: qjsc [options] [files] 选项: -c 仅输出C文件中的字节,默认是输出可执行文件。 -e main() C文件中的输出和字节,默认是输出可执行文件。 -o output 设置...
  • python-barcode:不借助其他库在 Python 程序中生成条形。 pygram:类似 Instagram 的图像滤镜。 python-qrcode:一个纯 Python 实现的二维码生成器。 Quads:基于四叉树的计算机艺术。 scikit-image:一个...
  • asp.net知识库

    2015-06-18 08:45:45
    2分法-通用存储过程分页(top max模式)版本(性能相对之前的not in版本大提高) 分页存储过程:排序反转分页法 优化后的通用分页存储过程 sql语句 一些Select检索高级用法 SQL server 2005中新增的排序函数及应用 ...
  • php高级开发教程说明

    2008-11-27 11:39:22
    后,你将拥有一个工具参数的库,可以安全地重新使用和依赖这个库,从而可以大地减省开 发时间。 2部分第一部分分高级PHP 下载 当然,有了一个日益增大的免费工具函数库,依然不能满足全部需要,也不能优化这个库 ...
  • 看到网上有个方案说:主项目负责加载组件,由于主项目和组件之间是隔离的,那么主项目如何调用组件ApplicationLike的生命周期方法呢,目前采用的是基于编译期字节插入的方式,扫描所有的ApplicationLike类(其有一...
  • retrofit-spring-boot-starter实现了Retrofit与spring-boot框架快速整合,并且支持了诸多功能增强,大简化开发。 项目持续优化迭代,欢迎大家提ISSUE和PR!麻烦大家能给一颗star✨,您的star是我们持续更新的动力...
  • 例如,长度为8的线性表关键序列为:[6,13,27,30,38,46,47,70],被查元素为38,首先将与线性表的中间项比较,即与第4个数据元素30相比较,38大于中间项30的值,则在线性表[38,46,47,70]中继续查找;...
  • 本书附带光盘包括了RedHat Linux系统的最新版本,及安装方法,还包括本书的大量程序代码,大地方便了读者,为使用和将要使用Linux系统的技术人员提供了较全面的参考。 目 录 前言 第一篇 Linux系统介绍 第1...
  •  QuickWAP提供有WAP1.2、2.0中英文模块,所有功能模块均有详细说明及代码实例,开发者不但可以利用现有的QuickWAP源码程序(现已有十余套WAP代码免费开源),还可以进行二次开发,为您开发WAP节省时间,提高效率,为...
  • 新版Android开发教程.rar

    千次下载 热门讨论 2010-12-14 15:49:11
    将移动终端的评价标准从硬件向软件转变,大的激发了软件开发者的热情。 � Android 的源代码遵循 Apache V2 软件许可,而不是通常的 GPL v2 许可。有利于商业开发。 � 具有强大的 Linux 社区的支持。 Android ...
  •  QuickWAP提供有WAP1.2、2.0中英文模块,所有功能模块均有详细说明及代码实例,开发者不但可以利用现有的QuickWAP源码程序(现已有十余套WAP代码免费开源),还可以进行二次开发,为您开发WAP节省时间,提高效率,为...
  • 软件编程规范培训实例与练习 软件编程规范培训实例与练习  问题分类 1 逻辑类问题(A类)-指设计、编码中出现的计算正确性和一致性、程序逻辑控制等方面出现的问题,在系统中起关键作用,将导致软件死机、功能...

空空如也

空空如也

1 2 3
收藏数 53
精华内容 21
关键字:

极化码编码实例