发明名称 低密度奇偶校验码的低复杂度编码方法
摘要 本发明涉及一种低密度奇偶校验码的低复杂度编码方法,尤其涉及一种以码长为2540比特、码率为4/5的低密度奇偶校验码为核心的扩展编码,是一种用于纠正信道差错数据的高效编码方法,属于通信信道编码技术领域。首先对长度为KC比特的信息序列进行预处理,使得信息序列长度为2032比特;建立一个校验矩阵H;根据该信息序列和校验矩阵H,计算校验序列,将信息序列S和校验序列P合成,得到码长为2540比特、码率为4/5的码序列;对码序列进行删除和叠加操作,对操作后得到的码序列进行处理,得到码长为NC的码序列。本发明编码方法的优点是:在误码性能上没有损失,甚至在局部点上误码性能更为优越;实现复杂度非常低,非常有利于硬件实现,具有很强的应用前景。
申请公布号 CN101577553B 申请公布日期 2011.04.27
申请号 CN200910085063.0 申请日期 2009.05.31
申请人 清华大学 发明人 殷柳国;陆建华;裴玉奎
分类号 H03M13/00(2006.01)I;H03M13/11(2006.01)I 主分类号 H03M13/00(2006.01)I
代理机构 北京清亦华知识产权代理事务所(普通合伙) 11201 代理人 罗文群
主权项 1.一种低密度奇偶校验码的低复杂度编码方法,用于将长度为K<sub>C</sub>比特的信息序列编码成为长度为N<sub>C</sub>比特的码序列,其特征在于该编码方法包括以下步骤:(1)对长度为K<sub>C</sub>比特的信息序列进行预处理,若K<sub>C</sub>>2032,将K<sub>C</sub>个信息比特分成t组,使得<img file="FDA0000046274580000011.GIF" wi="361" he="126" /><img file="FDA0000046274580000012.GIF" wi="66" he="61" />为向下取整,其中t-1组信息序列长为<img file="FDA0000046274580000013.GIF" wi="141" he="126" />一组信息序列长为<img file="FDA0000046274580000014.GIF" wi="397" he="126" />满足<img file="FDA0000046274580000015.GIF" wi="616" he="126" />在t-1组长为<img file="FDA0000046274580000016.GIF" wi="115" he="126" />的信息序列后面填充<img file="FDA0000046274580000017.GIF" wi="257" he="126" />个0,长为<img file="FDA0000046274580000018.GIF" wi="372" he="126" />的信息序列后面填充<img file="FDA0000046274580000019.GIF" wi="514" he="126" />个0,得到长度为2032比特的信息序列S,S=(I<sub>0</sub>,I<sub>1</sub>,…,I<sub>2031</sub>);若K<sub>C</sub><2032,则在序列后面填充2032-K<sub>C</sub>个0,得到长度为2032比特的信息序列S,S=(I<sub>0</sub>,I<sub>1</sub>,…,I<sub>2031</sub>);(2)建立一个校验矩阵H:<img file="FDA00000462745800000110.GIF" wi="1008" he="286" />其中,<img file="FDA00000462745800000111.GIF" wi="716" he="361" />A<sub>508×2032</sub>由基矩阵A<sub>b</sub>扩展得到,扩展系数L为127,基矩阵<img file="FDA00000462745800000112.GIF" wi="1253" he="286" />A<sub>b</sub>中每一个零元素扩展为127×127维全零阵,非零元素利用迦罗华域GF(2<sup>7</sup>)扩展为127×127维非零子阵,扩展时对应的偏置因子和跳转因子如下表所示:<img file="FDA00000462745800000113.GIF" wi="1798" he="324" /><img file="FDA00000462745800000114.GIF" wi="1802" he="218" /><img file="FDA0000046274580000021.GIF" wi="1818" he="153" />上述表格中,第一个元素为偏置因子,第二个元素为跳转因子,斜线表示该位置没有偏置及跳转因子,在基矩阵A<sub>b</sub>中对应零元素;(3)根据上述长度为2032比特的信息序列S=(I<sub>0</sub>,I<sub>1</sub>,…,I<sub>2031</sub>)和校验矩阵H,计算得到校验序列P=(P<sub>0</sub>,P<sub>1</sub>,…,P<sub>507</sub>):计算公式为:<maths num="0001"><![CDATA[<math><mrow><msub><mi>p</mi><mn>0</mn></msub><mo>=</mo><msub><mi>I</mi><mn>51</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>313</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>410</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>582</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>776</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>974</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1035</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1177</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1284</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1446</mn></msub></mrow></math>]]></maths><maths num="0002"></maths><maths num="0003"><![CDATA[<math><mrow><msub><mi>p</mi><mn>1</mn></msub><mo>=</mo><msub><mi>p</mi><mn>0</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>31</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>341</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>469</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>604</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>868</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>972</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1071</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1258</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1351</mn></msub></mrow></math>]]></maths><maths num="0004"><![CDATA[<math><mrow><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1402</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1642</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1717</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1856</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1929</mn></msub></mrow></math>]]></maths><maths num="0005"><![CDATA[<math><mfenced open='' close=''><mtable><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd></mtr></mtable></mfenced></math>]]></maths><maths num="0006"><![CDATA[<math><mrow><msub><mi>p</mi><mn>126</mn></msub><mo>=</mo><msub><mi>p</mi><mn>125</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>107</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>327</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>499</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>538</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>777</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>920</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1098</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1264</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1318</mn></msub></mrow></math>]]></maths><maths num="0007"><![CDATA[<math><mrow><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1494</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1610</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1751</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1865</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1991</mn></msub></mrow></math>]]></maths><maths num="0008"><![CDATA[<math><mrow><msub><mi>p</mi><mn>127</mn></msub><mo>=</mo><msub><mi>I</mi><mn>108</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>171</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>362</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>444</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>551</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>751</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1101</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1221</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1290</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1462</mn></msub></mrow></math>]]></maths><maths num="0009"><![CDATA[<math><mrow><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1597</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1702</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1817</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1938</mn></msub></mrow></math>]]></maths><maths num="0010"><![CDATA[<math><mrow><msub><mi>p</mi><mn>128</mn></msub><mo>=</mo><msub><mi>p</mi><mn>127</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>66</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>158</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>366</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>390</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>625</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>741</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1068</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1245</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1337</mn></msub></mrow></math>]]></maths><maths num="0011"><![CDATA[<math><mrow><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1510</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1633</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1749</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1869</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>2013</mn></msub></mrow></math>]]></maths><maths num="0012"><![CDATA[<math><mfenced open='' close=''><mtable><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd></mtr></mtable></mfenced></math>]]></maths><maths num="0013"><![CDATA[<math><mrow><msub><mi>p</mi><mn>253</mn></msub><mo>=</mo><msub><mi>p</mi><mn>252</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>38</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>190</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>276</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>467</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>568</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>677</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1085</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1143</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1275</mn></msub></mrow></math>]]></maths><maths num="0014"><![CDATA[<math><mrow><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1453</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1529</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1735</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1877</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1975</mn></msub></mrow></math>]]></maths><maths num="0015"><![CDATA[<math><mrow><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>.</mo></mrow></math>]]></maths><maths num="0016"><![CDATA[<math><mrow><msub><mi>p</mi><mn>381</mn></msub><mo>=</mo><msub><mi>I</mi><mn>151</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>277</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>444</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>675</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>810</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>978</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1110</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1187</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1358</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1470</mn></msub></mrow></math>]]></maths><maths num="0017"><![CDATA[<math><mrow><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1596</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1743</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1808</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1908</mn></msub></mrow></math>]]></maths><maths num="0018"><![CDATA[<math><mrow><msub><mi>p</mi><mn>382</mn></msub><mo>=</mo><msub><mi>p</mi><mn>381</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>147</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>302</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>382</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>756</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>798</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>932</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1116</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1227</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1298</mn></msub></mrow></math>]]></maths><maths num="0019"><![CDATA[<math><mrow><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1410</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1581</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1677</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1878</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>2001</mn></msub></mrow></math>]]></maths><maths num="0020"><![CDATA[<math><mfenced open='' close=''><mtable><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd></mtr><mtr><mtd><mo>.</mo></mtd><mtd><mo>.</mo></mtd></mtr></mtable></mfenced></math>]]></maths><maths num="0021"><![CDATA[<math><mrow><msub><mi>p</mi><mn>507</mn></msub><mo>=</mo><msub><mi>p</mi><mn>506</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>216</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>292</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>405</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>639</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>801</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>964</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1124</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1163</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1277</mn></msub></mrow></math>]]></maths><maths num="0022"><![CDATA[<math><mrow><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1495</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1616</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1672</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1802</mn></msub><mo>&CirclePlus;</mo><msub><mi>I</mi><mn>1937</mn></msub></mrow></math>]]></maths>上述公式中,符号<img file="FDA00000462745800000224.GIF" wi="36" he="37" />表示二进制的模二加法;(4)将上述信息序列S和校验序列P合成,得到码长为2540比特、码率为4/5的码序列C,C=(S,P);(5)在上述码长为2540比特、码率为4/5的码序列C中,删除上述填充的值为0的信息比特,若K<sub>C</sub>>2032,将进行删除处理后的t组码序列再进行叠加,得到一个码长为508t+K<sub>C</sub>比特的码序列,若K<sub>C</sub><2032,删除处理后得到一个码长为508+K<sub>C</sub>比特的码序列;(6)对上述删除叠加操作后得到的码序列进行处理,若K<sub>C</sub>>2032,判断N<sub>C</sub>与508t+K<sub>C</sub>的大小:当N<sub>C</sub>>508t+K<sub>C</sub>时,在上述码长为508t+K<sub>C</sub>的码序列中选取N<sub>C</sub>-K<sub>C</sub>-508t个校验比特,并在所述码长为508t+K<sub>C</sub>的码序列后填充选取的校验比特,得到码长为N<sub>C</sub>的码序列;当N<sub>C</sub><508t+K<sub>C</sub>时,在上述码长为508t+K<sub>C</sub>的码序列中选取508t+K<sub>C</sub>-N<sub>C</sub>个校验比特并删除,得到码长为N<sub>C</sub>的码序列;若K<sub>C</sub><2032,判断N<sub>C</sub>与508+K<sub>C</sub>的大小:当N<sub>C</sub>>508+K<sub>C</sub>时,在上述码长为508+K<sub>C</sub>的码序列中选取N<sub>C</sub>-K<sub>C</sub>-508个校验比特,并在所述码长为508+K<sub>C</sub>的码序列后填充选取的校验比特,得到码长为N<sub>C</sub>的码序列;当N<sub>C</sub><508+K<sub>C</sub>时,在上述码长为508+K<sub>C</sub>的码序列中选取508+K<sub>C</sub>-N<sub>C</sub>个校验比特并删除,得到码长为N<sub>C</sub>的码序列。
地址 100084 北京市海淀区清华园