发明名称 一种信道纠错码RS码迭代译码解关键方程方法
摘要 本发明一种信道纠错码RS码迭代译码解关键方程方法,其特点在于:对于纠错能力为t比特的RS码来说,采用改进的RiBM迭代译码方法求解关键方程,通过删除部分冗余运算,将RiBM迭代过程中的数据流位宽由3t+1压缩为2t+4,从而大大降低了运算量,提高了运算效率,实现了RS码的高效译码。
申请公布号 CN104579367A 申请公布日期 2015.04.29
申请号 CN201410765054.7 申请日期 2014.12.11
申请人 北京时代民芯科技有限公司;北京微电子技术研究所 发明人 郭晨光;乐立鹏;张建军;文治平;权海洋
分类号 H03M13/15(2006.01)I 主分类号 H03M13/15(2006.01)I
代理机构 中国航天科技专利中心 11009 代理人 安丽
主权项 一种信道纠错码RS码迭代译码解关键方程方法,其特征在于步骤如下:(1)设RS码的纠错能力为t比特,从计算伴随式处接收2t个伴随多项式系数:s<sub>1</sub>,s<sub>2</sub>,…,s<sub>2t</sub>;其中,t为大于0的正整数;(2)定义迭代次数r,r为整数,初值为0;定义位宽为2t+4的数据流δ<sub>i</sub>(r)以及中间变量数据流θ<sub>i</sub>(r),对位宽为2t+4的数据流δ<sub>i</sub>(r)赋初值:δ<sub>i</sub>(0)=s<sub>i</sub>,(i=1,2,…,2t);δ<sub>i</sub>(0)=0,(i=2t+1,2t+3,2t+4);δ<sub>2t+2</sub>(0)=1;对中间变量数据流θ<sub>i</sub>(r)赋初值:θ<sub>i</sub>(0)=s<sub>i</sub>,(i=1,2,…,2t),θ<sub>i</sub>(0)=0,(i=2t+1,2t+3,2t+4);θ<sub>2t+2</sub>(0)=1;定义中间变量γ(r)和k(r),并赋初值:γ(0)=1,k(0)=0;定义迭代变量iter,则在第r次迭代运算过程中,令iter=(δ<sub>1</sub>(r)≠0&amp;&amp;k(r)≥0),式中,“&amp;&amp;”为逻辑与运算;(3)将步骤(2)的迭代变量iter=(δ<sub>1</sub>(r)≠0&amp;&amp;k(r)≥0)的计算结果分为Case0、Case1和Case2三种情形;所述Case0是:迭代变量iter在r=0时初值为1,随着迭代次数r的累加,迭代变量iter在1和0之间交替切换,直至迭代变量iter恒为0;所述Case1是:当r为偶数时,迭代变量iter等于0,随着迭代次数r的累加,当r为奇数时,出现迭代变量iter等于1的情形;设首次出现Case1情形且迭代变量iter等于1时对应的迭代次数为r<sub>1</sub>;所述Case2是:当r为偶数时,迭代变量iter等于0,随着迭代次数r的累加,当r再次为偶数时,出现迭代变量iter等于1的情形;设首次出现Case2情形且迭代变量iter等于1时对应的迭代次数为r<sub>2</sub>;(4)首轮迭代次数r初值为0,累加1后转入步骤(5);从下一轮迭代开始,将从步骤(9)返回的r累加1,并转入步骤(5);(5)在步骤(3)所述的Case0情形下:当r为奇数或r等于2t时,δ<sub>i</sub>(r+1)=γ(r)δ<sub>i+1</sub>(r)‑δ<sub>1</sub>(r)θ<sub>i</sub>(r),(i=1,2,…,2t+4);当r为偶数且r不等于2t时,若2t+2‑r/2≤i≤2t+4,δ<sub>i</sub>(r+1)更新但不传递,即δ<sub>i</sub>(r+1)=γ(r)δ<sub>i</sub>(r)‑δ<sub>1</sub>(r)θ<sub>i‑1</sub>(r);若i=2t+1‑r/2,则δ<sub>i</sub>(r+1)需要进行补0操作,即δ<sub>i</sub>(r+1)=γ(r)·0‑δ<sub>1</sub>(r)θ<sub>i</sub>(r);若1≤i≤2t‑r/2,则δ<sub>i</sub>(r+1)=γ(r)δ<sub>i+1</sub>(r)‑δ<sub>1</sub>(r)θ<sub>i</sub>(r);在步骤(3)所述的Case1情形下:当r=r<sub>1</sub>+1时,若2t+(5‑r<sub>1</sub>)/2≤i≤2t+4,δ<sub>i</sub>(r+1)更新但不传递,即δ<sub>i</sub>(r+1)=γ(r)δ<sub>i</sub>(r)‑δ<sub>1</sub>(r)θ<sub>i‑1</sub>(r);若i=2t+(3‑r<sub>1</sub>)/2,则δ<sub>i</sub>(r+1)接收中间变量θ<sub>i</sub>(r)的更新值但不传递,即δ<sub>i</sub>(r+1)=γ(r)δ<sub>i</sub>(r)‑δ<sub>1</sub>(r)θ<sub>i</sub>(r);若i=2t+(1‑r<sub>1</sub>)/2,则δ<sub>i</sub>(r+1)需要进行补0操作,即δ<sub>i</sub>(r+1)=γ(r)·0‑δ<sub>1</sub>(r)θ<sub>i</sub>(r);若1≤i≤2t‑(1+r<sub>1</sub>)/2,则δ<sub>i</sub>(r+1)=γ(r)δ<sub>i+1</sub>(r)‑δ<sub>1</sub>(r)θ<sub>i</sub>(r);当r≠r<sub>1</sub>+1时仍然按照Case0情形更新δ<sub>i</sub>(r+1)的值;在步骤(3)所述的Case2情形下:当r=r<sub>2</sub>时,若2t+3‑r<sub>2</sub>/2≤i≤2t+4,δ<sub>i</sub>(r+1)更新但不传递,即δ<sub>i</sub>(r+1)=γ(r)δ<sub>i</sub>(r)‑δ<sub>1</sub>(r)θ<sub>i‑1</sub>(r);若i=2t+1‑r<sub>2</sub>/2或2t+2‑r<sub>2</sub>/2,则δ<sub>i</sub>(r+1)接收中间变量θ<sub>i</sub>(r)的更新值但不传递,即δ<sub>i</sub>(r+1)=γ(r)δ<sub>i</sub>(r)‑δ<sub>1</sub>(r)θ<sub>i</sub>(r);若1≤i≤2t‑r<sub>2</sub>/2,δ<sub>i</sub>(r+1)=γ(r)δ<sub>i+1</sub>(r)‑δ<sub>1</sub>(r)θ<sub>i</sub>(r);若r&lt;r<sub>2</sub>,仍然按照Case0情形更新δ<sub>i</sub>(r+1)的值;若r&gt;r<sub>2</sub>,且r为奇数或者r等于2t时,δ<sub>i</sub>(r+1)=γ(r)δ<sub>i+1</sub>(r)‑δ<sub>1</sub>(r)θ<sub>i</sub>(r),(i=1,2,…,2t+4);若r&gt;r<sub>2</sub>,且r为偶数但r不等于2t时,若2t+1‑r/2≤i≤2t+4,δ<sub>i</sub>(r+1)更新但不传递,即δ<sub>i</sub>(r+1)=γ(r)δ<sub>i</sub>(r)‑δ<sub>1</sub>(r)θ<sub>i‑1</sub>(r);若i=2t‑r/2,则δ<sub>i</sub>(r+1)需要进行补0操作,即δ<sub>i</sub>(r+1)=γ(r)·0‑δ<sub>1</sub>(r)θ<sub>i</sub>(r);若1≤i≤2t‑1‑r/2,δ<sub>i</sub>(r+1)=γ(r)δ<sub>i+1</sub>(r)‑δ<sub>1</sub>(r)θ<sub>i</sub>(r);(6)根据步骤(2)中的迭代变量iter决定中间变量数据流θ<sub>i</sub>(r+1)、中间变量γ(r+1)和k(r+1)的更新方式,若iter=1则转入步骤(7),若iter=0则转入步骤(8);(7)更新中间变量γ(r+1)和k(r+1),γ(r+1)=δ<sub>1</sub>(r),k(r+1)=‑k(r)‑1,根据步骤(3)的Case0、Case1和Case2三种情形,分别更新中间变量数据流θ<sub>i</sub>(r+1):在Case0情形下,θ<sub>i</sub>(r+1)=δ<sub>i+1</sub>(r),(i=1,2,…,2t+4);在Case1情形下,当r=r<sub>1</sub>+1时,若2t+(3‑r<sub>1</sub>)/2≤i≤2t+4,θ<sub>i</sub>(r+1)取当前δ<sub>i</sub>(r)的值,即θ<sub>i</sub>(r+1)=δ<sub>i</sub>(r);若i=2t+(1‑r<sub>1</sub>)/2,则θ<sub>i</sub>(r+1)需要进行补0操作,即θ<sub>i</sub>(r+1)=0;若1≤i≤2t‑(1+r<sub>1</sub>)/2,θ<sub>i</sub>(r+1)=δ<sub>i+1</sub>(r);当r≠r<sub>1</sub>+1时仍然按照Case0情形更新θ<sub>i</sub>(r+1)的值;在Case2情形下,当r=r<sub>2</sub>时,若2t+1‑r<sub>2</sub>/2≤i≤2t+4,θ<sub>i</sub>(r+1)取当前δ<sub>i</sub>(r)的值,即θ<sub>i</sub>(r+1)=δ<sub>i</sub>(r);若1≤i≤2t‑r<sub>2</sub>/2,θ<sub>i</sub>(r+1)=δ<sub>i+1</sub>(r);当r≠r<sub>2</sub>时,若2t+1‑r/2≤i≤2t+4,θ<sub>i</sub>(r+1)取当前δ<sub>i</sub>(r)的值,即θ<sub>i</sub>(r+1)=δ<sub>i</sub>(r);若i=2t‑r/2,则θ<sub>i</sub>(r+1)需要进行补0操作,即θ<sub>i</sub>(r+1)=0;若1≤i≤2t‑1‑r/2,θ<sub>i</sub>(r+1)=δ<sub>i+1</sub>(r);当中间变量数据流θ<sub>i</sub>(r+1)、中间变量γ(r+1)和k(r+1)更新完成后转入步骤(9);(8)更新中间变量γ(r+1)和k(r+1),γ(r+1)=γ(r),k(r+1)=k(r)+1;根据步骤(3)的Case0和Case2两种情形,分别更新中间变量数据流θ<sub>i</sub>(r+1):在Case0情形下,当r为奇数或者r等于2t时,θ<sub>i</sub>(r+1)=θ<sub>i</sub>(r),(i=1,2,…,2t+4);当r为偶数且r不等于2t时,若2t+2‑r/2≤i≤2t+4,θ<sub>i</sub>(r+1)=θ<sub>i‑1</sub>(r);若1≤i≤2t+1‑r/2,θ<sub>i</sub>(r+1)=θ<sub>i</sub>(r);在Case2情形下,当r=r<sub>2</sub>时,若2t+2‑r<sub>2</sub>/2≤i≤2t+4,θ<sub>i</sub>(r+1)=θ<sub>i‑1</sub>(r);若1≤i≤2t+1‑r<sub>2</sub>/2,θ<sub>i</sub>(r+1)=θ<sub>i</sub>(r);当r≠r<sub>2</sub>时,θ<sub>i</sub>(r+1)=θ<sub>i</sub>(r),(i=1,2,…,2t+4);当中间变量数据流θ<sub>i</sub>(r+1)、中间变量γ(r+1)和k(r+1)更新完成后转入步骤(9);(9)比较本轮的r与2t,若r小于2t则返回步骤(4),直至r等于2t,则迭代结束,输出错误位置多项式Λ(x)系数:λ<sub>i</sub>(2t)=δ<sub>i+t</sub>(2t),(i=1,2,…,t+1),错误值多项式ω(x)系数:ω<sub>i</sub>(2t)=δ<sub>i</sub>(2t),(i=1,2,…,t)。
地址 100076 北京市丰台区东高地四营门北路2号