发明名称 一种用循环冗余校验码进行并行校验的方法
摘要 本发明涉及一种用循环冗余校验码进行并行校验的方法,属于移动无线数据传输技术领域。这种方法设长度为n,信息位个数为k的循环冗余校验码的校验矩阵,待校验的数据序列用向量C表示,进行乘法并行计算处理:H*CT,计算结果为一个向量P;判断P是否全为0,若P全为0则待校验的序列正确,否则待校验的序列错误。使用本方法能够方便的进行并行校验,能大大减少校验的时间;同时实现平台能提供的并行度越大,本校验方法所需的时间越少。
申请公布号 CN101847999B 申请公布日期 2012.10.10
申请号 CN201010191275.X 申请日期 2010.05.28
申请人 清华大学 发明人 陈翔;赵明;赵俊韬;赵熠飞;王京
分类号 H03M13/09(2006.01)I 主分类号 H03M13/09(2006.01)I
代理机构 北京清亦华知识产权代理事务所(普通合伙) 11201 代理人 廖元秋
主权项 1.一种用循环冗余校验码进行并行校验的方法,其特征在于,设长度为n,信息位个数为k的循环冗余校验码的校验矩阵为H,H为一个(n-k)×n的矩阵,待校验的数据序列用向量C表示,C=[c<sub>0</sub>,c<sub>1</sub>,...,c<sub>i</sub>,...,c<sub>n-1</sub>],进行乘法并行计算处理:H*C<sup>T</sup>,T表示转置,计算结果为一个(n-k)×1的向量P;判断P是否全为0,若P全为0则待校验的序列正确,否则待校验的序列错误;所述乘法并行计算处理包括以下步骤:步骤(1)  将校验矩阵H分成t×s个子矩阵,<maths num="0001"><![CDATA[<math><mrow><mi>H</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>H</mi><mn>00</mn></msub><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msub><mi>H</mi><mrow><mn>0</mn><mi>j</mi></mrow></msub><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msub><mi>H</mi><mrow><mn>0</mn><mrow><mo>(</mo><mi>s</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub></mtd></mtr><mtr><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd></mtr><mtr><mtd><msub><mi>H</mi><mrow><mi>i</mi><mn>0</mn></mrow></msub><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msub><mi>H</mi><mi>ij</mi></msub><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msub><mi>H</mi><mrow><mi>i</mi><mrow><mo>(</mo><mi>s</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub></mtd></mtr><mtr><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd></mtr><mtr><mtd><msub><mi>H</mi><mrow><mrow><mo>(</mo><mi>t</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mn>0</mn></mrow></msub><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msub><mi>H</mi><mrow><mrow><mo>(</mo><mi>t</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mi>j</mi></mrow></msub><mo>,</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>,</mo><msub><mi>H</mi><mrow><mrow><mo>(</mo><mi>t</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow><mrow><mo>(</mo><mi>s</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub></mtd></mtr></mtable></mfenced><mo>;</mo></mrow></math>]]></maths>其中t取为(n-k)的约数,s取为n的约数,并且使t×s等于实现平台的最大并行度;步骤(2)  将向量C分为s个子向量,  C=[C<sub>0</sub>,C<sub>1</sub>,…,C<sub>j</sub>,…,C<sub>s-1</sub>];步骤(3)  并行计算子矩阵H<sub>ij</sub>和子向量C<sub>j</sub>的乘积<img file="FSB00000854026200012.GIF" wi="199" he="90" /><img file="FSB00000854026200013.GIF" wi="270" he="78" />其中0≤i<t,0≤j<s,Q<sub>ij</sub>是一个长为(n-k)/t的列向量;步骤(4)  并行计算<maths num="0002"><![CDATA[<math><mrow><msub><mi>P</mi><mi>i</mi></msub><mo>=</mo><munderover><mi>&Sigma;</mi><mrow><mi>j</mi><mo>=</mo><mn>0</mn></mrow><mrow><mi>s</mi><mo>-</mo><mn>1</mn></mrow></munderover><msub><mi>Q</mi><mi>ij</mi></msub><mo>=</mo><msub><mi>Q</mi><mrow><mi>i</mi><mn>0</mn></mrow></msub><mo>+</mo><msub><mi>Q</mi><mrow><mi>i</mi><mn>1</mn></mrow></msub><mo>+</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>+</mo><msub><mi>Q</mi><mi>ij</mi></msub><mo>+</mo><mo>.</mo><mo>.</mo><mo>.</mo><mo>+</mo><msub><mi>Q</mi><mrow><mi>i</mi><mrow><mo>(</mo><mi>s</mi><mo>-</mo><mn>1</mn><mo>)</mo></mrow></mrow></msub><mo>,</mo></mrow></math>]]></maths>其中P<sub>i</sub>(0≤i<t)是一个长为(n-k)/t的列向量;步骤(5)  并行判断向量P<sub>i</sub>(0≤i<t)是否全为0,若所有的向量P<sub>i</sub>(0≤i<t)全为0,则说明待校验的数据序列正确,否则认为待校验的数据序列错误。
地址 100085 北京市海淀区清华园1号