发明名称 一种适用于低密度奇偶校验码的多值修正最小和解码方法
摘要 一种适用于低密度奇偶校验码的多值修正最小和解码方法,对每一个校验节点将关联的变量节点输入数据符号相乘得到总的输出符号,同时比较相邻变量节点输入数据的绝对值大小,得到最小值、次最小值以及第三最小值,另外记录最小值对应的变量节点序号;对于最小值所对应的变量节点,将次最小值和第三最小值作对数似然比(LLR)域的加法运算,得到的结果乘以所述总的输出符号和该变量节点输入数据符号,作为向最小值对应的变量节点的输出信息;对于其他变量节点,则将最小值和第三最小值做LLR域的加法运算,得到的结果乘以所述总的输出符号和该变量节点输入数据符号,作为向该变量节点的输出信息。本发明的译码方法性能好、复杂度低、实现简单。
申请公布号 CN102412846A 申请公布日期 2012.04.11
申请号 CN201110387887.0 申请日期 2011.11.29
申请人 西安空间无线电技术研究所 发明人 窦金芳;姜明
分类号 H03M13/11(2006.01)I 主分类号 H03M13/11(2006.01)I
代理机构 中国航天科技专利中心 11009 代理人 安丽
主权项 1.一种适用于低密度奇偶校验码的多值修正最小和译码方法,低密度奇偶校验码的校验矩阵为H<sub>M×N</sub>=[h<sub>m,n</sub>],低密度奇偶校验码包括变量节点集合{v<sub>n</sub>,n∈[1,N]}和校验节点集合{c<sub>m</sub>,m∈[1,M]},变量节点v<sub>n</sub>参与的校验节点集合为A(n)={j,h<sub>j,n</sub>=1},包含于校验节点c<sub>m</sub>的变量节点集合为B(m)={i,h<sub>m,i</sub>=1};其特征在于:所述译码方法包括按照如下顺序执行的步骤:(1)确定初始的各变量节点总的输出信息<img file="FSA00000624372000011.GIF" wi="47" he="59" />以及初始的各变量节点向每一个校验节点输出的信息<img file="FSA00000624372000012.GIF" wi="89" he="64" />n∈[1,N],j∈A(n);并设置初始迭代次数k=1,开始迭代译码;(2)根据第k-1次迭代的各变量节点v<sub>i</sub>向校验节点c<sub>m</sub>输出的信号<img file="FSA00000624372000013.GIF" wi="295" he="63" />计算出第k次迭代每一个校验节点c<sub>m</sub>向各变量节点v<sub>i</sub>输出的信号<maths num="0001"><![CDATA[<math><mrow><msubsup><mi>r</mi><mrow><mi>m</mi><mo>,</mo><mi>i</mi></mrow><mi>k</mi></msubsup><mo>,</mo><mi>i</mi><mo>&Element;</mo><mi>B</mi><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow><mo>;</mo></mrow></math>]]></maths>首先根据信号<img file="FSA00000624372000015.GIF" wi="271" he="64" />的符号<img file="FSA00000624372000016.GIF" wi="206" he="75" />做乘法求得总的输出符号<img file="FSA00000624372000017.GIF" wi="523" he="108" />同时按照信号的绝对值大小比较出绝对值最小的三个数值,<img file="FSA00000624372000018.GIF" wi="416" he="81" />i<sub>1</sub>,i<sub>2</sub>,i<sub>3</sub>∈B(m),并记录最小值对应的输入变量节点序号i<sub>1</sub>;并针对序号i<sub>1</sub>的变量节点,利用<img file="FSA00000624372000019.GIF" wi="77" he="67" />和<img file="FSA000006243720000110.GIF" wi="76" he="67" />更新向变量节点i<sub>1</sub>的输出,计算方法如下:<maths num="0002"><![CDATA[<math><mrow><msubsup><mi>r</mi><mrow><mi>m</mi><mo>,</mo><msub><mi>i</mi><mn>1</mn></msub></mrow><mi>k</mi></msubsup><mo>=</mo><mi>sign</mi><mrow><mo>(</mo><msubsup><mi>q</mi><mrow><msub><mi>i</mi><mn>1</mn></msub><mo>,</mo><mi>m</mi></mrow><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow><msup><mi>E</mi><mi>k</mi></msup><mrow><mo>(</mo><msub><mi>c</mi><mi>m</mi></msub><mo>)</mo></mrow><mo>[</mo><mo>|</mo><msubsup><mi>q</mi><mrow><msub><mi>i</mi><mn>2</mn></msub><mo>,</mo><mi>m</mi></mrow><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>|</mo><mo>+</mo><mi>log</mi><mrow><mo>(</mo><mn>1</mn><mo>+</mo><mi>exp</mi><mrow><mo>(</mo><mo>-</mo><mo>|</mo><msubsup><mi>q</mi><mrow><msub><mi>i</mi><mn>2</mn></msub><mo>,</mo><mi>m</mi></mrow><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>+</mo><msubsup><mi>q</mi><mrow><msub><mi>i</mi><mn>3</mn></msub><mo>,</mo><mi>m</mi></mrow><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>|</mo><mo>)</mo></mrow><mo>)</mo></mrow><mo>-</mo><mi>log</mi><mrow><mo>(</mo><mn>1</mn><mo>+</mo><mi>exp</mi><mrow><mo>(</mo><mo>-</mo><mo>|</mo><msubsup><mi>q</mi><mrow><msub><mi>i</mi><mn>2</mn></msub><mo>,</mo><mi>m</mi></mrow><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>-</mo><msubsup><mi>q</mi><mrow><msub><mi>l</mi><mn>3</mn></msub><mo>,</mo><mi>m</mi></mrow><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>|</mo><mo>)</mo></mrow><mo>)</mo></mrow><mo>]</mo></mrow></math>]]></maths>向其他变量节点i≠i<sub>1</sub>,i∈B(m)的输出更新计算方法如下:<maths num="0003"><![CDATA[<math><mrow><msubsup><mi>r</mi><mrow><mi>m</mi><mo>,</mo><mi>i</mi></mrow><mi>k</mi></msubsup><mo>=</mo><mi>sign</mi><mrow><mo>(</mo><msubsup><mi>q</mi><mrow><mi>i</mi><mo>,</mo><mi>m</mi></mrow><mi>k</mi></msubsup><mo>)</mo></mrow><msup><mi>E</mi><mi>k</mi></msup><mrow><mo>(</mo><msub><mi>c</mi><mi>m</mi></msub><mo>)</mo></mrow><mo>[</mo><mo>|</mo><msubsup><mi>q</mi><mrow><msub><mi>i</mi><mn>1</mn></msub><mo>,</mo><mi>m</mi></mrow><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>|</mo><mo>+</mo><mi>log</mi><mrow><mo>(</mo><mn>1</mn><mo>+</mo><mi>exp</mi><mrow><mo>(</mo><mo>-</mo><mo>|</mo><msubsup><mi>q</mi><mrow><msub><mi>i</mi><mn>1</mn></msub><mo>,</mo><mi>m</mi></mrow><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>+</mo><msubsup><mi>q</mi><mrow><msub><mi>i</mi><mn>3</mn></msub><mo>,</mo><mi>m</mi></mrow><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>|</mo><mo>)</mo></mrow><mo>)</mo></mrow><mo>-</mo><mi>log</mi><mrow><mo>(</mo><mn>1</mn><mo>+</mo><mi>exp</mi><mrow><mo>(</mo><mo>-</mo><mo>|</mo><msubsup><mi>q</mi><mrow><msub><mi>i</mi><mn>1</mn></msub><mo>,</mo><mi>m</mi></mrow><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>-</mo><msubsup><mi>q</mi><mrow><msub><mi>i</mi><mn>3</mn></msub><mo>,</mo><mi>m</mi></mrow><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>|</mo><mo>)</mo></mrow><mo>)</mo></mrow><mo>]</mo></mrow></math>]]></maths>(3)计算第k次迭代各变量节点总的输出信息<img file="FSA00000624372000021.GIF" wi="41" he="59" />及第k次迭代各变量节点向与之相连的每一个校验节点输出的信息<img file="FSA00000624372000022.GIF" wi="87" he="65" />对于每个变量节点v<sub>n</sub>,n∈[1,N],将所有与之相连的校验节点c<sub>j</sub>,j∈A(n)向变量节点v<sub>n</sub>输出的信息<img file="FSA00000624372000023.GIF" wi="256" he="62" />以及该变量节点的初始输出信息<img file="FSA00000624372000024.GIF" wi="40" he="57" />相加,作为该变量节点v<sub>n</sub>总的输出信息<img file="FSA00000624372000025.GIF" wi="374" he="105" />各变量节点v<sub>n</sub>将总输出信号<img file="FSA00000624372000026.GIF" wi="40" he="59" />减去对应节点c<sub>j</sub>,j∈A(n)的输入信号<img file="FSA00000624372000027.GIF" wi="82" he="65" />作为所述信息<maths num="0004"><![CDATA[<math><mrow><msubsup><mi>q</mi><mrow><mi>n</mi><mo>,</mo><mi>j</mi></mrow><mi>k</mi></msubsup><mo>=</mo><msubsup><mi>L</mi><mi>n</mi><mi>k</mi></msubsup><mo>-</mo><msubsup><mi>r</mi><mrow><mi>j</mi><mo>,</mo><mi>n</mi></mrow><mi>k</mi></msubsup><mo>;</mo></mrow></math>]]></maths>(4)根据<img file="FSA00000624372000029.GIF" wi="41" he="59" />的符号硬判得到一个输出序列W<sup>k</sup>;如果该输出序列满足如下条件:<img file="FSA000006243720000210.GIF" wi="442" he="60" />θ为全零行向量;则将该序列W<sup>k</sup>作为译码输出,宣布译码成功,终止译码;否则迭代次数k加1,如果迭代次数k大于预设的最大迭代次数K,则译码失败,终止译码,否则继续迭代译码跳转至步骤(2)进行下一次迭代。
地址 710100 陕西省西安市长安区西街150号