CN104579367B - 一种信道纠错码rs码迭代译码解关键方程方法 - Google Patents

一种信道纠错码rs码迭代译码解关键方程方法 Download PDF

Info

Publication number
CN104579367B
CN104579367B CN201410765054.7A CN201410765054A CN104579367B CN 104579367 B CN104579367 B CN 104579367B CN 201410765054 A CN201410765054 A CN 201410765054A CN 104579367 B CN104579367 B CN 104579367B
Authority
CN
China
Prior art keywords
situations
iter
equal
value
iteration
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201410765054.7A
Other languages
English (en)
Other versions
CN104579367A (zh
Inventor
郭晨光
乐立鹏
张建军
文治平
权海洋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Microelectronic Technology Institute
Mxtronics Corp
Original Assignee
Beijing Microelectronic Technology Institute
Mxtronics Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Microelectronic Technology Institute, Mxtronics Corp filed Critical Beijing Microelectronic Technology Institute
Priority to CN201410765054.7A priority Critical patent/CN104579367B/zh
Publication of CN104579367A publication Critical patent/CN104579367A/zh
Application granted granted Critical
Publication of CN104579367B publication Critical patent/CN104579367B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Detection And Prevention Of Errors In Transmission (AREA)

Abstract

本发明一种信道纠错码RS码迭代译码解关键方程方法,其特点在于:对于纠错能力为t比特的RS码来说,采用改进的RiBM迭代译码方法求解关键方程,通过删除部分冗余运算,将RiBM迭代过程中的数据流位宽由3t+1压缩为2t+4,从而大大降低了运算量,提高了运算效率,实现了RS码的高效译码。

Description

一种信道纠错码RS码迭代译码解关键方程方法
技术领域
本发明涉及一种信道纠错码RS码迭代译码解关键方程方法,属于数字通信领域的RS迭代译码方法。
背景技术
RS码是由I.S.Reed和G.Solomon于1960年构造出来的,是一类具有很强纠错能力的多元BCH码,它不仅能纠正随机错误,又能纠正突发错误,特别适用于信道干扰非常复杂的通信系统,在实际工程应用中非常广泛。
图1所示为传统的RS码译码原理框图,包括计算伴随式101、求解关键方程102、搜索错误图案103、数据缓存104、纠错输出105五个部分,译码步骤如下:
(1)对接收到的码字R(x)进行计算,得到伴随多项式S(x);
(2)对伴随多项式S(x)求解关键方程,得到错误位置多项式Λ(x)和错误值多项式ω(x);
(3)采用Chien搜索和Forney算法从错误位置多项式Λ(x)和错误值多项式ω(x)中计算错误位置和对应的错误值,达到搜索错误图案的目的;
(4)根据得到的错误位置和错误值对经过数据缓存104的接收码字进行纠错并输出码字C。
RS码在求解关键方程时的译码方法主要有BM(Berlekamp-Massey)法、Euclid法等,实际使用中以BM法为主。目前最先进的BM译码方法是D.V.Sarwate等人于2001年提出的RiBM迭代译码方法,并通过简洁的伪码形成了一种高速高效的RS码迭代译码方法。
图2所示为D.V.Sarwate等人提出的利用RiBM迭代译码方法求解关键方程,包括:
(1)步骤201:设RS码的纠错能力为t比特,接收2t个伴随多项式系数:s1,s2,…,s2t
(2)步骤202:对位宽为3t+1的数据流δi(r)赋初值:δi(0)=si,(i=1,2,…,2t),δi(0)=0,(i=2t+1,2t+2,…,3t),δ3t+1(0)=1;对中间变量赋初值:θi(0)=si,(i=1,2,…,2t),γ(0)=1,k(0)=0;
(3)步骤203:首轮迭代次数r初值为0,累加1后转入步骤204;从下一轮迭代开始,将从步骤208返回的r累加1,并转入步骤204;
(4)步骤204:更新δi(r+1)的值,δi(r+1)=γ(r)δi+1(r)-δ1(r)θi(r),(i=1,2,…,3t+1);
(5)步骤205:令iter=(δ1(r)≠0&&k(r)≥0),若iter=1则转入步骤206,若iter=0则转入步骤207;
(6)步骤206:更新中间变量,γ(r+1)=δ1(r),k(r+1)=-k(r)-1,θi(r+1)=δi+1(r),(i=1,2,…,3t+1),更新完成之后转入步骤208;
(7)步骤207:更新中间变量,γ(r+1)=γ(r),k(r+1)=k(r)+1,θi(r+1)=θi(r),(i=1,2,…,3t+1),更新完成之后转入步骤208;
(8)步骤208:比较r与2t,若r小于2t则返回步骤203,同时将步骤206或207得到的中间变量数据流θi(r+1)、中间变量γ(r+1)和k(r+1)用于下一轮迭代运算;若r等于2t,则迭代结束,转入步骤209;
(9)步骤209:输出错误位置多项式Λ(x)系数:λi(2t)=δi+t(2t),(i=1,2,…,t+1),错误值多项式ω(x)系数:ωi(2t)=δi(2t),(i=1,2,…,t)。
RiBM迭代译码方法求解关键方程的不足之处是:对于纠错能力为t比特的RS码来说,随着迭代的进行,数据流δi(r)尾部的t比特初值0形成了一定程度的冗余运算,增加了运算量,降低了运算效率。
发明内容
本发明的技术解决问题是:克服现有技术的不足之处,提出一种改进的RiBM迭代译码解关键方程方法,删除了数据流δi(r)尾部的t比特初值0在迭代过程中形成的冗余运算,将RiBM迭代过程中的数据流δi(r)位宽由3t+1压缩为2t+4,从而大大降低了运算量,提高了运算效率,实现了RS码的高效译码。
本发明的技术解决方案是:一种信道纠错码RS码迭代译码解关键方程方法,步骤如下:
(1)设RS码的纠错能力为t比特,从计算伴随式处接收2t个伴随多项式系数:s1,s2,…,s2t;其中,t为大于0的正整数;
(2)定义迭代次数r,r为整数,初值为0;定义位宽为2t+4的数据流δi(r)以及中间变量数据流θi(r),对位宽为2t+4的数据流δi(r)赋初值:δi(0)=si,(i=1,2,…,2t);δi(0)=0,(i=2t+1,2t+3,2t+4);δ2t+2(0)=1;对中间变量数据流θi(r)赋初值:θi(0)=si,(i=1,2,…,2t),θi(0)=0,(i=2t+1,2t+3,2t+4);θ2t+2(0)=1;定义中间变量γ(r)和k(r),并赋初值:γ(0)=1,k(0)=0;定义迭代变量iter,则在第r次迭代运算过程中,令iter=(δ1(r)≠0&&k(r)≥0),式中,“&&”为逻辑与运算;
(3)将步骤(2)的迭代变量iter=(δ1(r)≠0&&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时对应的迭代次数为r1
所述Case2是:当r为偶数时,迭代变量iter等于0,随着迭代次数r的累加,当r再次为偶数时,出现迭代变量iter等于1的情形;设首次出现Case2情形且迭代变量iter等于1时对应的迭代次数为r2
(4)首轮迭代次数r初值为0,累加1后转入步骤(5);从下一轮迭代开始,将从步骤(9)返回的r累加1,并转入步骤(5);
(5)在步骤(3)所述的Case0情形下:
当r为奇数或r等于2t时,δi(r+1)=γ(r)δi+1(r)-δ1(r)θi(r),(i=1,2,…,2t+4);
当r为偶数且r不等于2t时,若2t+2-r/2≤i≤2t+4,δi(r+1)更新但不传递,即δi(r+1)=γ(r)δi(r)-δ1(r)θi-1(r);若i=2t+1-r/2,则δi(r+1)需要进行补0操作,即δi(r+1)=γ(r)·0-δ1(r)θi(r);若1≤i≤2t-r/2,则δi(r+1)=γ(r)δi+1(r)-δ1(r)θi(r);
在步骤(3)所述的Case1情形下:
当r=r1+1时,若2t+(5-r1)/2≤i≤2t+4,δi(r+1)更新但不传递,即δi(r+1)=γ(r)δi(r)-δ1(r)θi-1(r);若i=2t+(3-r1)/2,则δi(r+1)接收中间变量θi(r)的更新值但不传递,即δi(r+1)=γ(r)δi(r)-δ1(r)θi(r);若i=2t+(1-r1)/2,则δi(r+1)需要进行补0操作,即δi(r+1)=γ(r)·0-δ1(r)θi(r);若1≤i≤2t-(1+r1)/2,则δi(r+1)=γ(r)δi+1(r)-δ1(r)θi(r);当r≠r1+1时仍然按照Case0情形更新δi(r+1)的值;
在步骤(3)所述的Case2情形下:
当r=r2时,若2t+3-r2/2≤i≤2t+4,δi(r+1)更新但不传递,即δi(r+1)=γ(r)δi(r)-δ1(r)θi-1(r);若i=2t+1-r2/2或2t+2-r2/2,则δi(r+1)接收中间变量θi(r)的更新值但不传递,即δi(r+1)=γ(r)δi(r)-δ1(r)θi(r);若1≤i≤2t-r2/2,δi(r+1)=γ(r)δi+1(r)-δ1(r)θi(r);
若r<r2,仍然按照Case0情形更新δi(r+1)的值;
若r>r2,且r为奇数或者r等于2t时,δi(r+1)=γ(r)δi+1(r)-δ1(r)θi(r),(i=1,2,…,2t+4);
若r>r2,且r为偶数但r不等于2t时,若2t+1-r/2≤i≤2t+4,δi(r+1)更新但不传递,即δi(r+1)=γ(r)δi(r)-δ1(r)θi-1(r);若i=2t-r/2,则δi(r+1)需要进行补0操作,即δi(r+1)=γ(r)·0-δ1(r)θi(r);若1≤i≤2t-1-r/2,δi(r+1)=γ(r)δi+1(r)-δ1(r)θi(r);
(6)根据步骤(2)中的迭代变量iter决定中间变量数据流θi(r+1)、中间变量γ(r+1)和k(r+1)的更新方式,若iter=1则转入步骤(7),若iter=0则转入步骤(8);
(7)更新中间变量γ(r+1)和k(r+1),γ(r+1)=δ1(r),k(r+1)=-k(r)-1,根据步骤(3)的Case0、Case1和Case2三种情形,分别更新中间变量数据流θi(r+1):
在Case0情形下,θi(r+1)=δi+1(r),(i=1,2,…,2t+4);
在Case1情形下,当r=r1+1时,若2t+(3-r1)/2≤i≤2t+4,θi(r+1)取当前δi(r)的值,即θi(r+1)=δi(r);若i=2t+(1-r1)/2,则θi(r+1)需要进行补0操作,即θi(r+1)=0;若1≤i≤2t-(1+r1)/2,θi(r+1)=δi+1(r);当r≠r1+1时仍然按照Case0情形更新θi(r+1)的值;
在Case2情形下,当r=r2时,若2t+1-r2/2≤i≤2t+4,θi(r+1)取当前δi(r)的值,即θi(r+1)=δi(r);若1≤i≤2t-r2/2,θi(r+1)=δi+1(r);
当r≠r2时,若2t+1-r/2≤i≤2t+4,θi(r+1)取当前δi(r)的值,即θi(r+1)=δi(r);若i=2t-r/2,则θi(r+1)需要进行补0操作,即θi(r+1)=0;若1≤i≤2t-1-r/2,θi(r+1)=δi+1(r);
当中间变量数据流θi(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两种情形,分别更新中间变量数据流θi(r+1):
在Case0情形下,当r为奇数或者r等于2t时,θi(r+1)=θi(r),(i=1,2,…,2t+4);
当r为偶数且r不等于2t时,若2t+2-r/2≤i≤2t+4,θi(r+1)=θi-1(r);若1≤i≤2t+1-r/2,θi(r+1)=θi(r);
在Case2情形下,当r=r2时,若2t+2-r2/2≤i≤2t+4,θi(r+1)=θi-1(r);若1≤i≤2t+1-r2/2,θi(r+1)=θi(r);
当r≠r2时,θi(r+1)=θi(r),(i=1,2,…,2t+4);
当中间变量数据流θi(r+1)、中间变量γ(r+1)和k(r+1)更新完成后转入步骤(9);
(9)比较本轮的r与2t,若r小于2t则返回步骤(4),直至r等于2t,则迭代结束,输出错误位置多项式Λ(x)系数:λi(2t)=δi+t(2t),(i=1,2,…,t+1),错误值多项式ω(x)系数:ωi(2t)=δi(2t),(i=1,2,…,t)。
本发明与现有技术相比的有益效果是:
(1)与RiBM迭代译码解关键方程方法相比,本发明将RiBM迭代过程中的数据流δ(r)位宽由3t+1压缩为2t+4,删除了数据流δ(r)尾部的t比特初值0在迭代过程中形成的冗余运算,从而大大降低了运算量,提高了运算效率,实现了RS码的高效译码。
(2)本发明通过对数据流δ(r)以及中间变量数据流θ(r)更新过程中的精细化设计,达到了删除迭代过程中冗余运算的目的,形成了一种新的RS码迭代译码解关键方程方法。
附图说明
图1为RS码译码原理框图;
图2为RiBM迭代译码解关键方程方法;
图3为Case0情形下RiBM迭代译码解关键方程方法δ(r)数据流图;
图4为Case0情形下本发明迭代译码解关键方程方法δ(r)数据流图;
图5为Case1情形下RiBM迭代译码解关键方程方法δ(r)数据流图;
图6为Case1情形下本发明迭代译码解关键方程方法δ(r)数据流图;
图7为Case2情形下RiBM迭代译码解关键方程方法δ(r)数据流图;
图8为Case2情形下本发明迭代译码解关键方程方法δ(r)数据流图;
图9为本发明RS码迭代译码解关键方程方法;
图10为图9中δ(r)更新过程;
图11为图9中iter为1时θ(r)更新过程;
图12为图9中iter为0时θ(r)更新过程。
具体实施方式
图9为本发明RS码迭代译码解关键方程方法,步骤如下:
(1)步骤901:设RS码的纠错能力为t比特,从计算伴随式处接收2t个伴随多项式系数:s1,s2,…,s2t;其中,t为大于0的正整数;
(2)步骤902:定义迭代次数r,r为整数,初值为0;定义位宽为2t+4的数据流δi(r)以及中间变量数据流θi(r),对位宽为2t+4的数据流δi(r)赋初值:δi(0)=si,(i=1,2,…,2t);δi(0)=0,(i=2t+1,2t+3,2t+4);δ2t+2(0)=1;对中间变量数据流θi(r)赋初值:θi(0)=si,(i=1,2,…,2t),θi(0)=0,(i=2t+1,2t+3,2t+4);θ2t+2(0)=1;定义中间变量γ(r)和k(r),并赋初值:γ(0)=1,k(0)=0;定义迭代变量iter,则在第r次迭代运算过程中,令iter=(δ1(r)≠0&&k(r)≥0),式中,“&&”为逻辑与运算;
(3)步骤903:将步骤902的迭代变量iter=(δ1(r)≠0&&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时对应的迭代次数为r1
所述Case2是:当r为偶数时,迭代变量iter等于0,随着迭代次数r的累加,当r再次为偶数时,出现迭代变量iter等于1的情形;设首次出现Case2情形且迭代变量iter等于1时对应的迭代次数为r2
(4)步骤904:首轮迭代次数r初值为0,累加1后转入步骤905;从下一轮迭代开始,将从步骤909返回的r累加1,并转入步骤905;
(5)步骤905:在步骤903所述的Case0情形下:
当r为奇数或r等于2t时,δi(r+1)=γ(r)δi+1(r)-δ1(r)θi(r),(i=1,2,…,2t+4);
当r为偶数且r不等于2t时,若2t+2-r/2≤i≤2t+4,δi(r+1)更新但不传递,即δi(r+1)=γ(r)δi(r)-δ1(r)θi-1(r);若i=2t+1-r/2,则δi(r+1)需要进行补0操作,即δi(r+1)=γ(r)·0-δ1(r)θi(r);若1≤i≤2t-r/2,则δi(r+1)=γ(r)δi+1(r)-δ1(r)θi(r);如图10中1001所示;
在步骤903所述的Case1情形下:
当r=r1+1时,若2t+(5-r1)/2≤i≤2t+4,δi(r+1)更新但不传递,即δi(r+1)=γ(r)δi(r)-δ1(r)θi-1(r);若i=2t+(3-r1)/2,则δi(r+1)接收中间变量θi(r)的更新值但不传递,即δi(r+1)=γ(r)δi(r)-δ1(r)θi(r);若i=2t+(1-r1)/2,则δi(r+1)需要进行补0操作,即δi(r+1)=γ(r)·0-δ1(r)θi(r);若1≤i≤2t-(1+r1)/2,则δi(r+1)=γ(r)δi+1(r)-δ1(r)θi(r);当r≠r1+1时仍然按照Case0情形更新δi(r+1)的值;如图10中1002所示;
在步骤903所述的Case2情形下:
当r=r2时,若2t+3-r2/2≤i≤2t+4,δi(r+1)更新但不传递,即δi(r+1)=γ(r)δi(r)-δ1(r)θi-1(r);若i=2t+1-r2/2或2t+2-r2/2,则δi(r+1)接收中间变量θi(r)的更新值但不传递,即δi(r+1)=γ(r)δi(r)-δ1(r)θi(r);若1≤i≤2t-r2/2,δi(r+1)=γ(r)δi+1(r)-δ1(r)θi(r);
若r<r2,仍然按照Case0情形更新δi(r+1)的值;
若r>r2,且r为奇数或者r等于2t时,δi(r+1)=γ(r)δi+1(r)-δ1(r)θi(r),(i=1,2,…,2t+4);
若r>r2,且r为偶数但r不等于2t时,若2t+1-r/2≤i≤2t+4,δi(r+1)更新但不传递,即δi(r+1)=γ(r)δi(r)-δ1(r)θi-1(r);若i=2t-r/2,则δi(r+1)需要进行补0操作,即δi(r+1)=γ(r)·0-δ1(r)θi(r);若1≤i≤2t-1-r/2,δi(r+1)=γ(r)δi+1(r)-δ1(r)θi(r);如图10中1003所示;
(6)步骤906:根据步骤902中的迭代变量iter决定中间变量数据流θi(r+1)、中间变量γ(r+1)和k(r+1)的更新方式,若iter=1则转入步骤907,若iter=0则转入步骤908;
(7)步骤907:更新中间变量γ(r+1)和k(r+1),γ(r+1)=δ1(r),k(r+1)=-k(r)-1,根据步骤903的Case0、Case1和Case2三种情形,分别更新中间变量数据流θi(r+1):
在Case0情形下,θi(r+1)=δi+1(r),(i=1,2,…,2t+4);如图11中1101所示;
在Case1情形下,当r=r1+1时,若2t+(3-r1)/2≤i≤2t+4,θi(r+1)取当前δi(r)的值,即θi(r+1)=δi(r);若i=2t+(1-r1)/2,则θi(r+1)需要进行补0操作,即θi(r+1)=0;若1≤i≤2t-(1+r1)/2,θi(r+1)=δi+1(r);当r≠r1+1时仍然按照Case0情形更新θi(r+1)的值;如图11中1102所示;
在Case2情形下,当r=r2时,若2t+1-r2/2≤i≤2t+4,θi(r+1)取当前δi(r)的值,即θi(r+1)=δi(r);若1≤i≤2t-r2/2,θi(r+1)=δi+1(r);
当r≠r2时,若2t+1-r/2≤i≤2t+4,θi(r+1)取当前δi(r)的值,即θi(r+1)=δi(r);若i=2t-r/2,则θi(r+1)需要进行补0操作,即θi(r+1)=0;若1≤i≤2t-1-r/2,θi(r+1)=δi+1(r);如图11中1103所示;
当中间变量数据流θi(r+1)、中间变量γ(r+1)和k(r+1)更新完成后转入步骤909;
(8)步骤908:更新中间变量γ(r+1)和k(r+1),γ(r+1)=γ(r),k(r+1)=k(r)+1;根据步骤903的Case0和Case2两种情形,分别更新中间变量数据流θi(r+1):
在Case0情形下,当r为奇数或者r等于2t时,θi(r+1)=θi(r),(i=1,2,…,2t+4);
当r为偶数且r不等于2t时,若2t+2-r/2≤i≤2t+4,θi(r+1)=θi-1(r);若1≤i≤2t+1-r/2,θi(r+1)=θi(r);如图12中1201所示;
在Case2情形下,当r=r2时,若2t+2-r2/2≤i≤2t+4,θi(r+1)=θi-1(r);若1≤i≤2t+1-r2/2,θi(r+1)=θi(r);
当r≠r2时,θi(r+1)=θi(r),(i=1,2,…,2t+4);如图12中1202所示;
当中间变量数据流θi(r+1)、中间变量γ(r+1)和k(r+1)更新完成后转入步骤909;
(9)步骤909:比较本轮的r与2t,若r小于2t则返回步骤904,直至r等于2t,则迭代结束,转入步骤910;
(10)步骤910:输出错误位置多项式Λ(x)系数:λi(2t)=δi+t(2t),(i=1,2,…,t+1),错误值多项式ω(x)系数:ωi(2t)=δi(2t),(i=1,2,…,t)。
图3所示为Case0情形下RiBM迭代译码解关键方程方法δ(r)数据流图,δ(r)赋初值后,随着迭代次数r的增加不断更新,当r=2t时迭代完成,输出错误值多项式ω(x)系数303和错误位置多项式Λ(x)系数304。图3中全0块301和全0块302即为本发明在Case0情形下将要删除的冗余运算。
图4所示为Case0情形下本发明迭代译码解关键方程方法δ(r)数据流图,图4删除了图3中的全0块301和全0块302,数据δ(r)位宽由3t+1压缩为2t+4。
为方便表述,以r=2为例进行说明,此时r=1时的δ(r)数据流是r=2迭代运算的初值。删除全0块301后,当r=2时,数据δ(r)的运算结果仍然保留有0值305,设0值305处于数据δ(r)的第i位,则第i位需要进行补0操作才能得出0值305,即δi(r+1)=γ(r)·0-δ1(r)θi(r);第i位左侧的低位数据(以第j位为例)更新方式为:δj(r+1)=γ(r)δj+1(r)-δ1(r)θj(r);第i位右侧的高位数据(以第m位为例)更新但不往左传递,即以δm(r+1)=γ(r)δm(r)-δ1(r)θm-1(r)的方式进行更新。r=2时的运算结果即为r=3时运算的初值,当r=3时,0值305的存在使得第j位数据δj(r+1)的更新方式为:δj(r+1)=γ(r)δj+1(r)-δ1(r)θj(r)。
以此类推,当r为偶数且r不等于2t时,均要进行类似r=2时操作;当r为奇数或者r等于2t时,第j位数据δj(r+1)的更新方式为:δj(r+1)=γ(r)δj+1(r)-δ1(r)θj(r)。全0块401是给Case1和Case2情形下的设计留的余量。
图5所示为Case1情形下RiBM迭代译码解关键方程方法δ(r)数据流图,δ(r)赋初值后,随着迭代次数r的增加不断更新,当r=2t时迭代完成,输出错误值多项式ω(x)系数503和错误位置多项式Λ(x)系数504。图5中全0块501和全0块502即为本发明在Case1情形下将要删除的冗余运算。和全0块301相比,在第i+1次迭代时,全0块501左侧少删一个0,右侧多删一个0;在第i+2次迭代时,全0块501左侧少删一个0。和全0块302相比,在第i+1和i+2次迭代过程中,全0块502左侧各少删一个0。
图6所示为Case1情形下本发明迭代译码解关键方程方法δ(r)数据流图,图6删除了图5中的全0块501和全0块502,数据δ(r)位宽由3t+1压缩为2t+4。
假设在Case1情形下,首次出现δ1(r)不等于0时迭代次数为r=i,则在第i+1次迭代中,由于数据505不能被删除,因此数据506出现在了图6中的第2t+3列601上。由于r=i时的δ(r)数据流是r=i+1迭代运算的初值,因此为计算数据505,需要在第2t+(1-i)/2位进行补0操作,即δ2t+(1-i)/2(r+1)=γ(r)·0-δ1(r)θ2t+(1-i)/2(r);为计算数据508,数据507接收第3t+1-i位中间变量θ(r)的更新值但不往左传递,即δ3t+1-i(r+1)=γ(r)δ3t+1-i(r)-δ1(r)θ3t+1-i(r);第2t+(1-i)/2位左侧的低位数据(以第j位为例)更新方式为:δj(r+1)=γ(r)δj+1(r)-δ1(r)θj(r);第3t+1-i位右侧的高位数据(以第m位为例)接收第m-1位中间变量θ(r)的更新值但不往左传递,即以δm(r+1)=γ(r)δm(r)-δ1(r)θm-1(r)的方式进行更新。当r≠i+1时仍然按照Case0情形更新δ(r)的值。
图7所示为Case2情形下RiBM迭代译码解关键方程方法δ(r)数据流图,δ(r)赋初值后,随着迭代次数r的增加不断更新,当r=2t时迭代完成,输出错误值多项式ω(x)系数703和错误位置多项式Λ(x)系数704。图7中全0块701和全0块702即为本发明在Case2情形下将要删除的冗余运算。
假设在Case2情形下,首次出现δ1(r)不等于0时迭代次数为r=i。和全0块301相比,全0块701在第i+1、i+2和i+3次迭代过程中0的数目不同,图7中全0块705、全0块706和全0块707中0的数目相同,均为t-2-i/2个。和全0块302相比,全0块702也在第i+1、i+2和i+3次迭代过程中0的数目不同。
图8所示为Case2情形下本发明迭代译码解关键方程方法δ(r)数据流图,图8删除了图7中的全0块701和全0块702,并保留了全0块706中的一个0,数据δ(r)位宽由3t+1压缩为2t+4。
假设在Case2情形下,首次出现δ1(r)不等于0时迭代次数为r=i,则在第i+1次迭代过程中,尾部有效数据流出现在了图8中的第2t+3列801和第2t+4列802上;在第i+2次迭代过程中,尾部有效数据流出现在了图8中的第2t+3列801上。
当r=i时,由于r=i-1时的δ(r)数据流是r=i迭代运算的初值,需要将r=i-1时的第2t+1-i/2位和第3t-i+2位数据执行接收当前中间变量θ(r)的更新值但不往左传递的运算,即δ2t+1-i/2(r+1)=γ(r)δ2t+1-i/2(r)-δ1(r)θ2t+1-i/2(r),δ3t-i+2(r+1)=γ(r)δ3t-i+2(r)-δ1(r)θ3t-i+2(r);第2t+1-i/2位左侧的低位数据(以第j位为例)更新方式为:δj(r+1)=γ(r)δj+1(r)-δ1(r)θj(r);第3t-i+2位右侧的高位数据(以第m位为例)接收第m-1位中间变量θ(r)的更新值但不往左传递,即δm(r+1)=γ(r)δm(r)-δ1(r)θm-1(r)。
当r<i时,仍然按照Case0情形更新δ(r)的值;
当r>i,且r为奇数或者r等于2t时,以第j位为例,数据更新方式为:δj(r+1)=γ(r)δj+1(r)-δ1(r)θj(r);
当r>i+1,且r为偶数但r不等于2t时,以r=i+2为例,因全0块706仍然保留了一个0值803,且该0值803处于第2t+1-i/2位,则第2t+1-i/2位需要进行补0操作,即δ2t+1-i/2(r+1)=γ(r)·0-δ1(r)θ2t+1-i/2(r);第2t+1-i/2位左侧的低位数据(以第j位为例)更新方式为:δj(r+1)=γ(r)δj+1(r)-δ1(r)θj(r);第3t-i-1位及其右侧的高位数据(以第m位为例)接收第m-1位中间变量θ(r)的更新值但不往左传递,即以δm(r+1)=γ(r)δm(r)-δ1(r)θm-1(r)的方式进行更新。
综上,为得到本发明所需数据更新过程,若处于Case0情形,仅需将图4中所述的数据流编号由图3中的编号按照位宽为2t+4重排即可;若处于Case1情形,仅需将图6中所述的数据流编号由图5中的编号按照位宽为2t+4重排即可;若处于Case2情形,仅需将图8中所述的数据流编号由图7中的编号按照位宽为2t+4重排即可。

Claims (1)

1.一种信道纠错码RS码迭代译码解关键方程方法,其特征在于步骤如下:
(1)设RS码的纠错能力为t比特,从计算伴随式处接收2t个伴随多项式系数:s1,s2,…,s2t;其中,t为大于0的正整数;
(2)定义迭代次数r,r为整数,初值为0;定义位宽为2t+4的数据流δi(r)以及中间变量数据流θi(r),对位宽为2t+4的数据流δi(r)赋初值:δi(0)=si,i=1,2,…,2t;δi(0)=0,i=2t+1,2t+3,2t+4;δ2t+2(0)=1;对中间变量数据流θi(r)赋初值:θi(0)=si,i=1,2,…,2t,θi(0)=0,i=2t+1,2t+3,2t+4;θ2t+2(0)=1;定义中间变量γ(r)和k(r),并赋初值:γ(0)=1,k(0)=0;定义迭代变量iter,则在第r次迭代运算过程中,令iter=(δ1(r)≠0&&k(r)≥0),式中,“&&”为逻辑与运算;
(3)将步骤(2)的迭代变量iter=(δ1(r)≠0&&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时对应的迭代次数为r1
所述Case2是:当r为偶数时,迭代变量iter等于0,随着迭代次数r的累加,当r再次为偶数时,出现迭代变量iter等于1的情形;设首次出现Case2情形且迭代变量iter等于1时对应的迭代次数为r2
(4)首轮迭代次数r初值为0,累加1后转入步骤(5);从下一轮迭代开始,将从步骤(9)返回的r累加1,并转入步骤(5);
(5)在步骤(3)所述的Case0情形下:
当r为奇数或r等于2t时,δi(r+1)=γ(r)δi+1(r)-δ1(r)θi(r),i=1,2,…,2t+4;
当r为偶数且r不等于2t时,若2t+2-r/2≤i≤2t+4,δi(r+1)更新但不传递,即δi(r+1)=γ(r)δi(r)-δ1(r)θi-1(r);若i=2t+1-r/2,则δi(r+1)需要进行补0操作,即δi(r+1)=γ(r)·0-δ1(r)θi(r);若1≤i≤2t-r/2,则δi(r+1)=γ(r)δi+1(r)-δ1(r)θi(r);
在步骤(3)所述的Case1情形下:
当r=r1+1时,若2t+(5-r1)/2≤i≤2t+4,δi(r+1)更新但不传递,即δi(r+1)=γ(r)δi(r)-δ1(r)θi-1(r);若i=2t+(3-r1)/2,则δi(r+1)接收中间变量数据流θi(r)的更新值但不传递,即δi(r+1)=γ(r)δi(r)-δ1(r)θi(r);若i=2t+(1-r1)/2,则δi(r+1)需要进行补0操作,即δi(r+1)=γ(r)·0-δ1(r)θi(r);若1≤i≤2t-(1+r1)/2,则δi(r+1)=γ(r)δi+1(r)-δ1(r)θi(r);当r≠r1+1时仍然按照Case0情形更新δi(r+1)的值;
在步骤(3)所述的Case2情形下:
当r=r2时,若2t+3-r2/2≤i≤2t+4,δi(r+1)更新但不传递,即δi(r+1)=γ(r)δi(r)-δ1(r)θi-1(r);若i=2t+1-r2/2或2t+2-r2/2,则δi(r+1)接收中间变量数据流θi(r)的更新值但不传递,即δi(r+1)=γ(r)δi(r)-δ1(r)θi(r);若1≤i≤2t-r2/2,δi(r+1)=γ(r)δi+1(r)-δ1(r)θi(r);
若r<r2,仍然按照Case0情形更新δi(r+1)的值;
若r>r2,且r为奇数或者r等于2t时,δi(r+1)=γ(r)δi+1(r)-δ1(r)θi(r),i=1,2,…,2t+4;
若r>r2,且r为偶数但r不等于2t时,若2t+1-r/2≤i≤2t+4,δi(r+1)更新但不传递,即δi(r+1)=γ(r)δi(r)-δ1(r)θi-1(r);若i=2t-r/2,则δi(r+1)需要进行补0操作,即δi(r+1)=γ(r)·0-δ1(r)θi(r);若1≤i≤2t-1-r/2,δi(r+1)=γ(r)δi+1(r)-δ1(r)θi(r);
(6)根据步骤(2)中的迭代变量iter决定中间变量数据流θi(r+1)、中间变量γ(r+1)和k(r+1)的更新方式,若iter=1则转入步骤(7),若iter=0则转入步骤(8);
(7)更新中间变量γ(r+1)和k(r+1),γ(r+1)=δ1(r),k(r+1)=-k(r)-1,根据步骤(3)的Case0、Case1和Case2三种情形,分别更新中间变量数据流θi(r+1):
在Case0情形下,θi(r+1)=δi+1(r),i=1,2,…,2t+4;
在Case1情形下,当r=r1+1时,若2t+(3-r1)/2≤i≤2t+4,θi(r+1)取当前δi(r)的值,即θi(r+1)=δi(r);若i=2t+(1-r1)/2,则θi(r+1)需要进行补0操作,即θi(r+1)=0;若1≤i≤2t-(1+r1)/2,θi(r+1)=δi+1(r);当r≠r1+1时仍然按照Case0情形更新θi(r+1)的值;
在Case2情形下,当r=r2时,若2t+1-r2/2≤i≤2t+4,θi(r+1)取当前δi(r)的值,即θi(r+1)=δi(r);若1≤i≤2t-r2/2,θi(r+1)=δi+1(r);
当r≠r2时,若2t+1-r/2≤i≤2t+4,θi(r+1)取当前δi(r)的值,即θi(r+1)=δi(r);若i=2t-r/2,则θi(r+1)需要进行补0操作,即θi(r+1)=0;若1≤i≤2t-1-r/2,θi(r+1)=δi+1(r);
当中间变量数据流θi(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两种情形,分别更新中间变量数据流θi(r+1):
在Case0情形下,当r为奇数或者r等于2t时,θi(r+1)=θi(r),i=1,2,…,2t+4;
当r为偶数且r不等于2t时,若2t+2-r/2≤i≤2t+4,θi(r+1)=θi-1(r);若1≤i≤2t+1-r/2,θi(r+1)=θi(r);
在Case2情形下,当r=r2时,若2t+2-r2/2≤i≤2t+4,θi(r+1)=θi-1(r);若1≤i≤2t+1-r2/2,θi(r+1)=θi(r);
当r≠r2时,θi(r+1)=θi(r),i=1,2,…,2t+4;
当中间变量数据流θi(r+1)、中间变量γ(r+1)和k(r+1)更新完成后转入步骤(9);
(9)比较本轮的r与2t,若r小于2t则返回步骤(4),直至r等于2t,则迭代结束,输出错误位置多项式Λ(x)系数:λi(2t)=δi+t(2t),i=1,2,…,t+1,错误值多项式ω(x)系数:ωi(2t)=δi(2t),i=1,2,…,t。
CN201410765054.7A 2014-12-11 2014-12-11 一种信道纠错码rs码迭代译码解关键方程方法 Active CN104579367B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410765054.7A CN104579367B (zh) 2014-12-11 2014-12-11 一种信道纠错码rs码迭代译码解关键方程方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410765054.7A CN104579367B (zh) 2014-12-11 2014-12-11 一种信道纠错码rs码迭代译码解关键方程方法

Publications (2)

Publication Number Publication Date
CN104579367A CN104579367A (zh) 2015-04-29
CN104579367B true CN104579367B (zh) 2018-01-19

Family

ID=53094698

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410765054.7A Active CN104579367B (zh) 2014-12-11 2014-12-11 一种信道纠错码rs码迭代译码解关键方程方法

Country Status (1)

Country Link
CN (1) CN104579367B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1841982A (zh) * 2005-03-31 2006-10-04 中国科学院空间科学与应用研究中心 一种高速译码芯片
CN102122964A (zh) * 2011-03-31 2011-07-13 西安电子科技大学 一种基于fpga的高速rs编译码器实现方法
US8296635B2 (en) * 2004-10-27 2012-10-23 Marvell International Ltd. Architecture and control of Reed-Solomon error-correction decoding

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9996499B2 (en) * 2010-09-29 2018-06-12 Alcatel Lucent Scalable and programmable processor comprising multiple cooperating processor units

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8296635B2 (en) * 2004-10-27 2012-10-23 Marvell International Ltd. Architecture and control of Reed-Solomon error-correction decoding
CN1841982A (zh) * 2005-03-31 2006-10-04 中国科学院空间科学与应用研究中心 一种高速译码芯片
CN102122964A (zh) * 2011-03-31 2011-07-13 西安电子科技大学 一种基于fpga的高速rs编译码器实现方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A High-Speed Low-Complexity Time-Multiplexing Reed-Solomon-Based FEC Architecture for Optical Communications;Jeong-In PARK and Hanho LEE;《IEICE TRANS.FUNDAMENTALS》;20121231;正文第2章 *
Efficient Architecture for Reed-Solomon Decoder;Yung-Kuei Lu and Ming-Der Shieh;《VLSI Design,Automation, and Test(VLSI-DAT),2012 International Symposium on》;20120425;全文 *
基于RiBM算法的RS(204,188)译码器的设计;陈卓 等;《电子技术设计与应用》;20121125;全文 *

Also Published As

Publication number Publication date
CN104579367A (zh) 2015-04-29

Similar Documents

Publication Publication Date Title
CN110545110B (zh) 级联极化编码和滑动窗口极化编码
US8726137B2 (en) Encoding and decoding methods for expurgated convolutional codes and convolutional turbo codes
CN107241102B (zh) 在硬决策软解码期间决定何时结束位翻转算法的方法
CN107425856A (zh) 低密度奇偶校验译码器以及对其进行省电的方法
US20090292966A1 (en) Method for recovery of lost and/or corrupted data
WO2010115371A1 (zh) 一种循环冗余校验crc码的实现方法和装置
CN107911195B (zh) 一种基于cva的咬尾卷积码信道译码方法
JP5374156B2 (ja) データを復号化及び符号化するための装置及び方法
CN105634506A (zh) 基于移位搜索算法的平方剩余码的软判决译码方法
CN107332570A (zh) 分段级联Hash序列的极化码编码方法
Grinchenko et al. Improving performance of multithreshold decoder over binary erasure channel
CN102820892A (zh) 一种用于并行bch编码的电路、编码器及方法
CN101442313B (zh) 数字通信过程中的编解码方法以及编码器、解码器
CN104579367B (zh) 一种信道纠错码rs码迭代译码解关键方程方法
CN104218957A (zh) 一种低硬件复杂度的rs译码器
CN107026655B (zh) 用于对码字进行译码的方法及译码器
CN102891690A (zh) 一种咬尾卷积码译码方法
CN107565981A (zh) 一种基于fpga的rs编译码器实现方法
CN108471341B (zh) 一种卷积编解码的方法
CN103746711B (zh) 基于译码端状态转移图的量子Viterbi译码算法
CN108471315B (zh) 一种纠删译码方法及装置
CN104579368B (zh) 一种信道纠错码rs码解关键方程电路
TWI527383B (zh) A Fast BCH Code Decoding Method
CN107342775B (zh) 删余卷积码的维特比译码方法
CN104796162A (zh) Turbo码译码停止迭代准则判断系统、方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant