发明名称 低密度奇偶校验码的选择退火最小和译码方法
摘要 低密度奇偶校验码的选择退火最小和译码方法适用于低密度奇偶校验码的软判决译码,替代现有的乘性修正最小和译码方法。本发明基于最小和译码方法,对校验不成功的校验节点的输出,采用小于1的乘性因子进行修正。本发明的实施步骤包括:变量节点合并校验节点流入的外信息量以及来自信道的信息作为该次迭代的判决软信息,试探判决序列是否满足校验方程,记下或者更新校验不成功的节点序号集合U,如果U为空,则解码结束;如果U非空,则校验节点根据最小和规则向变量节点更新输出信息,对属于U中的校验节点输出信息乘以一小于1的因子进行退火处理,转入下次迭代译码。性能明显优于其他改进的最小和译码方法,计算复杂度远低于和积算法。
申请公布号 CN101807929B 申请公布日期 2013.04.24
申请号 CN201010129242.2 申请日期 2010.03.19
申请人 中国人民解放军理工大学 发明人 吴晓富;赵春明;姜明;尤肖虎
分类号 H03M13/11(2006.01)I 主分类号 H03M13/11(2006.01)I
代理机构 南京经纬专利商标代理有限公司 32200 代理人 叶连生
主权项 1.一种基于选择退火的低密度奇偶校验码最小和译码方法,其特征在于:在低密度奇偶校验码的最小和迭代译码过程中,变量节点和校验节点依次进行软值更新;在一次迭代过程中,变量节点对总信息量进行硬判,判断各个校验式校验是否成功;如果校验式校验全部成功,则迭代译码自动停止,否则在随即进行的校验节点软值更新时,对校验成功的校验节点根据原有的最小和原则进行软值更新,而对校验不成功的校验节点在最小和原则软值更新的基础上乘以一个小于1的系数β完成退火处理;校验节点处的软值更新根据校验式是否满足校验而进行选择性退火处理,执行基于低密度奇偶校验码的二分图表示,具体表述为按如下顺序执行的几个步骤:定义:低密度奇偶校验码的校验矩阵H<sub>M×N</sub>=[h<sub>m,n</sub>],其中,M为校验矩阵的行数,N为校验矩阵的列数,h<sub>m,n</sub>表示校验矩阵的第m行第n列元素,m取值范围为1到M,n取值范围为1到N;对应的二分图变量节点和校验节点集合为V={v<sub>n</sub>,n∈[1,N]},C={c<sub>m</sub>,m∈[1,M]};定义变量节点v<sub>n</sub>参与的校验节点集合A(n)={m,h<sub>m,n</sub>=1},包含于校验节点c<sub>m</sub>的变量节点集合B(m)={n,h<sub>m,n</sub>=1};定义校验节点集合A(n)中去除校验节点c<sub>m</sub>的节点集合A(n)/m,定义变量节点集合B(m)中去除变量节点v<sub>n</sub>的节点集合B(m)/n,长为N的编码序列u=(u<sub>1</sub>,u<sub>2</sub>,…,u<sub>n</sub>,…,u<sub>N</sub>);步骤1:初始化:二相移位键控BPSK调制x<sub>n</sub>=1-2u<sub>n</sub>,n∈[1,N]经过高斯白噪声信道,得到接收信号序列Y={y<sub>n</sub>|y<sub>n</sub>=x<sub>n</sub>+w<sub>n</sub>,n∈[1,N]},其中w<sub>n</sub>是零均值方差σ<sup>2</sup>的高斯白噪声;初始的变量节点v<sub>n</sub>,n∈[1,N]向校验节点c<sub>m</sub>,m∈A(n)输出边信息<img file="FSB00000927971300011.GIF" wi="190" he="60" />初始的校验节点c<sub>m</sub>,m∈[1,M]向变量节点v<sub>n</sub>,n∈B(m)输出边信息<img file="FSB00000927971300012.GIF" wi="179" he="122" />迭代次数k=0;步骤2:变量节点计算:各变量节点v<sub>n</sub>将所有参与的校验节点c<sub>m</sub>,m∈A(n)的输出边信息<img file="FSB00000927971300021.GIF" wi="63" he="59" />相加,作为当前迭代第k次的变量节点总输出<maths num="0001"><![CDATA[<math><mrow><msubsup><mi>L</mi><mi>n</mi><mi>k</mi></msubsup><mo>=</mo><msub><mi>y</mi><mi>n</mi></msub><mo>+</mo><munder><mi>&Sigma;</mi><mrow><mi>m</mi><mo>&Element;</mo><mi>A</mi><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow></mrow></munder><msubsup><mi>L</mi><mi>mn</mi><mi>k</mi></msubsup></mrow></math>]]></maths>根据当前迭代各个变量节点的总输出信息<img file="FSB00000927971300023.GIF" wi="66" he="58" />按照下式作符号硬判得到输出序列<maths num="0002"><![CDATA[<math><mrow><msup><mi>z</mi><mi>k</mi></msup><mo>=</mo><mrow><mo>(</mo><msubsup><mi>z</mi><mn>1</mn><mi>k</mi></msubsup><mo>,</mo><msubsup><mi>z</mi><mn>2</mn><mi>k</mi></msubsup><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><msubsup><mi>z</mi><mi>n</mi><mi>k</mi></msubsup><mo>,</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>&CenterDot;</mo><mo>,</mo><msubsup><mi>z</mi><mi>N</mi><mi>k</mi></msubsup><mo>)</mo></mrow></mrow></math>]]></maths><maths num="0003"><![CDATA[<math><mrow><msubsup><mi>z</mi><mi>n</mi><mi>k</mi></msubsup><mo>=</mo><mfenced open='{' close='' separators=''><mtable><mtr><mtd><mn>0</mn><mo>,</mo></mtd><mtd><mi>if</mi></mtd><mtd><msubsup><mi>L</mi><mi>n</mi><mi>k</mi></msubsup><mo>></mo><mn>0</mn></mtd></mtr><mtr><mtd><mn>1</mn><mo>,</mo></mtd><mtd><mi>if</mi></mtd><mtd><msubsup><mi>L</mi><mi>n</mi><mi>k</mi></msubsup><mo>&le;</mo><mn>0</mn></mtd></mtr></mtable></mfenced><mo>;</mo></mrow></math>]]></maths>各变量节点v<sub>n</sub>将参与的校验式输出信息<img file="FSB00000927971300026.GIF" wi="68" he="58" />相加,作为变量节点v<sub>n</sub>到校验节点c<sub>m</sub>的输出边信息:<maths num="0004"><![CDATA[<math><mrow><msubsup><mi>L</mi><mi>nm</mi><mi>k</mi></msubsup><mo>=</mo><munder><mi>&Sigma;</mi><mrow><msup><mi>m</mi><mo>&prime;</mo></msup><mo>&Element;</mo><mi>A</mi><mrow><mo>(</mo><mi>n</mi><mo>)</mo></mrow><mo>/</mo><mi>m</mi></mrow></munder><msubsup><mi>L</mi><mrow><msup><mi>m</mi><mo>&prime;</mo></msup><mi>n</mi></mrow><mi>k</mi></msubsup><mo>=</mo><msubsup><mi>L</mi><mi>n</mi><mi>k</mi></msubsup><mo>-</mo><msubsup><mi>L</mi><mi>mn</mi><mi>k</mi></msubsup><mo>;</mo></mrow></math>]]></maths>不同于最小和算法,变量节点向校验节点的传递似然比信息<img file="FSB00000927971300028.GIF" wi="87" he="78" />该信息除了正常的边信息<img file="FSB00000927971300029.GIF" wi="63" he="59" />外还需增加1比特硬判信息,也即沿着边v<sub>n</sub>→c<sub>m</sub>传递:<maths num="0005"><![CDATA[<math><mrow><msubsup><mover><mi>L</mi><mo>&OverBar;</mo></mover><mi>nm</mi><mi>k</mi></msubsup><mo>=</mo><mrow><mo>(</mo><msubsup><mi>L</mi><mi>nm</mi><mi>k</mi></msubsup><mo>,</mo><msubsup><mi>z</mi><mi>n</mi><mi>k</mi></msubsup><mo>)</mo></mrow><mo>;</mo></mrow></math>]]></maths>步骤3:校验节点计算预处理:各校验节点s<sub>m</sub>先对边信息<img file="FSB000009279713000211.GIF" wi="284" he="71" />中的硬判信息<img file="FSB000009279713000212.GIF" wi="40" he="59" />进行处理,计算校验式是否成功:<maths num="0006"><![CDATA[<math><mrow><msubsup><mi>s</mi><mi>m</mi><mi>k</mi></msubsup><mo>=</mo><munder><mi>&Sigma;</mi><mrow><mi>n</mi><mo>&Element;</mo><mi>B</mi><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow></mrow></munder><mo>&CirclePlus;</mo><msubsup><mi>z</mi><mi>n</mi><mi>k</mi></msubsup><mo>,</mo><mi>m</mi><mo>&Element;</mo><mo>[</mo><mn>1</mn><mo>,</mo><mi>M</mi><mo>]</mo></mrow></math>]]></maths><img file="FSB000009279713000214.GIF" wi="96" he="87" />表示异或累加操作;记下所有不满足校验的校验节点序号<maths num="0007"><![CDATA[<math><mrow><mi>U</mi><mo>=</mo><mo>{</mo><mi>m</mi><mo>|</mo><msubsup><mi>s</mi><mi>m</mi><mi>k</mi></msubsup><mo>=</mo><mn>1</mn><mo>,</mo><mi>m</mi><mo>&Element;</mo><mo>[</mo><mn>1</mn><mo>,</mo><mi>M</mi><mo>]</mo><mo>}</mo><mo>,</mo></mrow></math>]]></maths>同时令<maths num="0008"><![CDATA[<math><mrow><mi>S</mi><mo>=</mo><mo>{</mo><mi>m</mi><mo>|</mo><msubsup><mi>s</mi><mi>m</mi><mi>k</mi></msubsup><mo>=</mo><mn>0</mn><mo>,</mo><mi>m</mi><mo>&Element;</mo><mo>[</mo><mn>1</mn><mo>,</mo><mi>M</mi><mo>]</mo><mo>}</mo></mrow></math>]]></maths>表示所有满足校验的校验节点序号集;如果不满足校验的节点个数为0,也即|U|=0,则步骤2的硬判输出结果将作为最终的译码输出<img file="FSB000009279713000217.GIF" wi="141" he="50" />同时终止译码,如果不能满足且迭代次数k等于最大迭代次数,则译码失败,终止译码,否则继续迭代译码,k++;步骤4:校验节点计算:各校验节点c<sub>m</sub>根据第k-1次迭代的变量节点输出边信息<img file="FSB00000927971300031.GIF" wi="94" he="58" />根据最小和原则计算第k次迭代节点c<sub>m</sub>向变量节点v<sub>n</sub>输出的边信息,如果校验节点m属于集合U,则进行退火处理,否则不退火,也即执行以下操作:<maths num="0009"><![CDATA[<math><mfenced open='{' close=''><mtable><mtr><mtd><msubsup><mi>L</mi><mi>mn</mi><mi>k</mi></msubsup><mo>=</mo><mi>&beta;</mi><mo>&CenterDot;</mo><mrow><mo>(</mo><munder><mi>&Pi;</mi><mrow><msup><mi>n</mi><mo>&prime;</mo></msup><mo>&Element;</mo><mi>B</mi><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow><mo>/</mo><mi>n</mi></mrow></munder><mi>sign</mi><mrow><mo>(</mo><msubsup><mi>L</mi><mrow><mi>n</mi><mo>&prime;</mo><mi>m</mi></mrow><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow><mo>)</mo></mrow><mo>&CenterDot;</mo><mrow><mo>(</mo><munder><mi>min</mi><mrow><msup><mi>n</mi><mo>&prime;</mo></msup><mo>&Element;</mo><mi>B</mi><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow><mo>/</mo><mi>n</mi></mrow></munder><mo>|</mo><msubsup><mi>L</mi><mrow><msup><mi>n</mi><mo>&prime;</mo></msup><mi>m</mi></mrow><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>|</mo><mo>)</mo><mo>,</mo></mrow></mtd><mtd><mi>if</mi></mtd><mtd><mi>m</mi><mo>&Element;</mo><mi>U</mi></mtd></mtr><mtr><mtd><msubsup><mi>L</mi><mi>mn</mi><mi>k</mi></msubsup><mo>=</mo><mrow><mo>(</mo><munder><mi>&Pi;</mi><mrow><msup><mi>n</mi><mo>&prime;</mo></msup><mo>&Element;</mo><mi>B</mi><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow><mo>/</mo><mi>n</mi></mrow></munder><mi>sign</mi><mrow><mo>(</mo><msubsup><mi>L</mi><mrow><msup><mi>n</mi><mo>&prime;</mo></msup><mi>m</mi></mrow><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow><mo>)</mo></mrow><mo>&CenterDot;</mo><mrow><mo>(</mo><munder><mi>min</mi><mrow><msup><mi>n</mi><mo>&prime;</mo></msup><mo>&Element;</mo><mi>B</mi><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow><mo>/</mo><mi>n</mi></mrow></munder><mo>|</mo><msubsup><mi>L</mi><mrow><msup><mi>n</mi><mo>&prime;</mo></msup><mi>m</mi></mrow><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>|</mo><mo>)</mo></mrow><mo>,</mo></mtd><mtd><mi>if</mi></mtd><mtd><mi>m</mi><mo>&Element;</mo><mi>S</mi></mtd></mtr></mtable></mfenced></math>]]></maths>其中,β<1是退火系数,<maths num="0010"><![CDATA[<math><mrow><mi>sign</mi><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mfenced open='{' close=''><mtable><mtr><mtd><mn>1</mn><mo>,</mo></mtd><mtd><mi>if</mi></mtd><mtd><mi>x</mi><mo>&GreaterEqual;</mo><mn>0</mn></mtd></mtr><mtr><mtd><mo>-</mo><mn>1</mn><mo>,</mo></mtd><mtd><mi>if</mi></mtd><mtd><mi>x</mi><mo>&lt;</mo><mn>0</mn></mtd></mtr></mtable></mfenced></mrow></math>]]></maths>表示取符号函数,<img file="FSB00000927971300034.GIF" wi="124" he="68" />表示对下标属于B的所有x<sub>n</sub>取其最小值;执行完后跳转至步骤2。
地址 210007 江苏省南京市御道街标营2号
您可能感兴趣的专利