发明名称 CRC逆序串行解码算法、扩展的并行逆序解码方法及装置
摘要 本发明公开了一种CRC逆序串行解码算法、扩展的并行逆序解码方法及装置,采用后进先出LIFO的方式,不仅能够实现零初态CRC编码的正确解码,并且能够实现非零初态的CRC编码的正确解码,能够一个时钟对多个输入比特进行快速地CRC解码。与现有技术相比,本发明充分利用了CRC编解码的特点,逆序解码,无须补零操作,能够对寄存器任意初态的CRC编码进行解码;采用并行结构,运算速度快,实现了鲁棒的、高速可变并行长度的CRC解码,便于硬件集成与实现,节省了电路系统开销,提高了系统的解码效率。
申请公布号 CN102868411B 申请公布日期 2015.03.11
申请号 CN201210401213.6 申请日期 2012.10.22
申请人 常熟理工学院 发明人 梁海华;盘丽娜
分类号 H03M13/09(2006.01)I 主分类号 H03M13/09(2006.01)I
代理机构 苏州创元专利商标事务所有限公司 32103 代理人 项丽
主权项 一种CRC逆序串行解码方法,其特征在于,包括如下步骤:A:设置(p<sub>0</sub>,p<sub>1</sub>…,p<sub>m‑1</sub>,p<sub>m</sub>)(p<sub>0</sub>=1、p<sub>m</sub>=1)为生成多项式G(X)=p<sub>m</sub>X<sup>m</sup>+p<sub>m‑1</sub>X<sup>m‑1</sup>…+p<sub>1</sub>X+p<sub>0</sub>的低次项到高次项的系数,设置t时刻寄存器i的状态序列为x<sub>m</sub>(t)x<sub>m‑1</sub>(t)...x<sub>2</sub>(t)x<sub>1</sub>(t),设置t时刻输入的处理数据为b(t),X(t+1)为CRC编码电路由信息序列b(t)生成t+1时刻的寄存器状态,对应状态序列为x<sub>m</sub>(t+1)x<sub>m‑1</sub>(t+1)...x<sub>2</sub>(t+1)x<sub>1</sub>(t+1);B:定义多项式G(X)的i次项的系数p<sub>i</sub>为m×1阶矩阵P′的第i行第1列,其中i=1,2,…m‑1,P′的第m行第1列为1,即<maths num="0001" id="cmaths0001"><math><![CDATA[<mrow><msup><mi>P</mi><mo>&prime;</mo></msup><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>p</mi><mn>1</mn></msub></mtd></mtr><mtr><mtd><msub><mi>p</mi><mn>2</mn></msub></mtd></mtr><mtr><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd></mtr><mtr><mtd><msub><mi>p</mi><mrow><mi>m</mi><mo>-</mo><mn>1</mn></mrow></msub></mtd></mtr><mtr><mtd><mn>1</mn></mtd></mtr></mtable></mfenced><mo>;</mo></mrow>]]></math><img file="FSB0000134260190000011.GIF" wi="283" he="427" /></maths>定义m阶方阵Γ的第j行第1列为P′的第j行第1列,其中j=1,2,…m,定义Γ的第j行第j+1列为1,其中,j=1,2,…m‑1,定义Γ的其它位置为0,即<maths num="0002" id="cmaths0002"><math><![CDATA[<mrow><mi>&Gamma;</mi><mo>=</mo><mfenced open='[' close=']'><mtable><mtr><mtd><msub><mi>p</mi><mn>1</mn></msub></mtd><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><msub><mi>p</mi><mn>2</mn></msub></mtd><mtd><mn>0</mn></mtd><mtd><mn>1</mn></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd></mtr><mtr><mtd><msub><mi>p</mi><mrow><mi>m</mi><mo>-</mo><mn>1</mn></mrow></msub></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mn>1</mn></mtd></mtr><mtr><mtd><mn>1</mn></mtd><mtd><mn>0</mn></mtd><mtd><mn>0</mn></mtd><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd><mtd><mn>0</mn></mtd></mtr></mtable></mfenced><mo>;</mo></mrow>]]></math><img file="FSB0000134260190000012.GIF" wi="653" he="425" /></maths>C:将X(t+1)逆序排列为x<sub>1</sub>(t+1)x<sub>2</sub>(t+1)...x<sub>m‑1</sub>(t+1)x<sub>m</sub>(t+1)并定义为X′(t+1),根据关系式<maths num="0003" id="cmaths0003"><math><![CDATA[<mrow><msup><mi>X</mi><mo>&prime;</mo></msup><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow><mo>=</mo><mi>&Gamma;</mi><mo>&CircleTimes;</mo><msup><mi>X</mi><mrow><mo>&prime;</mo><mi></mi></mrow></msup><mrow><mo>(</mo><mi>t</mi><mo>+</mo><mn>1</mn><mo>)</mo></mrow><mo>&CirclePlus;</mo><mfenced open='[' close=']'><mtable><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mo>.</mo><mo>.</mo><mo>.</mo></mtd></mtr><mtr><mtd><mn>0</mn></mtd></mtr><mtr><mtd><mi>b</mi><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mtd></mtr></mtable></mfenced></mrow>]]></math><img file="FSB0000134260190000013.GIF" wi="650" he="341" /></maths>计算得到t时刻寄存器状态x<sub>1</sub>(t)x<sub>2</sub>(t)...x<sub>m‑1</sub>(t)x<sub>m</sub>(t),并定义为X′(t),式中<img file="FSB0000134260190000014.GIF" wi="58" he="57" />为模2乘法、<img file="FSB0000134260190000015.GIF" wi="73" he="67" />为模2加法运算;D:如果步骤C中所得X′(t)的逆序与编码时的状态序列X(t)一致,则解码正确,否则解码错误。
地址 215500 江苏省常熟市南三环路99号