发明名称 一种用于LDPC码的交叠译码方法
摘要 本发明提供了一种用于LDPC码的交叠译码方法,属于通信技术领域。本方法先将奇偶校验矩阵按列进行分组,每组具有相同的列数,对每个分组依次进行垂直更新运算和水平更新运算,最后当满足迭代停止条件或者译码成功时,输出译码结果,结束译码。本方法对奇偶校验矩阵的第一分组进行垂直更新运算后,在依次对奇偶校验矩阵剩余分组进行垂直更新运算的同时,开始依次对奇偶校验矩阵的分组进行水平更新运算,相邻的两个分组的垂直更新运算和水平更新运算交叠进行。本发明能够提高LDPC码译码器的硬件资源利用率,提高译码速率,减少硬件资源消耗。
申请公布号 CN103731161B 申请公布日期 2017.01.25
申请号 CN201410010490.3 申请日期 2014.01.09
申请人 北京航空航天大学 发明人 赵岭;韩江雪;侯毅;刘荣科
分类号 H03M13/11(2006.01)I 主分类号 H03M13/11(2006.01)I
代理机构 北京永创新实专利事务所 11121 代理人 祗志洁
主权项 一种用于LDPC码的交叠译码方法,其特征在于,包括如下步骤:步骤1:对奇偶校验矩阵按列进行分组,每组具有相同的列数;设L为分组数;步骤2:对每个分组依次进行垂直更新运算;每个分组的垂直更新运算的结果参与本次迭代对应分组的水平更新运算以及下次迭代的对应分组的垂直更新运算;所述的垂直更新运算,具体为:第k次迭代时,与校验节点m相关联的变量节点j的译码迭代信息<img file="FDA0001070661580000011.GIF" wi="59" he="70" />为:<maths num="0001"><math><![CDATA[<mrow><msubsup><mi>Y</mi><mrow><mi>m</mi><mi>j</mi></mrow><mi>k</mi></msubsup><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mi>a</mi><mo>&times;</mo><munder><mo>&Sigma;</mo><mrow><mi>i</mi><mo>&Element;</mo><mi>M</mi><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow><mo>,</mo><mi>i</mi><mo>&NotEqual;</mo><mi>m</mi></mrow></munder><mo>{</mo><mi>s</mi><mi>i</mi><mi>g</mi><mi>n</mi><mrow><mo>(</mo><msubsup><mi>A</mi><mi>i</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>L</mi></mrow></msubsup><mo>)</mo></mrow><mo>&times;</mo><mi>s</mi><mi>i</mi><mi>g</mi><mi>n</mi><mrow><mo>(</mo><msubsup><mi>Y</mi><mrow><mi>i</mi><mi>j</mi></mrow><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow><mo>&times;</mo><mo>|</mo><msubsup><mi>A</mi><mi>i</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>L</mi></mrow></msubsup><mo>|</mo><mo>}</mo><mo>+</mo><msub><mi>I</mi><mi>j</mi></msub><mrow><mo>(</mo><mi>w</mi><mi>h</mi><mi>e</mi><mi>n</mi><mo>|</mo><msubsup><mi>Y</mi><mrow><mi>i</mi><mi>j</mi></mrow><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>|</mo><mo>&NotEqual;</mo><mo>|</mo><msubsup><mi>A</mi><mi>i</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>L</mi></mrow></msubsup><mo>|</mo><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mi>a</mi><mo>&times;</mo><munder><mo>&Sigma;</mo><mrow><mi>i</mi><mo>&Element;</mo><mi>M</mi><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow><mo>,</mo><mi>i</mi><mo>&NotEqual;</mo><mi>m</mi></mrow></munder><mo>{</mo><mi>s</mi><mi>i</mi><mi>g</mi><mi>n</mi><mrow><mo>(</mo><msubsup><mi>A</mi><mi>i</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>L</mi></mrow></msubsup><mo>)</mo></mrow><mo>&times;</mo><mi>s</mi><mi>i</mi><mi>g</mi><mi>n</mi><mrow><mo>(</mo><msubsup><mi>Y</mi><mrow><mi>i</mi><mi>j</mi></mrow><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow><mo>&times;</mo><mo>|</mo><msubsup><mi>B</mi><mi>i</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>L</mi></mrow></msubsup><mo>|</mo><mo>}</mo><mo>+</mo><msub><mi>I</mi><mi>j</mi></msub><mrow><mo>(</mo><mi>w</mi><mi>h</mi><mi>e</mi><mi>n</mi><mo>|</mo><msubsup><mi>Y</mi><mrow><mi>i</mi><mi>j</mi></mrow><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>|</mo><mo>=</mo><mo>|</mo><msubsup><mi>A</mi><mi>i</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>L</mi></mrow></msubsup><mo>|</mo><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0001070661580000012.GIF" wi="1685" he="259" /></maths>第k次迭代时,第j个变量节点的后验概率<img file="FDA0001070661580000013.GIF" wi="62" he="70" />为:<maths num="0002"><math><![CDATA[<mrow><msubsup><mi>Z</mi><mi>j</mi><mi>k</mi></msubsup><mo>=</mo><mfenced open = "{" close = ""><mtable><mtr><mtd><mrow><mi>a</mi><mo>&times;</mo><munder><mo>&Sigma;</mo><mrow><mi>i</mi><mo>&Element;</mo><mi>M</mi><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow></mrow></munder><mo>{</mo><mi>s</mi><mi>i</mi><mi>g</mi><mi>n</mi><mrow><mo>(</mo><msubsup><mi>A</mi><mi>i</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>L</mi></mrow></msubsup><mo>)</mo></mrow><mo>&times;</mo><mi>s</mi><mi>i</mi><mi>g</mi><mi>n</mi><mrow><mo>(</mo><msubsup><mi>Y</mi><mrow><mi>i</mi><mi>j</mi></mrow><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow><mo>&times;</mo><mo>|</mo><msubsup><mi>A</mi><mi>i</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>L</mi></mrow></msubsup><mo>|</mo><mo>}</mo><mo>+</mo><msub><mi>I</mi><mi>j</mi></msub><mrow><mo>(</mo><mi>w</mi><mi>h</mi><mi>e</mi><mi>n</mi><mo>|</mo><msubsup><mi>Y</mi><mrow><mi>i</mi><mi>j</mi></mrow><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>|</mo><mo>&NotEqual;</mo><mo>|</mo><msubsup><mi>A</mi><mi>i</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>L</mi></mrow></msubsup><mo>|</mo><mo>)</mo></mrow></mrow></mtd></mtr><mtr><mtd><mrow><mi>a</mi><mo>&times;</mo><munder><mo>&Sigma;</mo><mrow><mi>i</mi><mo>&Element;</mo><mi>M</mi><mrow><mo>(</mo><mi>j</mi><mo>)</mo></mrow></mrow></munder><mo>{</mo><mi>s</mi><mi>i</mi><mi>g</mi><mi>n</mi><mrow><mo>(</mo><msubsup><mi>A</mi><mi>i</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>L</mi></mrow></msubsup><mo>)</mo></mrow><mo>&times;</mo><mi>s</mi><mi>i</mi><mi>g</mi><mi>n</mi><mrow><mo>(</mo><msubsup><mi>Y</mi><mrow><mi>i</mi><mi>j</mi></mrow><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow><mo>&times;</mo><mo>|</mo><msubsup><mi>B</mi><mi>i</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>L</mi></mrow></msubsup><mo>|</mo><mo>}</mo><mo>+</mo><msub><mi>I</mi><mi>j</mi></msub><mrow><mo>(</mo><mi>w</mi><mi>h</mi><mi>e</mi><mi>n</mi><mo>|</mo><msubsup><mi>Y</mi><mrow><mi>i</mi><mi>j</mi></mrow><mrow><mi>k</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>|</mo><mo>=</mo><mo>|</mo><msubsup><mi>A</mi><mi>i</mi><mrow><mi>k</mi><mo>-</mo><mn>1</mn><mo>,</mo><mi>L</mi></mrow></msubsup><mo>|</mo><mo>)</mo></mrow></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FDA0001070661580000014.GIF" wi="1614" he="254" /></maths>其中,常数a表示归一化因子,M(j)表示与变量节点j相关联的所有校验节点的集合,<img file="FDA0001070661580000015.GIF" wi="115" he="70" />和<img file="FDA0001070661580000016.GIF" wi="110" he="71" />分别表示第k‑1次迭代时与校验节点i相关联的第1到L组的变量节点的译码迭代信息的最小值与次小值,通过水平更新运算获得;sign函数是符号函数,<img file="FDA0001070661580000017.GIF" wi="83" he="71" />表示第k‑1次迭代时与校验节点i相关联的变量节点j的译码迭代信息;当k=1时,设置<img file="FDA0001070661580000018.GIF" wi="59" he="70" />等于初始化信息I<sub>j</sub>,设置<img file="FDA0001070661580000019.GIF" wi="59" he="70" />等于初始化信息I<sub>j</sub>;I<sub>j</sub>表示输入到译码器的变量节点j的初始化信息;步骤3:对每个分组依次进行水平更新运算;本次迭代的前一分组的水平更新运算的结果参与本次迭代当前分组的水平更新运算,最后一分组的水平更新运算的结果参与下次迭代的垂直更新运算;所述的水平更新运算,具体是:第k次迭代时,对位于第t分组的每一个校验节点m,统计与校验节点m相关联的所有变量节点的译码迭代信息的最小值<img file="FDA00010706615800000110.GIF" wi="75" he="66" />和次小值<img file="FDA00010706615800000111.GIF" wi="99" he="66" />t=1,…,L:<maths num="0003"><math><![CDATA[<mrow><msubsup><mi>A</mi><mi>m</mi><mrow><mi>k</mi><mo>,</mo><mi>t</mi></mrow></msubsup><mo>=</mo><munder><mo>&Pi;</mo><mrow><mi>j</mi><mo>&Element;</mo><mi>N</mi><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow></mrow></munder><mi>s</mi><mi>i</mi><mi>g</mi><mi>n</mi><mrow><mo>(</mo><msubsup><mi>Y</mi><mrow><mi>m</mi><mi>j</mi></mrow><mrow><mi>k</mi><mo>,</mo><mi>t</mi></mrow></msubsup><mo>)</mo></mrow><mi>s</mi><mi>i</mi><mi>g</mi><mi>n</mi><mrow><mo>(</mo><msubsup><mi>A</mi><mi>m</mi><mrow><mi>k</mi><mo>,</mo><mi>t</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow><mi>M</mi><mi>i</mi><mi>n</mi><mrow><mo>(</mo><munder><mrow><mi>M</mi><mi>i</mi><mi>n</mi></mrow><mrow><mi>j</mi><mo>&Element;</mo><mi>N</mi><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow></mrow></munder><mo>|</mo><msubsup><mi>Y</mi><mrow><mi>m</mi><mi>j</mi></mrow><mrow><mi>k</mi><mo>,</mo><mi>t</mi></mrow></msubsup><mo>|</mo><mo>,</mo><msubsup><mi>A</mi><mi>m</mi><mrow><mi>k</mi><mo>,</mo><mi>t</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow></mrow>]]></math><img file="FDA00010706615800000112.GIF" wi="1103" he="130" /></maths><maths num="0004"><math><![CDATA[<mrow><msubsup><mi>B</mi><mi>m</mi><mrow><mi>k</mi><mo>,</mo><mi>t</mi></mrow></msubsup><mo>=</mo><munder><mo>&Pi;</mo><mrow><mi>j</mi><mo>&Element;</mo><mi>N</mi><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow></mrow></munder><mi>s</mi><mi>i</mi><mi>g</mi><mi>n</mi><mrow><mo>(</mo><msubsup><mi>Y</mi><mrow><mi>m</mi><mi>j</mi></mrow><mrow><mi>k</mi><mo>,</mo><mi>t</mi></mrow></msubsup><mo>)</mo></mrow><mi>s</mi><mi>i</mi><mi>g</mi><mi>n</mi><mrow><mo>(</mo><msubsup><mi>B</mi><mi>m</mi><mrow><mi>k</mi><mo>,</mo><mi>t</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow><mi>M</mi><mi>i</mi><mi>n</mi><mrow><mo>(</mo><mo>(</mo><mrow><munder><mrow><mi>M</mi><mi>i</mi><mi>n</mi></mrow><mrow><mi>j</mi><mo>&Element;</mo><mi>N</mi><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow></mrow></munder><mo>|</mo><msubsup><mi>Y</mi><mrow><mi>m</mi><mi>j</mi></mrow><mrow><mi>k</mi><mo>,</mo><mi>t</mi></mrow></msubsup><mo>|</mo><mo>,</mo><mo>|</mo><msubsup><mi>A</mi><mi>m</mi><mrow><mi>k</mi><mo>,</mo><mi>t</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>|</mo><mo>,</mo><mo>|</mo><msubsup><mi>B</mi><mi>m</mi><mrow><mi>k</mi><mo>,</mo><mi>t</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>|</mo></mrow><mo>)</mo><mo>/</mo><mo>|</mo><msubsup><mi>A</mi><mi>m</mi><mrow><mi>k</mi><mo>,</mo><mi>t</mi></mrow></msubsup><mo>|</mo><mo>)</mo></mrow></mrow>]]></math><img file="FDA00010706615800000113.GIF" wi="1430" he="135" /></maths>其中,N(m)表示与校验节点m相关联的所有变量节点的集合,sign函数是符号函数,Min函数是求最小值函数,形式(A/B)表示集合A中除去B的集合;<img file="FDA00010706615800000114.GIF" wi="73" he="71" />表示第k次迭代的与位于第t分组的校验节点m相关联的变量节点j的译码迭代信息;对每次迭代的第1个分组,按照下式统计<img file="FDA0001070661580000021.GIF" wi="75" he="71" />和<img file="FDA0001070661580000022.GIF" wi="106" he="71" /><maths num="0005"><math><![CDATA[<mrow><msubsup><mi>A</mi><mi>m</mi><mrow><mi>k</mi><mo>,</mo><mn>1</mn></mrow></msubsup><mo>=</mo><munder><mo>&Pi;</mo><mrow><mi>j</mi><mo>&Element;</mo><mi>N</mi><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow></mrow></munder><mi>s</mi><mi>i</mi><mi>g</mi><mi>n</mi><mrow><mo>(</mo><msubsup><mi>Y</mi><mrow><mi>m</mi><mi>j</mi></mrow><mrow><mi>k</mi><mo>,</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow><munder><mrow><mi>M</mi><mi>i</mi><mi>n</mi></mrow><mrow><mi>j</mi><mo>&Element;</mo><mi>N</mi><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow></mrow></munder><mo>|</mo><msubsup><mi>Y</mi><mrow><mi>m</mi><mi>j</mi></mrow><mrow><mi>k</mi><mo>,</mo><mn>1</mn></mrow></msubsup><mo>|</mo></mrow>]]></math><img file="FDA0001070661580000023.GIF" wi="642" he="110" /></maths><maths num="0006"><math><![CDATA[<mrow><msubsup><mi>B</mi><mi>m</mi><mrow><mi>k</mi><mo>,</mo><mn>1</mn></mrow></msubsup><mo>=</mo><munder><mo>&Pi;</mo><mrow><mi>j</mi><mo>&Element;</mo><mi>N</mi><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow></mrow></munder><mi>s</mi><mi>i</mi><mi>g</mi><mi>n</mi><mrow><mo>(</mo><msubsup><mi>Y</mi><mrow><mi>m</mi><mi>j</mi></mrow><mrow><mi>k</mi><mo>,</mo><mn>1</mn></mrow></msubsup><mo>)</mo></mrow><munder><mrow><mi>M</mi><mi>i</mi><mi>n</mi></mrow><mrow><mi>j</mi><mo>&Element;</mo><mi>N</mi><mrow><mo>(</mo><mi>m</mi><mo>)</mo></mrow></mrow></munder><mrow><mo>(</mo><mo>|</mo><msubsup><mi>Y</mi><mrow><mi>m</mi><mi>j</mi></mrow><mrow><mi>k</mi><mo>,</mo><mn>1</mn></mrow></msubsup><mo>|</mo><mo>/</mo><mo>|</mo><msubsup><mi>A</mi><mi>m</mi><mrow><mi>k</mi><mo>,</mo><mn>1</mn></mrow></msubsup><mo>|</mo><mo>)</mo></mrow></mrow>]]></math><img file="FDA0001070661580000024.GIF" wi="805" he="118" /></maths>其中,k=1时的<img file="FDA0001070661580000025.GIF" wi="70" he="70" />等于初始化信息I<sub>j</sub>,I<sub>j</sub>表示输入到译码器的变量节点j的初始化信息;步骤4:判断是否满足迭代停止条件或者译码成功,若是,则输出译码结果,结束译码;否则,重复步骤2至步骤3,进行迭代,直到译码成功或满足迭代停止条件。
地址 100191 北京市海淀区学院路37号