发明名称 一种Raptor码的解码方法
摘要 本发明公开了一种Raptor码的解码方法。由于现有的Raptor解码技术为了保证一次性解码成功的高概率,接收的符号数较多,而且一旦解码不成功就必须重启整个解码过程。本发明提出的方法,能够从可能解码成功的最少符号开始解码,如解码不成功,只需继续接收1个新符号,利用解码失败的结果继续解码,直至解码成功。本发明解决了现有技术解码算法中高斯消元对矩阵线性关系的破坏这一问题。改进方法简单,开销小,增强了解码实时性,使其实用性大大加强。
申请公布号 CN101882972B 申请公布日期 2012.08.22
申请号 CN201010191845.5 申请日期 2010.06.04
申请人 中国传媒大学 发明人 石东新;徐伟掌;张远;杨占昕;杨爽
分类号 H04L1/00(2006.01)I;H03M13/00(2006.01)I 主分类号 H04L1/00(2006.01)I
代理机构 代理人
主权项 1.一种Raptor码的解码方法,其特征在于,包括以下步骤:步骤1:首先,至少接收K个符号,构造矩阵<maths num="0001"><![CDATA[<math><mrow><msub><mi>A</mi><mrow><mi>L</mi><mo>&times;</mo><mi>L</mi></mrow></msub><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mrow><mo>(</mo><msub><mi>G</mi><mi>LDPC</mi></msub><mo>)</mo></mrow><mrow><mi>S</mi><mo>&times;</mo><mi>K</mi></mrow></msub></mtd><mtd><msub><mi>I</mi><mrow><mi>S</mi><mo>&times;</mo><mi>S</mi></mrow></msub></mtd><mtd><msub><mn>0</mn><mrow><mi>S</mi><mo>&times;</mo><mi>H</mi></mrow></msub></mtd></mtr><mtr><mtd><msub><mrow><mo>(</mo><msub><mi>H</mi><mi>Half</mi></msub><mo>)</mo></mrow><mrow><mi>H</mi><mo>&times;</mo><mrow><mo>(</mo><mi>S</mi><mo>+</mo><mi>K</mi><mo>)</mo></mrow></mrow></msub></mtd><mtd></mtd><mtd><msub><mi>I</mi><mrow><mi>H</mi><mo>&times;</mo><mi>H</mi></mrow></msub></mtd></mtr><mtr><mtd></mtd><mtd><msub><mrow><mo>(</mo><msub><mi>G</mi><mi>LT</mi></msub><mo>)</mo></mrow><mrow><mi>K</mi><mo>&times;</mo><mi>L</mi></mrow></msub></mtd><mtd></mtd></mtr></mtable></mfenced><mo>,</mo></mrow></math>]]></maths>其中,I<sub>S×S</sub>和I<sub>H×H</sub>分别是S阶和H阶的单位阵,0<sub>S×H</sub>为S×H阶的零矩阵,(G<sub>LDPC</sub>)<sub>S×K</sub>和(H<sub>Half</sub>)<sub>H×(S+K)</sub>分别是LDPC校验矩阵和Half校验矩阵,(G<sub>LT</sub>)<sub>K×L</sub>是LT编码矩阵,L=S+H+K;步骤2:对矩阵A<sub>L×L</sub>进行高斯变换,变换为<img file="FSB00000822864000012.GIF" wi="88" he="109" />的模式,其中I为i×i的单位阵,O为零矩阵,U矩阵有L行u列元素;步骤3:在对矩阵A<sub>L×L</sub>进行高斯消元法变换时,记录所有发生的列交换位置信息;步骤4:将矩阵U划分为i行子矩阵U_upper和L-i行子矩阵U_lower;对U_lower用无列交换的高斯消元法进行变换,如果U_lower的秩是u,则将其变换成u×u的单位阵I_u,转向步骤6;否则如果U_lower的秩u’<u,只能将U_lower转化为u’×u的矩阵I_u’,A矩阵末行会有零行出现,转向步骤5;步骤5:接收一个新的符号E[x<sub>k+i</sub>],其序号是x<sub>k+i</sub>,每接收一个新符号,i按1,2…n递增,新符号存入D[d[L-1+i]],其中d[L-1+i]=L-1+i;将序号x<sub>k+i</sub>按LT编码算法得到一串长度为L的数据串,可看做一个1×L的矩阵;按照步骤3记录的对矩阵A<sub>L×L</sub>进行的所有列交换位置信息,对该1×L的矩阵按列进行列变换;然后将变换后的1×L矩阵加入到步骤4得到的矩阵A<sub>L×L</sub>的L+i行,将该行与矩阵A<sub>L×L</sub>第一行的0行交换,得到新的矩阵A<sub>L×L</sub>′,回到步骤4对矩阵A<sub>L×L</sub>′重新操作;步骤6:如果由步骤4直接转到该步骤,则U_lower将被变换成u×u的单位阵I_u;如果经历过步骤5,则删除矩阵A<sub>L×L</sub>′的全部0行;此时再用单位阵I_u将子矩阵U_upper中的1全部消去,原矩阵A<sub>L×L</sub>转化为单位阵,实现矩阵求逆,则中间符号C[c[0]],C[c[1]],...,C[c[L-1]]=D[d[0]],D[d[1]],...,D[d[L-1]];步骤7:用序号0,...,K-1,按LT编码算法得到该序号对应的矩阵G<sub>LT</sub>′,用该矩阵和中间符号C[0],C[1],...,C[K-1]相乘,即可解得K个源符号,实现了解码。
地址 100024 北京市朝阳区定福庄东街1号