发明名称 一种LDPC译码消息存储结构及译码方法
摘要 一种LDPC译码消息存储结构及译码方法,属移动通信信道编码领域,该LDPC译码消息存储结构只存储LDPC校验矩阵H中非零元素所对应的译码消息,在软件或是硬件实现时能大大减少译码消息的存储空间。同时在采用本译码消息存储结构相适应的BP(Belief Propagation)译码方法时,通过事先准备好的校验矩阵非零元素行、列统计信息,可加快译码消息寻址速度,从而加快译码速度。
申请公布号 CN103401655A 申请公布日期 2013.11.20
申请号 CN201310351668.6 申请日期 2013.08.14
申请人 山东大学 发明人 马丕明;王继来;杨勇
分类号 H04L1/00(2006.01)I 主分类号 H04L1/00(2006.01)I
代理机构 济南金迪知识产权代理有限公司 37219 代理人 许德山
主权项 1.一种LDPC译码消息存储结构及译码方法,该译码消息存储结构只记录LDPC码校验矩阵H中非零元素所对应的译码消息,在用BP或MS算法译码时采用与本译码消息存储结构相对应的寻址方式对译码消息进行处理,定义符号:M表示校验矩阵的行数;N表示校验矩阵的列数;C<sub>n</sub>为和变量节点n相连的校验节点的集合,n=0,1,...,N-1;R<sub>m</sub>为和校验节点m相连的变量节点的集合,m=0,1,...,M-1;C<sub>n</sub>/m表示除去校验节点m的C<sub>n</sub>的集合;R<sub>m</sub>/n表示除去变量节点n的R<sub>m</sub>的集合;<img file="FDA00003662006300011.GIF" wi="72" he="83" />和<img file="FDA00003662006300012.GIF" wi="66" he="86" />分别为第l次迭代中从变量节点n到校验节点m和从校验节点m到变量节点n的对数似然比消息;α<sub>nm</sub>表示<img file="FDA00003662006300017.GIF" wi="64" he="47" />的符号;β<sub>nm</sub>表示<img file="FDA00003662006300018.GIF" wi="66" he="51" />的幅值,消息存储结构组成:行号;列号;α<sub>nm</sub>消息;β<sub>nm</sub>消息;<img file="FDA00003662006300019.GIF" wi="65" he="48" />消息;r<sub>mn</sub>消息,该译码消息存储结构同时能够表示为一个译码消息存储子单元,该译码方法通过计算机C语言编程实现,其具体步骤如下:1)校验矩阵H非零元素信息统计统计待译码码字所对应的校验矩阵H非零元素的总数记作ALL,校验矩阵H每行、每列非零元素的数目以及每个非零元素在校验矩阵所对应的行号、列号;2)开辟译码消息存储空间并初始化部分消息开辟校验矩阵H非零元素的总数个译码消息存储子单元,并按行号的升序将每个非零元素在校验矩阵所对应的行号、列号赋给每个译码消息存储子单元的行号、列号;3)记录列号为i时,0≤i<N,译码消息存储子单元的个数及序号,其中N表示校验矩阵的列数;4)采用对应的方式实现译码过程a)初始化:变量节点n到校验节点m的消息被初始化为从信道来的消息,即<maths num="0001"><![CDATA[<math><mrow><msubsup><mi>q</mi><mi>nm</mi><mn>0</mn></msubsup><mo>=</mo><mi>L</mi><mrow><mo>(</mo><msub><mi>z</mi><mi>n</mi></msub><mo>)</mo></mrow><mo>=</mo><mo>-</mo><msub><mrow><mn>2</mn><mi>y</mi></mrow><mi>n</mi></msub><mo>/</mo><msup><mi>&sigma;</mi><mn>2</mn></msup></mrow></math>]]></maths>y<sub>n</sub>为还未经过解调的信号;z<sub>n</sub>为LDPC编码码字;σ<sup>2</sup>为AWGN信道中的噪声方差;α<sub>nm</sub>消息初始化:<img file="FDA00003662006300014.GIF" wi="357" he="94" />其中符号sgn表示对<img file="FDA00003662006300015.GIF" wi="124" he="96" />取符号;β<sub>nm</sub>消息初始化:<maths num="0002"><![CDATA[<math><mrow><msub><mi>&beta;</mi><mi>nm</mi></msub><mo>=</mo><mo>|</mo><msubsup><mi>q</mi><mi>nm</mi><mrow><mi>l</mi><mo>-</mo><mn>1</mn></mrow></msubsup><mo>|</mo></mrow></math>]]></maths>迭代次数l=1;b)第一步:校验节点处理校验节点m收集与它相邻的变量节点n’的消息,取出行号为i的译码消息存储子单元参与运算,i=m,再加上自身的校验方程的约束条件,得到第l次迭代中从校验节点m到变量节点n的对数似然比消息<img file="FDA00003662006300021.GIF" wi="90" he="86" /><maths num="0003"><![CDATA[<math><mrow><msubsup><mi>r</mi><mi>mn</mi><mi>l</mi></msubsup><mo>=</mo><mrow><mo>(</mo><munder><mi>&Pi;</mi><mrow><msup><mi>n</mi><mo>&prime;</mo></msup><mo>&Element;</mo><msub><mi>R</mi><mi>m</mi></msub><mo>/</mo><mi>n</mi></mrow></munder><msub><mi>&alpha;</mi><mrow><msup><mi>n</mi><mo>&prime;</mo></msup><mi>m</mi></mrow></msub><mo>)</mo></mrow><mo>&CenterDot;</mo><mi>&phi;</mi><mrow><mo>(</mo><munder><mi>&Sigma;</mi><mrow><msup><mi>n</mi><mo>&prime;</mo></msup><mo>&Element;</mo><msub><mi>R</mi><mi>m</mi></msub><mo>/</mo><mi>n</mi></mrow></munder><mi>&phi;</mi><mrow><mo>(</mo><msub><mi>&beta;</mi><mrow><msup><mi>n</mi><mo>&prime;</mo></msup><mi>m</mi></mrow></msub><mo>)</mo></mrow><mo>)</mo></mrow></mrow></math>]]></maths>其中<img file="FDA00003662006300023.GIF" wi="356" he="92" /><img file="FDA00003662006300024.GIF" wi="252" he="101" />φ(x)=-logtanh(x/2)=log[(e<sup>x</sup>+1)/(e<sup>x</sup>-1)],α<sub>n'm</sub>表示<img file="FDA00003662006300025.GIF" wi="76" he="87" />的符号;β<sub>n'm</sub>表示<img file="FDA00003662006300026.GIF" wi="79" he="86" />的幅值,<img file="FDA00003662006300027.GIF" wi="85" he="87" />表示第l-1次迭代校验节点m相邻的变量节点n’到校验节点m的对数似然比消息,n'表示和校验节点m相邻的变量节点;c)第二步:变量节点处理变量节点n收集与它相邻的校验节点的消息,还有来自信道的初始化消息L(z<sub>n</sub>),取出列号为j的译码消息存储子单元参与运算,j=n,对于所有的变量节点n和校验节点m∈C<sub>n</sub>,消息更新如下:<maths num="0004"><![CDATA[<math><mrow><msubsup><mi>q</mi><mi>nm</mi><mi>l</mi></msubsup><mo>=</mo><mi>L</mi><mrow><mo>(</mo><msub><mi>z</mi><mi>n</mi></msub><mo>)</mo></mrow><mo>+</mo><munder><mi>&Sigma;</mi><mrow><msup><mi>m</mi><mo>&prime;</mo></msup><mo>&Element;</mo><msub><mi>C</mi><mi>n</mi></msub><mo>/</mo><mi>m</mi></mrow></munder><msubsup><mi>r</mi><mrow><msup><mi>m</mi><mo>&prime;</mo></msup><mi>n</mi></mrow><mi>l</mi></msubsup></mrow></math>]]></maths>更新变量节点n的对数似然比消息:<img file="FDA00003662006300029.GIF" wi="452" he="136" />其中<img file="FDA000036620063000210.GIF" wi="64" he="86" />表示变量节点n收集到的所有的对数似然比消息;d)第三步:硬件判决和迭代停止条件判定如果<maths num="0005"><![CDATA[<math><mrow><msubsup><mi>Q</mi><mi>n</mi><mi>l</mi></msubsup><mo>&lt;</mo><mn>0</mn><mo>,</mo></mrow></math>]]></maths>译码出来的码字比特<maths num="0006"><![CDATA[<math><mrow><msubsup><mover><mi>z</mi><mo>^</mo></mover><mi>n</mi><mi>l</mi></msubsup><mo>=</mo><mn>1</mn><mo>,</mo></mrow></math>]]></maths>如<maths num="0007"><![CDATA[<math><mrow><msubsup><mi>Q</mi><mi>n</mi><mi>l</mi></msubsup><mo>&GreaterEqual;</mo><mn>0</mn><mo>,</mo></mrow></math>]]></maths>则<maths num="0008"><![CDATA[<math><mrow><msubsup><mover><mi>z</mi><mo>^</mo></mover><mi>n</mi><mi>l</mi></msubsup><mo>=</mo><mn>0</mn><mo>;</mo></mrow></math>]]></maths>如果<img file="FDA000036620063000215.GIF" wi="275" he="72" />其中H表示LDPC码校验矩阵、<img file="FDA000036620063000216.GIF" wi="53" he="62" />表示译出的码字向量、<img file="FDA000036620063000217.GIF" wi="111" he="75" />表示译出的码字向量的转秩、<img file="FDA000036620063000218.GIF" wi="175" he="74" />表示校验矩阵与译出码字的转秩做内积,或者迭代次数l达到最大迭代次数l<sub>max</sub>,迭代停止;若<img file="FDA000036620063000219.GIF" wi="252" he="81" />且l≠l<sub>max</sub>则l=l+1,然后转入步骤b)。
地址 250100 山东省济南市历城区山大南路27号