SISO Decoder for SPC (补充章节1)

前言:

      在LDPC,Polar 都会涉及到  SISO Decoder. 

      后面四章节主要讲这块的推导过程。

       SISO: Soft Input and Soft Output

      soft 思想很像机器学习中softmax 激活函数,主要作用是把概率约束到[0,1]之间。

     本篇主要以SPC(3,2)为例

目录:

    1: SPC introduce

     2: SISO decoder for SPC(3,2)

     3: properties

      4: 补充知识点

一 SPC(signle parity check code)

    首先回顾一下SPC码

 图中的r_i:  beliefs that c_i is 0, 即预测值为0的概率

 后面我们以下面两个表示码字为0和1的概率

 P_i=P(c_i=0|r_i)

 P_i^{-}=1-P_i

SPC 形式(n,n-1)

输入长度为n-1的信息,输出长度为n的码字,即增加了一个奇偶校验位

 1.1  编码矩阵:

   

         

          c=mG=[m_1,m_2,...m_{n-1},p]

     1.2  奇偶校验矩阵

          Hc^T=0

          H 是全为1的行向量

     1.3  例 SPC(3,2)

          编码矩阵G

          c=mG=[m_1,m_2]\begin{bmatrix} 1 & 0 &1 \\ 0& 1& 1 \end{bmatrix}=[c_1,c_2,c_3]

           c_1=m_1,c_2=m_2,c_3=m_1+m_2


二  SISO decoder for SPC(3,2)

   

           

      这里面以L_1为例:

      一部分信息来自于chanel 本身 r_1,称为intrinsic

      另一部分信息来自于其它channel r_2,r_3,称为extrinsic

  2.1  先看 instrinsic:

     L_1=log\frac{P_r(c_1=0|r_1)}{p_r(c_1=1|r_1)}

    L_2=log\frac{P_r(c_2=0|r_2)}{p_r(c_2=1|r_2)}

    L_3=log\frac{P_r(c_3=0|r_3)}{p_r(c_3=1|r_3)}

    概率比取对数 即:

    L_1= log\frac{p_1}{p_1^{-}}

    L_2= log\frac{p_2}{p_2^{-}}

    L_3= log\frac{p_3}{p_3^{-}}

    

2.2 extrinsic

  给定r_2,r_3P_1=P_r(c_1=0|r_2,r_3)为多少?(条件概率)

 通过上图可以看到

 P_1=P_2P_3+(1-P_2)(1-P_3)

        =P_2P_3+P_2^{-}P_3^{-}

P_1^{-}=1-P_1=P_2P_3^{-}+P_3P_2^{-}

因为:

P_1-P_1^{-}=P_2(P_3-P_3^{-})+P_2^{-}(P_3^{-}-P_3)

                 =(P_2-P_2^{-})(P_3-P_3^{-})

P_1+P_1^{-}=(P_2+P_2^{-})(P_3+P_3^{-})

所以

\frac{P_1-P_1^{-}}{P_1+P_1^{-}}=\frac{P_2-P_2^{-}}{P_2+P_2^{-}}*\frac{P_3-P_3^{-}}{P_3+P_3^{-}}

\frac{1-\frac{p_1^{-}}{P_1}}{1+\frac{p_1^{-}}{P_1}}=\frac{1-\frac{p_2^{-}}{P_2}}{1+\frac{p_2^{-}}{P_2}}*\frac{1-\frac{p_3^{-}}{P_3}}{1+\frac{p_3^{-}}{P_3}}

根据前面的LLR定义 ,以及tanh的性质

   L_{ext,1}=log \frac{P_1}{P_1^{-}},    -L_{ext,1}=log \frac{P_1^{-}}{P_1}

  tanh(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}}

                =\frac{1-e^{-2x}}{1+e^{-2x}}

  

上面等价于

   tanh(\frac{L_{ext,1}}{2})=tanh(\frac{L_{2}}{2})tanh(\frac{L_{3}}{2})


三   properties

      在前面LDPC,Polar 中我们知道

     \left\{\begin{matrix} if L_i>0, \hat{c_i}=0\\ if L_i<0, \hat{c_i}=1 \end{matrix}\right.

3.1 求extrsinc正负号    

 tanh 有个重要特性

     if : x>0,tanh(x)>0; if: x<0,tanh(x)<0

所以  sgn(L_{lext,1})=sgn(L_2)sgn(L_3)

3.2 求extrsinc大小

我们先对上面求log

logtanh\frac{|L_{ext,1}|}{2}=logtanh\frac{|L_{2}|}{2}+logtanh\frac{|L_{3}|}{2}

  |log tanh\frac{|L_{ext,1}|}{2}|=|log tanh\frac{|L_{2}|}{2}|+|log tanh\frac{|L_{3}|}{2}|(因为logtanh|x|肯定小于0,所以|a+b|=|a|+|b|)

 设

f(x)=|log tanh|\frac{x}{2}||

  f(L_{ext,1})=f(L_2)+f(L_3)

 |L_{ext,1}|=f(f(L_2)+f(L_3)) 

     

   ,具体证明可以参考补充章节

   3.3  repetion 

  

          L_i=L_i+L_{ext,i}

             就是两个概率相加,一个是来于channel 本身,一个来自其它信道的信息

     3.4 L_{ext,i} 简化求解法

           s= f(|L_1|)+f(|L_2|)+f(|L_3|))

           p=sgn(L_1)sgn(L_2)sgn(L_3)

           e= s-f(|L_1|)

           L_ext,1=f(e)*p*sgn(L_1)

           这个也是最常用的,其它L_2,L_3也是一样的求解法,在LDPC里面就用的这种

           


  四 补充章节

首先可以

 4.1  f^{-}(x)=f(f(x))

   证明:

          y=|log tanh\frac{|x|}{2}|

          -|y|=logtanh\frac{|x|}{2}(等式右边肯定小于0)

           e^{-|y|}=\frac{1-e^{-|x|}}{1+e^{-|x|}}

           e^{-|x|}=\frac{1-e^{-|y|}}{1+e^{-|y|}}

             -|x|=logtanh\frac{|y|}{2}

               |x|= |logtanh\frac{|y|}{2}|

               f^{-}(x)=f(f(x))

             其中

             f(x)=|logtanh\frac{|x|}{2}|

             它的符号右前门的sgn 函数获得

          

       

4.2 tanh(x)

      x>0, tanh(x)>0

      x<0, tanh(x)<0

     所以:

     sgn(L_{ext,1})=sgn(L_2)sgn(L_3)

       

       4.3 logx 图像

       

   

4.4  tanh 图像

 4.4 回顾一下polar ,用的是min sum,是一样的,前面的tanh 计算量大。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值