采用新多项式排列结构里德-索罗门解码器及解码方法

文档序号:6414518阅读:142来源:国知局
专利名称:采用新多项式排列结构里德-索罗门解码器及解码方法
技术领域
本发明涉及一种纠错解码技术,具体涉及用来实现改进欧几里德算法的具有新多项式排列结构的里德-索罗门(Reed-Solomon,RS)解码器及其解码方法。
在采用高清晰度电视(HDTV)、数字通用盘(DVD)或小型盘(CD)的数字通信系统中,主要采用具有优秀纠错能力的RS解码器来纠正传输中产生的差错。然而,RS解码器的结构非常复杂。一般地,将RS代码表示为RS(N,I)。一个信息分组由N个符号构成。在这些符号中,I符号表示一条消息,其余的N-I个符号表示校验码。每个符号由m个位组成。


图1是采用改进欧几里德算法的常规RS解码器的方框图。这种RS解码器公开于美国电子与电气工程师协会计算机分会会刊1998年10月号第37卷第1273至1280页的由H.M.Shao和I.S.Reel所著“采用收缩矩阵的流水线式RS解码器的VLSI设计(“On the VLSI Design of Pipeline Reed-SolomonDecoder Using Systolic Arrays”,IEEE Tran.Comput,vol 37,OCT.1988,pp1273-1280)”一文中。
在图1中,根据输入的删除位置信息计算的初始差错定位多项式的根α-i,被输入到第一和第二多项式扩展器106和108。删除意为有差错,其位置从接收数据中得到,差错意为错误,其位置和大小已获知。
方程式1表示由第一多项式扩展器106扩展的初始差错定位多项式Γ(x)。方程式2表示由第二多项式扩展器108扩展的改进校正子多项式T(x),它是一个求解方程式。〖方程式1〗Γ(x)=Πai∈Γ(x-a-i)]]>其中,∏表示相乘。初始差错定位多项式Γ(x)的根表示差错产生的位置。即,如果α-i是根,则产生的该差错在接收代码字中的第(i+1)个代码字处。第(i+1)个代码字的代码标号对应的是i。〖方程式2〗
T(x)=S(x)Γ(x)modx2t其中,T(x)、S(x)和t分别表示改进校正子多项式、校正子多项式和能够纠正的差错数。
在完成初始差错定位多项式和改进校正子多项式的计算后,由改进欧几里德算法运算器110使用改进的欧几里德算法提取差错估计多项式ω(x)和差错定位多项式σ(x)。当方程4和方程7所表达的迭代方程被迭代2次时,所需差错估计多项式ω(x)和差错定位多项式σ(x)便作为结果由改进的欧几里德算法运算器110获得。上述文献(1)中的这些内容被称作改进的欧几里德算法。〖方程式3〗μ0(x)=Γ(x),R0(x)=x21,λ0(x)=0, Q0(x)=T(x)〖方程式4〗Ri(x)=[σi-1bi-1Ri-1(x)+σi-1ai-1Qi-1(x)]-x|1i-1|[σi-1ai-1Qi-1(x)+σi-1bi-1Ri-1(x)]]]>〖方程式5〗λi(x)=[σi-1bi-1λi-1(x)+σ‾i-1ai-1μi-1(x)]-x|li-1|[σi-1ai-1μi-1(x)+σi-1bi-1λi-1(x)]]]>〖方程式6〗Qi(x)=σi-1Qi-1(x)+σi-1Ri-1(x)〖方程式7〗μi(x)=σi-1μi-1(x)+σi-1λi-1(x)其中,ai-1和bi-1分别是Ri-1(x)和Qi-1(x)的最高次数项的系数。〖方程式8〗li-1=deg(Ri-1(x))-deg(Qi-1(x))〖方程式9〗
即,如方程式8和9所示,若Ri-1(x)的次数等于或大于Qi-1(x)的次数,则σi-1的值为“1”,否则,σi-1的值为“0”。
若满足下面方程式10的条件,则上述迭代方程(方程式4至7)的迭代终止。〖方程式10〗deg(λi(x))>deg(Ri(x))
若上述迭代方程(方程式4至7)的迭代结束,则得到如方程式11和12所示的差错定位多项式σ(x)和差错估计多项式ω(x)。〖方程式11〗σ(x)=λi(x)〖方程式12〗ω(x)=Ri(x)在上述方程式3中表示出四个多项式Ri-1(x)、Qi-1(x)、λi(x)、μi(x)的初始值。在λi(x)的次数大于Ri(x)的次数的情况下,不用重复迭代方程(方程式4至7)2t次,也能获得差错定位多项式σ(x)和差错估计多项式ω(x)。这时,λi(x)就成为差错定位多项式,且Ri(x)成为差错估计多项式。
图2示出了用于实现改进欧几里德算法的常规多项式排列结构。在图2的多项式排列中,右侧的改进欧几里德算法运算器110加载的寄存器132和134中,所排列的多项式R(x)和Q(x)的次数随着迭代运算过程的进行而降低。左侧的寄存器136和138中所排列的多项式λ(x)和μ(x)的次数随着迭代运算过程的进行而升高。在这种情况下,各个多项式的次数必须存储在附加的存储器(未示出)中,以便产生迭代运算所需的控制信号。
这种用于实现改进欧几里德算法的常规多项式排列结构的问题在于各个多项式的次数必须总是存储在附加的存储器中;并且,如方程式8所示,由于这些次数必须相比较来产生用于执行上述方程式9所需的控制信号,所以还需要log22t个减法器;而且,由于在后续的迭代运算中还要用到这些多项式的次数,所以缓存这些多项式时还必须缓存它们的次数。
为了解决上述问题,本发明的目的是提供一种结构简单的RS解码器,其中,通过改变多项式排列结构,在进行改进的欧几里德算法运算时不需要附加的次数比较电路。
本发明的另一个目的是提供一种RS解码方法,用于通过改变多项式排列结构,执行改进的欧几里德算法。
本发明的再一个目的是提供一种从左侧排列用于执行改进欧几里德算法的各个多项式系数的方法。
于是,为了实现第一目的,所提供的采用改进欧几里德算法纠正接收符号中差错的RS解码器,包括运算器,用于采用输入初始差错定位多项式和改进的校正子多项式,对改进欧几里德算法的四个多项式R(x)、Q(x)、λ(x)、μ(x)进行迭代运算;排列器,用于从左侧排列各个多项式的系数;产生器,用于利用标识每次迭代运算开始的迭代控制信号,产生表示各个多项式有效部分的控制信号;以及,提取器,用于根据所述控制信号,提取运算器所提供的作为差错估计多项式的多项式R(x)和作为差错定位多项式的多项式λ(x)。
为实现第二目的,所提供的用于根据校正子值搜索差错的位置和大小的RS解码器,包括第一多项式运算器,用于根据接收的数据计算校正子值,并构建一校正子多项式;第一产生器,用于每当输入新的删除数据时根据接收数据中的删除信息产生初始差错定位多项式的根和标识迭代运算开始的迭代控制信号;第一多项式扩展器,用于利用所述根来扩展初始差错定位多项式;第二多项式扩展器,用于利用所述校正子的值和所述根,来扩展改进的校正子多项式;改进欧几里德算法运算器,用于利用初始差错定位多项式和改进校正子多项式,提取差错估计多项式和差错定位多项式;第二和第三多项式运算器,用于对来自改进欧几里德算法运算器的差错估计多项式和差错定位多项式进行运算;以及,提取器,用于对来自第二和第三多项式运算器,用于根据由第二和第三多项式运算器计算的差错估计多项式和差错定位多项式,提取接收数据所包含的差错的位置和大小并对所接收的数据进行纠错解码,其中,所述改进欧几里德算法运算器包括运算器,用于采用输入初始差错定位多项式和改进的校正子多项式,对改进欧几里德算法的四个多项式R(x)、Q(x)、λ(x)、μ(x)进行迭代运算;排列器,用于从左侧排列各个多项式的系数并且向运算器提供所排列的多项式系数,并将所排列的多项式的系数提供给所述运算器;控制信号产生器,用于利用迭代控制信号,产生表示多项式R(x)、Q(x)、μ(x)有效部分的R(x)、Q(x)、μ(x)控制信号;以及,存储器,用于利用R(x)和Q(x)的控制信号作为允许信号,存储由排列器提供的R(x)、Q(x)的第一有效值,作为最高次数项的系数,并将它们提供给运算器;选择信号产生器,用于利用Q(x)和μ(x)的控制信号产生选择信号;和选择器,用于根据选择信号选择由运算器提供的作为差错估计多项式的多项式R(x)和作为差错定位多项式的多项式λ(x)。
为了实现第三目的,所提供的用于执行改进欧几里德算法的RS解码方法,包括多项式排列的步骤,其中,该多项式排列的步骤包括下述步骤(a)设定初始状态变量;(b)判断Q(x)和R(x)中的一个多项式的最高次数项的系数是否为“0”,并判断这两个多项式的次数是否相同;(c)若在步骤(b)中两个多项式的次数不同,则计算各个多项式R(x)、Q(x)、λ(x)和μ(x),将当前状态变量减“1”来获得下一个状态变量,并在延迟所计算多项式的系数后排列它们;(d)若在步骤(b)中两个多项式的次数相同,则在计算各个多项式之后,将R(x)的系数与Q(x)的系数交换,将λ(x)的系数与μ(x)的系数交换,并将下一个状态变量设置为“1”;(e)若在步骤(b)中两个多项式R(x)和Q(x)中的一个的最高次数项的系数为“0”,则判断R(x)的最高次数项的系数是否为“0”;(f)若在步骤(e)中R(x)的最高次数项的系数为“0”,则在将R(x)的系数与Q(x)的系数交换且将λ(x)的系数与μ(x)的系数交换之后,将两个多项式Q(x)和μ(x)的系数向右侧移动一个次数,并将当前状态变量加“1”所得到的值设置为下一个状态变量;以及,(g)若在步骤(e)中Q(x)的最高次数项的系数为“0”,则将两个多项式Q(x)和μ(x)的系数向右侧移动一个次数,并将当前状态变量加“1”所得到的值设置为下一个状态变量。
通过参照附图结合对本发明优选实施例的详细说明,本发明的上述目的和优点将更加清楚,附图中图1是常规RS解码器的方框图;图2示出常规的多项式排列结构;图3是本发明RS解码器的方框图;图4是图3中所示的改进欧几里德算法运算器的详细方框图;图5示出本发明提供的多项式排列结构;图6示出图4中所示的控制信号产生器一部分的电路图;图7A至图7C是用于解释如何利用图4的控制信号产生器产生的控制信号来辨别最高次数项的波形图;图8是本发明多项式排列方法实施例的流程图;图9是有助于理解图8中所示的多项式排列方法的示图。
图3是本发明的RS解码器的方框图。α-i产生器202采用输入初始删除位置信息,产生初始差错定位多项式的根α-i、以及对应于新删除信息α-i的标识每次迭代运算开始的迭代控制信号(ss),并且向改进欧几里德算法运算器210输出所产生的迭代控制信号(ss)。第一多项式扩展器206利用α-i产生器202产生的α-i扩展初始差错定位多项式Γ(x)。
第一多项式运算器204计算接收数据的校正子值,并构建校正子多项式S(x)。方程式13是系数为所计算的校正子值的2t-1级校正子多项式。〖方程式13〗S(x)=S0+S1x+S2x2+…+S2t-1x2t-1第二多项式扩展器208利用由第一多项式运算器204计算的校正子多项式S(x)和α-i产生器202输出的α-i,求解方程式2所表示的求解方程,并扩展一改进校正子多项式T(x)。
改进欧几里德算法运算器210运用改进欧几里德算法,利用第一和第二多项式扩展器206和208提供的初始差错定位多项式Γ(x)和改进校正子多项式T(x),通过一系列迭代运算获得差错定位多项式σ(x)和差错估计多项式ω(x)。
第二和第三多项式运算器212和214计算由改进欧几里德算法运算器210输出的差错估计多项式ω(x)和差错定位多项式σ(x),并将它们提供给除法器216。除法器216计算对应于α-i的由方程式14表示的差错的大小。〖方程式14〗θ^i=-ω(α-i)σl(α-i)]]>与门218只允许选择第三多项式运算器214计算的差错定位多项式σ(x)的根所对应的除法器216输出。加法器222可由一个异或门构造,来对由延迟器220延迟的接收数据和与门218的输出执行异或操作。该加法器输出被纠错解码的数据。此时,c(x)表示已纠正的数据多项式。除法器116、与门118和加法器122可被称为提取器。
图4是图3中所示的改进欧几里德算法运算器210的详细方框图。迭代方程运算器232接收由图3所示的第一和第二多项式扩展器206和208所提供的初始差错定位多项式Γ(x)和改进校正子多项式T(x),将各个多项式的系数提供给多项式系数排列器234,并且采用多项式系数排列器234中排列的各个多项式系数、以及由最高次数项系数存储器238提供的R(x)和Q(x)的最高次数项的系数,来计算各个多项式的迭代方程(方程式4至7)。此时,若满足方程式15表示的条件,迭代方程运算器232就终止迭代方程的迭代运算。〖方程式15〗
deg(μi(x))>deg(Qi(x))如图5中所示,多项式系数排列器234从左侧排列寄存器252至258中所有的多项式(R(x)、Q(x)、λ(x)和μ(x))。
每当多项式R(x)和Q(x)由迭代方程运算器232进行迭代运算时,迭代运算的结果回馈给多项式系数排列器234,向右移动一个次数。因此,通过存储由迭代方程运算器232提供的对应于R(x)和Q(x)的输出值,不能够将这些多项式排列到左侧。
因此,此多项式必须按照迭代控制信号ss来延迟。为此,在多项式系数排列器234中,包含有位于图5所示的寄存器252至258之前端的延迟器(未示出)。该多项式是否由该延迟器延迟,要根据最高次数项状态和状态变量判定器242提供的状态变量(SV)值来确定。
即,若出现的状态变量显示从迭代运算器232的迭代运算结果获得的多项式R(x)和Q(x)的次数相等,则这两个多项式R(x)和Q(x)延迟一个时钟。若出现的状态变量显示从迭代运算结果获得的一个多项式的系数比另一个多项式的系数例如大一个次数,由于具有较高次数的多项式已经被排列在左侧,所以如果这些多项式要由延迟器延迟,则最后的最低次数的系数就要被截去。因此,迭代运算器232的输出值没有被延迟器延迟,它被存储在寄存器252和254中。
多项式λ(x)的延迟取决于与之成对的多项式R(x)。多项式μ(x)的延迟取决于与之成对的多项式Q(x)。
此时,若多项式R(x)的次数小于多项式Q(x)的次数,则向多项式系数排列器234提供由最高次数项状态和状态变量判定器242输出的交换控制信号(EXCHANGE)。在多项式排列器234中,在寄存器252中存储的R(x)的系数与在寄存器254中存储的Q(x)的系数交换,在寄存器256中存储的λ(x)的系数与在寄存器258中存储的μ(x)的系数交换。这是为了便于在迭代运算中排列多项式。因此,方程式15给出的是由于R(x)的次数总是高于或等于Q(x)的次数而终止迭代运算的条件。
若按上述排列这些多项式的系数,则获得如图5所示的本发明提供的多项式排列结构。因为在这种多项式排列结构中系数是逐个从右侧运算的,所以从右侧开始的最高次数项的系数值在第一次不是“0”。系数的位置就成为多项式的次数。仅简单地将这些位置相互比较,来比较各个多项式的次数。这将在选择信号产生器240的说明中描述。
控制信号产生器236利用多项式系数排列器234提供的各个多项式R(x)、Q(x)和μ(x)的系数以及由图3所示的α-i产生器202提供的标识每次迭代运算开始的迭代控制信号ss,产生控制信号R_CTL、Q_CTL_Q和μ_CTL。控制信号R_CTL、Q_CTL Q和μ_CTL分别表示各个多项式R(x)、Q(x)和μ(x)的有效部分。
即,控制信号产生器236给各个多项式R(x)、Q(x)和μ(x)指定1位的控制信号,在有用于标识迭代运算开始的迭代控制信号ss时,将各个多项式的控制信号的值保持在“1”,并且在第一次向多项式系数排列器234输入不是“0”的系数时,将指定给系数不是“0”多项式的1位控制信号改变为“0”。
图6便于理解图4所示控制信号产生器的电路图,该电路用于产生指定给多项式R(x)的控制信号(R_CTL)。在图6中,在迭代控制信号ss被反相器262反相后提供给T触发器264的反相输入端时,T触发器264的输出(R_CTL)为逻辑“高”。该输出(R_CTL)回馈给与门266。
在由如图5所示的多项式系数排列器234的寄存器152提供的系数输入是非“0”的有效值时,或门268的输出为逻辑“高”。而且,与门266将逻辑“高”的输出提供给T触发器264的反转输入端(T)。然后,T触发器264的输出(R_CTL)为逻辑“低”,这表示此时的输出为有效部分。一旦此输出处于有效部分,在施加表示下一次迭代运算开始的逻辑“高”的迭代控制信号ss以前,该输出一直保持逻辑“低”。
由图4所示的控制信号产生器236提供的指定给R(x)和Q(x)的控制信号(R_CTL和Q_CTL),用作用于存储R(x)和Q(x)最高次数项的最高次数项存储器238的允许信号(R_EN和Q_EN)。利用指定给R(x)和Q(x)的控制信号(R_CTL和Q_CTL),最高次数项存储器238存储由多项式系数排列器234的寄存器252和254提供的第一有效值,作为R(x)和Q(x)的最高次数项的系数(a-1和b-1)。
因此,按照本发明,可以利用有控制信号产生器236产生的控制信号R_CTL和Q_CTL,存储最高次数项的系数,而无需产生附加信号来存储最高次数项的系数,并且可以利用控制信号产生器产生的控制信号Q_CTL和μCTL,获得判断迭代方程运算器232输出值所需的多路切换器(MUX)244选择信号SEL。
图7A所示的信号波形是用于标识每次迭代运算开始的迭代控制信号ss的波形。图7B和图7C所示的信号波形是指定给R(x)和Q(x)的控制信号R_CTL和Q_CTL的波形。若图7B中的控制信号R_CTL先于图7C中的控制信号Q_CTL出现逻辑“低”,则表示R(x)的次数高于Q(x)的次数。通过常规的相减运算方法比较各个多项式的次数,来产生MUX选择信号。
然而,在本发明中,根据控制信号产生器236输出的Q(x)控制信号Q_CTL和μ(x)控制信号μ_CTL,选择信号产生器240产生选择信号(SEL),并将该选择信号(SEL)提供给多路切换器244。即,在Q(x)的控制信号Q_CTL不在有效部分(逻辑“高”)并且判定μ(x)的控制信号(μ_CTL)处于有效部分(逻辑“低”)即μ(x)的次数高于Q(x)的次数时,选择信号产生器240输出逻辑“高”的选择信号(SEL),表示迭代运算终止。
因此,按照该逻辑“高”的选择信号SEL,多路切换器244输出由迭代方程运算器232输出的R(x)和λ(x),前者作为差错估计多项式ω(x)而后者作为差错定位多项式σ(x)。
将μ(x)的次数和Q(x)的次数进行比较的原因如下。为了检查迭代运算是否终止,要检查R(x)或Q(x)的次数是否低于μ(x)的次数。如果是,则终止迭代运算。R(x)和Q(x)中具有较低次数的多项式被当作差错估计多项式ω(x),而μ(x)作为差错定位多项式σ(x)。若Q(x)的次数总是低于R(x)的次数,则可以通过将μ(x)与Q(x)比较来得到所需的差错定位多项式σ(x)和差错估计多项式ω(x)。
若迭代运算没有终止,则必须检查R(x)或Q(x)的最高次数项的系数是否为“0”。由于R(x)和Q(x)排列在左侧,所以利用控制信号R_CTL和Q_CTL可以得知何时出现不为“0”的值。因此,能够知道这两个多项式的最高次数项的系数是否为“0”。
即,若R(x)的控制信号R_CTL处于有效部分(逻辑“低”)而Q(x)的控制信号Q_CTL没有处于有效部分(逻辑“高”),则Q(x)的最高次数项的系数为“0”。若Q(x)的控制信号Q_CTL处于有效部分(逻辑“低”)而R(x)的控制信号R_CTL没有处于有效部分(逻辑“高”),则R(x)的最高次数项的系数为“0”。
若一个最高次数项的系数为“0”,则此刻的迭代运算就无意义了。为了防止这种现象以及为了下次的迭代运算,最高次数项状态和状态变量判定器242根据R(x)和Q(x)的控制信号R_CTL和Q_CTL,在得知R(x)的最高次数项的系数为“0”时,向多项式系数排列器234提供一交换控制信号EXCHANGE,用于用Q(x)的系数交换R(x)的系数以及用λ(x)的系数交换μ(x)的系数,以及一个移位信号SHIFT,用于将多项式R(x)和与之成对的λ(x)向右移动一个次数;并且在Q(x)的最高次数项的系数为“0”时,向多项式系数排列器234只提供一个移位信号SHIFT,用于向右将多项式Q(x)以及与之成对的μ(x)移动一个次数。将多项式向右移动一个次数,等于将最高次数项系数为“0”的多项式和与之成对的多项式乘以x。
而且,最高次数项状态和状态变量判定器242判定表示R(x)最高次数项系数和Q(x)最高次数项系数之间差值的状态变量(SV),并向多项式系数排列器234输出该SV。
若迭代运算没有终止并且R(x)或Q(x)的最高次数项的系数均不为“0”,则迭代运算器232向多项式系数排列器234回馈对应于由方程式4至7所示迭代方程运算结果的系数。
在图4所示的改进欧几里德算法运算器210中进行的改进欧几里德算法运算过程如下。
步骤1如图5所示,所有的多项式R(x)、Q(x)、λ(x)和μ(x)的系数从左侧排列。借此,能够容易地将各个多项式的次数相互比较,而不用存储这些次数。
步骤2检查在从左侧排列的系数中有效多项式的系数从何处开始,并存储多项式R(x)和Q(x)的最高次数项的系数。
步骤3根据指定给Q(x)和μ(x)的控制信号,将两个多项式Q(x)和μ(x)的次数相互比较。
步骤4若步骤3中μ(x)的次数高于Q(x)的次数,输出R(x)作为差错估计多项式ω(x),输出λ(x)作为差错定位多项式σ(x)。此时,认为R(x)的次数大于Q(x)的次数。
步骤5若μ上(x)的次数不高于Q(x)的次数,则判定R(x)或Q(x)的最高次数项的系数之一是否为“0”。
步骤6若判定两个多项式R(x)或Q(x)的最高次数项的系数之一为“0”,则最高次数项系数为“0”的多项式和与之成对的多项式的系数向右移动一个次数。此时,若R(x)的最高次数项的系数为“0”,则要在将Q(x)与R(x)及将λ(x)与μ(x)交换之后,将Q(x)和μ(x)的系数向右移动一个次数。若Q(x)的最高次数项的系数为“0”,则将Q(x)和μ(x)的系数向右移动一个次数。
步骤7若在步骤5中μ(x)的次数不高于Q(x)的次数并且R(x)和Q(x)的最高次数项的系数不为“0”,则利用步骤2中存储的多项式R(x)和Q(x)的最高次数项的系数,对方程式4至7中所示的迭代方程进行运算。
本发明与常规技术的不同点在于,它需要总向左排列R(x)和Q(x),因为实现改进欧几里德算法中多项式向左排列。因此,图8示出了描述在步骤1中所有多项式的系数向左排列方法的详细流程图,并将参照图9来说明。
状态变量SV定义为R(x)和Q(x)次数之间的差值。状态变量SV的迭代运算初始值为“1”(步骤S11)。在该初始状态变量SV0对应的排列结构中,如图9(a)所示,R(x)的次数比Q(x)的次数高一个次数。R(x)和Q(x)的系数向左排列。这两个多项式的最高次数项的次数(阴影线部分)排列位置相同。
若迭代运算正常执行,则状态变量SV减“1”。若上述两个多项式中的一个的最高次数项的系数为“0”,则状态变量SV加“1”。而且,若迭代运算正常执行时状态变量值减为“0”,则下一状态变量值变成“1”。即,若迭代运算正常执行时状态变量值减为“0”,则两个多项式的值相交换并输出。因此,状态变量值又变回初始值“1”。
即,在步骤12中,判断Q(x)或R(x)的最高次数项的系数是否为“0”。若这两个多项式之一的最高次数项的系数不为“0”,则判断当前状态变量SVi是否为“0”(步骤S13)。
若在步骤S13中当前状态变量SVi不为“0”,则运算各个多项式R(x)、Q(x)、λ(x)和μ(x)。将当前状态变量SVi减“1”来设置下一状态变量SVi+1为“0”。延迟和排列所运算的多项式R(x)、Q(x)、λ(x)和μ(x)的系数(步骤S15)。此时,如图9(b)所示,在多项式R(x)和Q(x)的系数中,R(x)的次数被降低了一个次数。在此排列结构(图9(b))中状态变量值为“0”。此外,若当前状态变量为“1”且两个多项式的最高次数项的系数不为“0”(图9(a)),则如图9(b)所示,R(x)的次数要降低一个次数。
若在步骤S13中当前状态变量SVi为“0”,则表示R(x)和Q(x)的最高次数项的系数相同。在运算各个多项式R(x)、Q(x)、λ(x)和μ(x)之后,由于R(x)的次数低于Q(x)的次数,所以将R(x)的系数与Q(x)的系数交换,将λ(x)的系数与μ(x)的系数交换。将状态变量SVi+1设置为“1”(步骤S16)。此时,多项式R(x)和Q(x)的系数排列结构如图9(c)所示。
若在步骤12中两个多项式Q(x)和R(x)之一的最高次数项的系数不为“0”,则判断R(x)的最高次数项的系数是否为“0”(步骤S17)。若R(x)的最高次数项的系数为“0”,则由于R(x)的次数低于Q(x)的次数(步骤S18),将R(x)的系数与Q(x)的系数交换,将λ(x)的系数与μ(x)的系数交换。将两个多项式Q(x)和μ(x)的系数向右移动一个次数。将当前状态变量SVi加“1”得到的值设置为下一状态变量SVi+1(步骤S19)。此时,多项式R(x)和Q(x)的系数排列结构如图9(d)所示。
若R(x)的最高次数项的系数不为“0”而Q(x)的最高次数项的系数为“0”,由于R(x)的次数高于Q(x)的次数,在步骤S19中,将两个多项式Q(x)和μ(x)的系数向右移动一个次数,并且将当前状态变量SVi加“1”得到的值设置为下一状态变量SVi+1。此时,多项式R(x)和Q(x)的系数排列结构如图9(e)所示。
在执行完步骤S15、S16和S19之后,判断μ(x)的次数是否高于Q(x)的次数(步骤S20)。在μ(x)的次数没有高于Q(x)的次数的情况下,该过程返回到步骤S12并重复执行步骤S12至S19。
在本发明的电路中,改变了多项式的排列结构。因此,由于不需要附加的次数比较电路,从而无需缓存次数,于是简化了硬件。
而且,本发明可以执行在改进欧几里德算法运算中所期望的迭代运算,而不用直接相互比较各个多项式的最高次数项。由于不需要存储各个多项式的当前次数,也就无需缓存。
权利要求
1.一种采用改进欧几里德算法纠正接收符号中差错的里德-索罗门(RS)解码器,包括运算器,用于采用输入初始差错定位多项式和改进的校正子多项式,对改进欧几里德算法的四个多项式R(x)、Q(x)、λ(x)、μ(x)进行迭代运算;排列器,用于从左侧排列各个多项式的系数;产生器,用于利用标识每次迭代运算开始的迭代控制信号,产生表示各个多项式有效部分的控制信号;以及提取器,用于根据所述控制信号,提取运算器所提供的作为差错估计多项式的多项式R(x)和作为差错定位多项式的多项式λ(x)。
2.如权利要求1所述的RS解码器,其中,所述产生器给各个多项式R(x)、Q(x)和μ(x)指定1位的控制信号,在提供有迭代控制信号时,将各个多项式R(x)、Q(x)和μ(x)的相应控制信号值保持在第一逻辑状态,并且在由排列器第一次提供不是“0”的多项式系数时,将指定该多项式的控制信号改变为第二逻辑状态。
3.如权利要求2所述的RS解码器,其中,所述运算器还包括存储器,用于根据由所述产生器产生的R(x)和Q(x)控制信号,存储由所述排列器提供的R(x)和Q(x)的第一有效值,作为这些多项式的最高次数项的系数。
4.如权利要求2所述的RS解码器,其中,在所述产生器提供的O(x)的控制信号没有处于有效部分并且判定μ(x)的控制信号被判定处于有效部分时,所述提取器输出作为差错估计多项式的R(x)和作为差错定位多项式的λ(x)。
5.如权利要求2所述的RS解码器,还包括排列控制器,用于根据所述产生器产生的R(x)和Q(x)控制信号,产生移位信号和交换控制信号,并判断表示R(x)次数和Q(x)次数之间差值的状态变量,以及控制在所述排列器中各多项式系数的排列。
6.如权利要求5所述的RS解码器,其中,所述排列控制器根据R(x)和Q(x)的控制信号,在得知R(x)的最高次数项的系数为“0”时,向所述排列器提供一个交换控制信号,用于用Q(x)的系数交换R(x)的系数以及用λ(x)的系数交换μ(x)的系数,以及一个移位信号,用于向右将多项式R(x)以及与之成对的λ(x)移动一个次数;并且在Q(x)的最高次数项的系数为“0”时,向所述排列器只提供一个移位信号,用于将多项式Q(x)和与之成对的μ(x)向右移动一个次数。
7.如权利要求6所述的RS解码器,其中,若所述判断器提供的状态变量显示所述两个多项式R(x)和Q(x)的次数相等,则所述排列器在将所述两个多项式的系数延迟一个单位时间之后再排列它们;而若所述判断器提供的状态变量显示所述两个多项式中的一个多项式的次数比另一个多项式的次数高,则所述排列器在没有延迟所述两个多项式系数的情况下排列它们。
8.一种根据校正子值搜索差错的位置和大小的里德-索罗门(RS)解码器,包括第一多项式运算器,用于根据接收的数据计算校正子值,并构建一校正子多项式;第一产生器,用于每当输入新的删除信息时根据接收数据中的删除信息产生初始差错定位多项式的根和标识迭代运算开始的迭代控制信号;第一多项式扩展器,用于利用所述根来扩展初始差错定位多项式;第二多项式扩展器,用于利用所述校正子的值和所述根来扩展改进的校正子多项式;改进欧几里德算法运算器,用于利用初始差错定位多项式和改进校正子多项式,提取差错估计多项式和差错定位多项式;第二和第三多项式运算器,用于对来自改进欧几里德算法运算器的差错估计多项式和差错定位多项式进行运算;以及提取器,用于根据由第二和第三多项式运算器计算的差错估计多项式和差错定位多项式,提取接收数据所包含的差错的位置和大小并对所接收的数据进行纠错解码,其中,所述改进欧几里德算法运算器包括运算器,用于采用输入初始差错定位多项式和改进的校正子多项式,对改进欧几里德算法的四个多项式R(x)、Q(x)、λ(x)、μ(x)进行迭代运算;排列器,用于从左侧排列各个多项式的系数并且向运算器提供所排列的多项式系数,并将所排列的多项式的系数提供给所述运算器;控制信号产生器,用于利用迭代控制信号,产生表示多项式R(x)、Q(x)、μ(x)有效部分的R(x)、Q(x)、μ(x)控制信号;存储器,用于利用R(x)和Q(x)的控制信号作为允许信号,存储由排列器提供的R(x)和Q(x)的第一有效值,作为最高次数项的系数,并将它们提供给运算器;选择信号产生器,用于利用Q(x)和μ(x)的控制信号产生选择信号;和选择器,用于根据选择信号选择由运算器提供的作为差错估计多项式的多项式R(x)和作为差错定位多项式的多项式λ(x)。
9.如权利要求8所述的RS解码器,其中,在所述Q(x)的控制信号没有处于有效部分并且μ(x)的控制信号处于有效部分时,所述选择信号产生器产生一个选择信号,以便由所述选择器选择R(x)作为差错估计多项式和选择λ(x)作为差错定位多项式。
10.如权利要求8所述的RS解码器,还包括判断器,用于根据所述R(x)和Q(x)的控制信号,产生一个移位信号和一个交换控制信号,判断用于显示多项式R(x)的次数和多项式Q(x)的次数之间差值的状态变量,并将它们提供给所述排列器。
11.如权利要求8所述的RS解码器,其中,所述判断器根据R(x)和Q(x)的控制信号,在得知R(x)的最高次数项的系数为“0”时,向所述排列器提供一个交换控制信号,用于用Q(x)的系数交换R(x)的系数以及用λ(x)的系数交换μ(x)的系数,以及一个移位信号,用于将多项式R(x)以及与之成对的λ(x)向右移动一个次数;并且在Q(x)的最高次数项的系数为“0”时,向所述排列器只提供一个移位信号,用于将多项式Q(x)和与之成对的μ(x)向右移动一个次数。
12.如权利要求11所述的RS解码器,其中,若所述判断器提供的状态变量显示所述两个多项式R(x)和Q(x)的次数相等,则所述排列器在将所述两个多项式的系数延迟一个单位时间之后再排列它们;而若所述判断器提供的状态变量显示所述两个多项式中的一个多项式的次数比另一个多项式的次数高,则所述排列器在没有延迟所述两个多项式系数的情况下排列它们。
13.一种采用改进欧几里德算法纠正接收符号中差错的里德-索罗门(RS)解码方法,包括下述步骤(a)从左侧排列用于改进欧几里德算法的四个多项式R(x)、Q(x)、λ(x)、μ(x)的系数;(b)产生表示从左侧排列的这些多项式系数从何处起有效的各个多项式的控制信号;(c)利用指定给多项式Q(x)和μ(x)的控制信号,判断这两个多项式的次数;(d)若在步骤(c)中判定μ(x)的次数高于Q(x)的次数,则输出R(x)作为差错估计多项式,输出λ(x)作为差错定位多项式,否则,判断R(x)和Q(x)的最高次数项的系数是否为“0”;以及(f)在步骤(d)中如果这两个多项式R(x)和Q(x)之一的最高次数项的系数为“0”,则将此最高次数项系数为“0”的多项式的系数以及与之成对的多项式的系数,向右移动一个次数,否则对各个多项式进行迭代运算。
14.如权利要求13所述的方法,其中,在所述步骤(e)中,若R(x)的最高次数项的系数为“0”,则在将R(x)的系数与Q(x)的系数交换和将μ(x)的系数与λ(x)的系数交换后,将Q(x)和μ(x)的系数向右移动一个次数。
15.如权利要求13所述的方法,其中,在所述步骤(e)中,若Q(x)的最高次数项的系数为“0”,将Q(x)和μ(x)的系数向右移动一个次数。
16.如权利要求13所述的方法,其中,在步骤(c)中,根据用于标识迭代运算开始的迭代控制信号,利用首先在步骤(a)中排列的不为“0”的Q(x)和μ(x)系数的位置信息,来判断Q(x)和μ(x)的次数。
17.如权利要求13所述的方法,还包括步骤(f),用于根据在所述步骤(b)中产生的R(x)和Q(x)的控制信号,存储这两个多项式R(x)和Q(x)的最高次数项的系数,其中,所存储的最高次数项的系数用于所述步骤(e)中各个多项式的迭代运算。
18.一种用于执行改进欧几里德算法的RS解码方法,其中包括多项式排列的步骤,该多项式排列步骤包括下述步骤(a)设定初始状态变量;(b)判断Q(x)和R(x)中的一个多项式的最高次数项的系数是否为“0”,并判断这两个多项式的次数是否相同;(c)若在步骤(b)中两个多项式的次数不同,则计算各个多项式R(x)、Q(x)、λ(x)和μ(x),将当前状态变量减“1”来获得下一个状态变量,并在延迟所计算多项式的系数后再排列它们;(d)若在步骤(b)中两个多项式的次数相同,则在计算各个多项式之后,将R(x)的系数与Q(x)的系数交换,将λ(x)的系数与μ(x)的系数交换,并将下一个状态变量设置为“1”;(e)若在步骤(b)中两个多项式R(x)和Q(x)之一的最高次数项的系数为“0”,则判断R(x)的最高次数项的系数是否为“0”;(f)若在步骤(e)中R(x)的最高次数项的系数为“0”,则在将R(x)的系数与Q(x)的系数交换且将λ(x)的系数与μ(x)的系数交换之后,将两个多项式Q(x)和μ(x)的系数向右侧移动一个次数,并将当前状态变量加“1”所得到的值设置为下一个状态变量;以及(g)若在步骤(e)中Q(x)的最高次数项的系数为“0”,则将两个多项式Q(x)和μ(x)的系数向右侧移动一个次数,并将当前状态变量加“1”所得到的值设置为下一个状态变量。
19.如权利要求18所述的方法,还包括步骤(h),用于在执行完所述步骤(c)、(d)、(f)和(g)中的一个步骤后,判断μ(x)的次数是否高于Q(x)的次数,并且在μ(x)的次数没有高于Q(x)的次数的情况下,返回到步骤(b),并重复执行所述步骤(b)至(g)。
20.如权利要求18所述的方法,其中初始状态变量为“1”,在初始状态变量对应的两个多项式R(x)和Q(x)排列结构中,R(x)的次数比Q(x)的次数高一个次数,从左侧排列这两个多项式的系数,并且在相同位置排列这两个多项式的最高次数项的次数。
全文摘要
一种里德-索罗门(RS)解码器及其解码方法,其中:运算器采用输入初始差错定位多项式和改进校正子多项式,对改进欧几里德算法的四个多项式R(x)、Q(x)、λ(x)、μ(x)进行迭代运算;排列器从左侧排列各个多项式的系数;产生器利用迭代开始控制信号,产生表示各个多项式有效部分的控制信号;提取器根据控制信号提取运算器提供的作为差错估计多项式的R(x)和作为差错定位多项式的λ(x)。因为无需附加次数比较电路和缓存次数,简化了RS解码器。
文档编号G06F11/10GK1214575SQ9812134
公开日1999年4月21日 申请日期1998年10月12日 优先权日1997年10月14日
发明者吴智成, 吴圭泽 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1