CN101288232A - 对数据进行编码和解码的方法以及设备 - Google Patents
对数据进行编码和解码的方法以及设备 Download PDFInfo
- Publication number
- CN101288232A CN101288232A CNA2006800342553A CN200680034255A CN101288232A CN 101288232 A CN101288232 A CN 101288232A CN A2006800342553 A CNA2006800342553 A CN A2006800342553A CN 200680034255 A CN200680034255 A CN 200680034255A CN 101288232 A CN101288232 A CN 101288232A
- Authority
- CN
- China
- Prior art keywords
- input data
- row
- matrix
- sequence
- bit
- 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.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/615—Use of computational or mathematical techniques
- H03M13/616—Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/19—Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2957—Turbo codes and decoding
- H03M13/296—Particular turbo code structure
- H03M13/2963—Turbo-block codes, i.e. turbo codes based on block codes, e.g. turbo decoding of product codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/45—Soft decoding, i.e. using symbol reliability information
- H03M13/451—Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD]
- H03M13/453—Soft decoding, i.e. using symbol reliability information using a set of candidate code words, e.g. ordered statistics decoding [OSD] wherein the candidate code words are obtained by an algebraic decoder, e.g. Chase decoding
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Error Detection And Correction (AREA)
Abstract
提供了一种用于对输入数据序列进行解码的方法。所述方法包括:生成多个测试序列;确定所述多个测试序列的顺序,以便每一个测试序列都与其相邻测试序列相差相应的预先定义的比特数;以及利用排序的测试序列和输入数据进行最大似然率处理,从而生成最大似然率序列。
Description
本申请请求美国临时申请60/734,054(2005年11月7日申请)和60/734,080(2005年11月7日申请)的优先权,这些申请的全部内容通过引用结合于此。
技术领域
本发明涉及对数据进行解码和编码的方法,以及相应的设备。
背景技术
前向纠错(FEC)编码用于通信技术中,使得在接收端在数据传输过程中发生的数量有限的错误能得到纠正。近来,Berrou提出了一种新的FEC编码方案,叫做“turbo码(TC)”[1],其能够使用软输入/软输出(SISO)迭代解码器,对由山农定理预测的加性高斯白噪声(AWGN)信道实现接近于理论极限的性能级别。此新的编码方案包括两个并联的递归系统卷积码,由此,通常被称为“卷积turbo码(CTC)”。
随后,Pyndiah提出了“turbo乘积码(TPC)”[2][3],以及针对turbo乘积码的有效的解码算法。turbo乘积码显示了可与卷积turbo码匹敌的性能,并能够支持更高的编码率。由于这些优点,turbo乘积码已经用于IEEE 802.16网络的物理层,以及用于卫星通信和数字存储系统中。
这两个最新发展表明已进行了大量的研究工作,以获得具有更高性能级别的编码方案。还在降低这些新的编码方案的解码复杂性方面进行更多的研究工作。例如,为了进一步降低对turbo乘积码进行解码的复杂性,使用Chase算法[4]来获得用于迭代解码的每一个比特位置的外部信息。
如本申请的相应的独立权利要求中定义的方法和设备,对获得具有更高性能级别的编码方案的努力作出了进一步的贡献。
在本发明的第一个方面,提供了对输入数据序列进行解码的方法,包括:生成多个测试序列;确定多个测试序列的顺序,以便每一个测试序列都与其相邻测试序列相差相应的预先定义的比特数;以及利用排序的测试序列和输入数据进行最大似然率处理,从而生成最大似然率序列。
在本发明的第二个方面,提供了一种解码设备,包括:生成多个测试序列的生成器;第一单元,用于确定多个测试序列的顺序,以便每一个测试序列都与其相邻测试序列相差相应的预先定义的比特数;以及第二单元,用于利用排序的测试序列和输入数据进行最大似然率处理,从而生成最大似然率序列。
在本发明的第三个方面,提供了一种计算机程序产品,当由电脑执行所述计算机程序产品时,其使电脑执行对输入数据序列进行解码的方法,包括:生成多个测试序列:确定多个测试序列的顺序,以便每一个测试序列都与其相邻测试序列相差相应的预先定义的比特数;以及利用排序的测试序列和输入数据进行最大似然率处理,从而生成最大似然率序列。
下面所描述的一个实施例可以被视为Chase算法的修改方案。相对于解码处理中的原始Chase算法,复杂性可以降低。修改方案可以包括:组织测试序列,以便每一个测试序列都与其相邻测试序列相差预定的比特数;以及获得用于计算最大似然率序列的可靠性指标的新的公式,包括一个系数,该系数包括最大权重和最大似然率序列的权重之间的差值。利用经过修改的Chase算法的解码处理的复杂性显著降低。
本发明的实施例于从属权利要求相关。
在一个实施例中,可以确定生成的最大似然率序列的可靠性指标。在另一个实施例中,获得的最大似然率序列的可靠性指标的系数包括最大权重和最大似然率序列的权重之间的差值。在再一个实施例中,获得的最大似然率序列的可靠性指标的系数进一步包括生成的最大似然率序列中的最不可靠的比特位置的数量。
如这里所使用的,生成的最大似然率序列的可靠性指标是指计算出的用于度量获得的最大似然率序列的相对可靠性的值。生成的最大似然率序列的可靠性指标例如可以是,但不仅限于,最大似然率序列的外部信息。
在一个实施例中,当遇到错误时,可能扰乱测试序列。在另一个实施例中,测试序列可以通过颠倒测试序列的预定比特来扰乱。
在一个实施例中,相应的预先定义的比特数是1。这意味着,两个相邻测试序列只相差1比特。
在本发明的第四个方面,提供了对输入数据序列进行编码的方法,包括:确定至少一个编码矩阵;对确定的至少一个编码矩阵进行排序;将输入数据序列组织到输入数据矩阵中:以及使用组织的所述至少一个编码矩阵对输入数据矩阵进行操作,从而生成经过编码的数据块。
在本发明的第五个方面,提供了一种编码设备,包括:用于确定至少一个编码矩阵的第一单元;用于对确定的至少一个编码矩阵进行排序的第二单元;用于将输入数据序列组织到输入数据矩阵中的第三单元;以及第四单元,用于使用组织的所述至少一个编码矩阵对输入数据矩阵进行操作,从而生成经过编码的数据块。
在本发明的第六个方面,提供了一种计算机程序产品,当由电脑执行所述计算机程序产品时,其使电脑执行对输入数据序列进行编码的方法,包括:确定至少一个编码矩阵;对确定的所述至少一个编码矩阵进行排序;将所述输入数据序列组织到输入数据矩阵中;以及使用组织的所述至少一个编码矩阵对输入数据矩阵进行操作,从而生成经过编码的数据块。
作为例证,通过重新组织编码矩阵以便原始编码矩阵的每一列的值都按升序排列,从而来获得新的编码矩阵。对于用此新的编码矩阵生成的经过编码的数据矢量,当在解码器端发生错误时,可以简单地通过颠倒由错误伴随式表示的位置中的比特值,使用生成的错误伴随式直接纠正此错误。然而,对于用原始编码矩阵生成的经过编码的数据矢量,仍需要对生成的错误伴随式进行进一步的处理,以便能够确定错误比特的位置。相应地,对用此新的编码矩阵生成的经过编码的数据矢量进行解码的过程被简化。
在一个实施例中,可以通过组织至少一个编码矩阵的列以使每一列中的比特值所代表的整数值按升序排列,对确定的至少一个编码矩阵进行排序,其中,顶行中的比特对应于每一列的最低有效位。
在一个实施例中,在对确定的至少一个编码矩阵之前,可以在确定的所述至少一个编码矩阵的最右边列之后附加一列预定值,并可以在确定的至少编码矩阵的底部的行下面附加一行预定值。在另一个实施例中,所述预定值的列可以是全部为零的列,所述预定值的行可以是全部为1的行。
在一个实施例中,可以删除经过编码的数据块的预定的行或经过编码的数据块的预定的列。在另一个实施例中,经过编码的数据块的连续比特的预定集合可以被删除或替换为预定的数据。在再一个实施例中,预定的数据可以是全部为零值的集合。在再一个实施例中,预定的数据可以是循环冗余校验(CRC)数据。
可以看出,本发明提供的对输入数据序列进行解码的方法给出了下列优点,即,使用本发明提供的对输入数据序列进行解码的方法的解码处理与使用原始Chase算法的解码处理相比,具有较低的复杂性。
此外,本发明提供的对输入数据序列进行编码的方法也给出下列优点。对于使用本发明提供的对输入数据序列进行编码的方法生成的经过编码的数据矢量或数据块,当发生错误时,可以直接从计算出的伴随式获得错误的比特位置。
相应地,使用由本发明提供的对输入数据序列进行编码的方法生成的经过编码的数据矢量或数据块的解码过程得以简化。
在提供的对输入数据序列进行解码的方法和对输入数据序列进行编码的方法的上下文中描述的实施例,对设备和计算机程序产品也同样有效。
附图说明
图1显示了根据本发明的一个实施例的通信系统。
图2显示了根据本发明的一个实施例的在编码和解码处理过程中的伴随式和中间步骤。
图3显示了turbo乘积码(TPC)的示例。
图4显示了根据本发明的实施例的turbo乘积码(TPC)的示例。
图5显示了原始Chase算法和根据本发明的实施例的经过修改的Chase算法之间的具有n+1列和n+1行的以平方turbo乘积码(TPC)方式编码的数据块的解码复杂性的比较。
图6显示了原始Chase算法和根据本发明的实施例的经过修改的Chase算法之间的(64,57,3)汉明码块的解码复杂性的比较。
图7显示了根据本发明的实施例的解码器的性能结果。
具体实施方式
图1显示了根据本发明的一个实施例的通信系统100。
在传输路径上,通信系统100包括信息源和输入变换器101、信源编码器103、信道编码器105和数字调制器107。由信息源和输入变换器101生成的信号在被传输之前将由信源编码器103、信道编码器105和数字调制器107进行处理。传输的信号在作为接收到的信号到达接收器端之前通过信道109。
在接收路径上,通信系统100包括数字解调器111、信道解码器113、信源解码器115和输出变换器117。通过接收路径上的组件处理接收到的信号,以便在理想情况下,获得与由信息源和输入变换器101生成的信号相同的信号。
传输路径上的每一个组件在接收路径上都具有对应的组件。例如,在传输路径上有信道解码器105,其在接收路径上对应的组件是信道解码器113。
在通信系统100中的典型的信号传输中,在信号中有可能发生错误。在通过信道109传输信号的过程中,通常会发生错误。相应地,在典型的通信系统100中提供了信道编码器105以及其对应的信道解码器113,以减少,如果可能的话,消除在通过信道109进行信号传输的过程中发生的错误。
在此情况下,信道编码器105可以是turbo乘积码(TPC)编码器,可以通过本发明提供的对数据进行编码的方法来实现。相应地,信道解码器113可以是turbo乘积码(TPC)解码器,可以使用通过本发明提供的对数据进行解码的方法来实现。
可以按如下方式描述turbo乘积码(TPC)编码器。
在随后的描述中,使用下列约定。X是指矩阵或矢量集,xi是指矩阵X的第i行。在这方面,xi j是指xi的第j个元素。然而,如果X只有一行,那么,xj是指X的第j个元素。
C表示具有发生器矩阵G和奇偶校验矩阵H的汉明码编码数据矢量(n,k,δ),其中,码长度为n=2m-1,信息比特的数量为k=n-m,以及最小汉明码距为δ=3,其中,m是整数值。此外,码长度n以及信息比特的数量k也都是整数值,m是可设置的值,条件是m≥3。
G可以以系统的形式表示为具有k×(n-k)奇偶校验子矩阵P的G=(Ik|P)。相应地,对应的奇偶校验矩阵H可以通过H=(PT|Ik)来表示。公式(1)、(2),以及(3)中分别显示了m=3时的每一个矩阵G、W和P的示例。可以看出,当m=3,n=7并且k=4时,
使用发生器矩阵G,汉明码的编码过程通常表示为c(c1,…,cn)=(c1,…,ck)G。还可以使用奇偶校验矩阵H对信息比特进行编码。在k>(n-k)的情况下,使用奇偶校验矩阵H的编码过程要求较少的计算量。在这些情况下,基于cHT=0,实现使用奇偶校验矩阵H的编码过程,以便获得n-k个奇偶校验位ck+1,…,cn,如下:
cj=c1p1,j+c2p2,j+…+ckpk,j k<j≤n (4)
汉明码具有特殊特性,以便它们的奇偶校验矩阵H对于其所有列具有不同的值。例如,在公式(3)中,奇偶校验矩阵H对于其所有列具有值(3,5,6,7,1,2,4),其中,顶行上的比特是最低有效位(LSB)值。
如果发生单个错误,例如,在位置j,那么,接收到的矢量r的伴随式s表示H的发生了错误的位置处的列。令e表示错误矢量。假设除了第j个分量以外,其所有分量都等于零,即,ej=1,那么,接收到的矢量的伴随式s由下列公式给出:
s=rHT=eHT=hj (5)
其中,hj表示H的第j列。例如,图2的左侧部分显示了使用公式(3)给出的奇偶校验矩阵H生成的汉明码编码数据矢量中的单个比特错误的可能的伴随式的列表。
根据公式(5),如果H的列被表达为错误位置的二进制表示,那么,伴随式s的值可以直接用于确定错误的比特位置。为了实现这一点,可以重新组织奇偶校验矩阵H的列,以便列的值按升序排列。
例如,在公式(3)中,如前面所述,奇偶校验矩阵H对于其所有列具有值(3,5,6,7,1,2,4),其中,顶行中的比特是最低有效位(LSB)。通过将其所有列的值重新组织为(1,2,3,4,5,6,7),获得下列结果矩阵,Hr:
或者,从奇偶校验矩阵H生成矩阵Hr可以表达为
使用矩阵Hr生成的汉明码编码数据矢量是具有奇偶校验矩阵H的原始汉明码编码数据矢量的重新组织的版本。一般而言,对于(n,k)汉明码,n=2m-1和k=2m-1-m,奇偶校验位位于Hr的编号为1,2,4...2m-1的列中。从编号为3的列开始,组织其余的编码的比特,与使用奇偶校验矩阵H时的顺序相同。随后将利用图2的例图对此进行进一步的描述。
在解码器端,对于使用奇偶校验矩阵H生成的汉明码编码数据矢量,首先使用公式(5)从接收到的矢量计算伴随式s。然后,使用计算出的伴随式从查询表获取对应的错误模式。然后,通过对接收到的矢量和错误模式进行异或(XOR)运算,获取纠正的接收到的矢量。随后,在删除奇偶校验位之后,可以从纠正的接收到的矢量恢复信息比特。
然而,对于使用矩阵Hr生成的汉明码编码数据矢量,易于实现硬判决解码,因为通过公式(5)计算出的伴随式s直接给出错误的比特位置。然后,颠倒接收到的矢量中的错误比特,以便获取已纠正的接收到的矢量。因此,不需要参考查询表以获取与计算出的伴随式对应的错误模式的步骤。相应地,使用矩阵Hr生成的汉明码的此特性可以用于降低turbo乘积码(TPC)解码处理的复杂性,关于这一点,后面将进行描述。
作为进一步的示例,显示了使用奇偶校验矩阵H和矩阵Hr生成的编码数据矢量的编码和解码处理,如图2所示。在此例图中,信息比特被取为(c1,...,ck)=(1,0,1,0)201。
对于奇偶校验矩阵H,使用公式(4)获取奇偶校验位,生成的汉明码编码数据矢量由(c1,…,cn)=(1,0,1,0,1,0,1)203给出。假设在传输过程中,在比特位置2发生错误。因此,接收到的矢量r由(r1,…,rn)=(1,1,1,0,1,0,1)205.给出。
按如下方式计算接收到的矢量的伴随式s
s=rHT=(1,1,1,0,1,0,1)HT=(1,0,1)T (8)
使用从查询表获取的伴随式s,(1,0,1)207,对应于(1,0,1)207的伴随式值的行209表明,对应的错误模式是(0,1,0,0,0,0,0)211。通过对接收到的矢量和错误模式的异或(XOR)运算获取的纠正的接收到的矢量是(1,0,1,0,1,0,1),与编码数据矢量203相同。
对于奇偶校验矩阵Hr,从公式(6)可以看出,奇偶校验位位置位于Hr的编号为1、2、4的列中。如此,可以通过删除编号为1、2和4的列,获得奇偶校验子矩阵PT的转置。
从此矩阵和公式(4),获得3个奇偶校验位为(1,0,1)。相应地,在将奇偶校验位插入到列号1,2和4,然后将信息比特(1,0,1,0)201插入到其余列(从列3开始)之后,获得的编码矢量或汉明码是(1,0,1,1,0,1,0)215。
假设在比特位置2发生了错误,因此,接收到的矢量r是(1,1,1,1,0,1,0)217。为该接收到的矢量获得的伴随式s是
由于此伴随式(0,1,0)219直接给出了错误比特的比特位置,通过颠倒比特位置2处的比特,获得的纠正的接收到的字是(1,0,1,1,0,1,0)221。可以看出,纠正的接收到的字与编码数据矢量相同。相应地,从此说明可以看出,使用矩阵Hr生成的汉明码编码数据矢量的解码处理得到简化,因为直接计算出的伴随式给出了错误比特的比特位置。
如上所述,通过重新组织奇偶校验矩阵H的列,以便列的值按升序排列,从奇偶校验矩阵H生成矩阵Hr。也可以以与矩阵Hr类似的方式生成替选矩阵Hr E,使用矩阵Hr E生成的汉明码还与使用矩阵Hr生成的汉明码拥有相同的唯一特性。为了与使用矩阵Hr生成的汉明码区别,此后,使用矩阵Hr E生成的汉明码简称为“扩展汉明码”。
可以按如下方式生成矩阵Hr E。首先,将全部为零的列附加到奇偶校验矩阵H的最右边列。其次,将全部为零的列附加到奇偶校验矩阵H的最右边列。中间结式矩阵HE显示为如下:
此后,通过重新组织奇偶校验矩阵HE的列,以便列的值按升序排列,从奇偶校验矩阵HE生成矩阵Hr E,如下面所示
接下来,描述根据本发明的实施例生成turbo乘积码(TPC)的过程。例如,可以基于两个汉明码C1(n1,k1,δ1)和C2(n2,k2,δ2)(它们是通过使用前面描述的矩阵Hr生成的),按如下方式生成turbo乘积码(TPC):
1)在k2行和k1列的阵列中组织(k2k1)信息比特,
2)使用代码C1对k2行进行编码,
3)使用代码C2,对k1列进行编码,以及
4)对于对应的行和列,相应地计算奇偶校验位,然后插入奇偶校验位。
根据前面所描述的过程生成的turbo乘积码(TPC)的码字长、信息比特的数量和最小汉明码距分别是n1×n2,k1×k2,δ1×δ2。这意味着,可以从具有小的最小汉明码距的两个短块码获得具有大的最小汉明码距的长块码。
图3显示了使用奇偶校验矩阵H生成的turbo乘积码(TPC)编码数据块300,图4显示了根据本发明的实施例的使用奇偶校验矩阵Hr生成的turbo乘积码(TPC)编码数据块400。
在图3中,行i(其中,i≤k2)上的比特(1,...,k1)是信息比特301。在该同一行i上,比特(k1+1,...,n1-1)是行i的奇偶校验位303,而比特n1可以是整行i的单一奇偶校验位305。
类似地,列j(其中,j≤k1)上的比特(1,...,k2)是信息比特301。在该同一列j上,比特(k2+1,...,n2-1)是列j的奇偶校验位307,而比特n2可以是列j的单一奇偶校验位305。
最后,行i(其中,k2≤i≤n2-1)上的比特(k1+1,...,n1-1)是奇偶校验位上的奇偶校验位309。这是因为行i(其中,k2≤i≤n2-1)上的比特(1,...,k1)都是奇偶校验位(列上的)307。相应地,当对一行奇偶校验位执行编码过程时,作为编码过程的结果获得的奇偶校验位是奇偶校验位上的奇偶校验位。
另一方面,在图4中,可以看出,奇偶校验位位于编号为1,2,4...2m-1的行以及列中。此外,行和列两者都被编号为1,2,4...2m-1中的某一个的位置处的位是奇偶校验位上的奇偶校验位401。相应地,矩阵Hr和前面所描述的使用矩阵Hr生成的编码矢量的特殊特性也在如图4所示的turbo乘积码(TPC)编码数据块中。
从图2可以看出,使用矩阵Hr生成的汉明码编码数据矢量的解码过程不需要查询表来获得对应于从接收到的矢量计算出的伴随式的错误模式,从而降低了解码复杂性。相应地,与如图3所示的TPC编码数据块相比,如图4所示的TPC编码数据块的解码复杂性更进一步降低。这是因为,如图3所示的TPC编码数据块的解码处理涉及解码处理中每次迭代的行指数和列指数的乘积的倍数。
接下来,将描述如何修改turbo乘积码(TPC)的编码率。通常,每个编码器都具有一个编码率,通常是作为信息比特的数量(在其输入)和已编码数据比特的数量(在其输出)之间的比率给出的。如果编码器不具有所需的编码率,可以在编码过程之后,实现叫做“(编码)率匹配”的过程,以便获得所需的编码率。
对于前面所描述的turbo乘积码(TPC),可以利用下列步骤的组合来执行编码率匹配:
a)从编码数据块中删除预定数量的行,
b)从编码数据块中删除预定数量的列,
c)从编码数据块中的行中删除预定数量的比特,
d)利用预定的值的集合替换编码数据块中的行的预定数量的比特。
通常,对于步骤(d),用于替换编码数据块中的行的预定数量的比特的预定的值的集合是全部为零值的集合。用于替换编码数据块中的行的预定数量的比特的预定的值的集合也可以是从信息比特生成的循环冗余校验(CRC)比特。
通过循环冗余校验(CRC)的使用,可以快速地进校验,以便确定在接收器端的信息比特中是否有错误。如果确定信息比特中没有错误,则可以直接从编码数据块中提取信息比特,而无需经过turbo乘积码(TPC)解码处理。
接下来,可以按如下方式描述turbo乘积码(TPC)解码器。
如上所述,为了进一步降低对turbo乘积码进行解码的复杂性,使用Chase算法[4]来获得有关用于迭代解码的每一个比特位置的外部信息。然而,可以看出,就复杂性而言,Chase算法相对来说仍比较高。
可以看出,通常利用循环结构实现Chase算法中的许多步骤。相应地,可以通过优化循环结构内的步骤来实现复杂性的降低。根据本发明的一个实施例,从解码以及编码这两个方面来考虑解码复杂性的降低。前面已经描述了从编码方面考虑的解码复杂性的降低,现在,将从解码方面考虑解码复杂性的降低。
可以按如下方式描述从解码方面考虑的解码复杂性的降低。通过使用前面所描述的生成turbo乘积码(TPC)的过程,可以根据下列步骤实现根据本发明的一个实施例的经过修改的Chase算法:
1)从接收到的信号,例如,具有相位校正的二进制移相键控(BPSK)调制信号{1→1,0→-1},表示为r=(r1,r2,...rn+1),
a)生成可靠性序列rabs=(|r1|,|r2|,...,|rn+1|),
b)生成二进制序列y=(y1,r2,...,yn,yn+1),其中,如果r1>0,y1=1,如果r1≤0,y1=0
c)使用rabs,确定序列(y1,r2,...,yn)的p最不可靠的比特位置。
2)a)初始化测试模式、模拟权重、伴随式以及扩展的比特,它们被定义为如下:
t1=(0,...,0,...,0)1×(n+1),
wtt=0,
其中,p1∈[1,n]是ti=ti+1中的非零比特的指数
b)对测试模式进行重新排序,以便测试模式与其相邻测试模式只相差1比特。
3)在2P循环内执行,
a)按如下方式确定扩展比特扰乱测试模式(如果发生错误),并计算模拟权重:
tj(n+1)=eb,
wj=wtt,
如果s≠0,那么
wj=wj+tj(sv)*|r(sv)|,
其中,tj(n+1)是ti的第n+1个元素,sv是伴随式s的整数值,并且
wj=wj+tj(n+1)*|r(n+1)|
b)按如下方式生成下一个测试序列,计算伴随式,计算扩展比特,并计算模拟权重:
ti+1=ti(比特pi被颠倒),
wtt=wtt+(2*ti+1(pi)-1)|r(pi)|
4)从有效码字集 估计最大似然率码字,其中,
5)对于接收到的信号,计算外部信息
a)对于p最不可靠的比特位置和纠正了错误的位置
gi=(2di-1)(wc-wd)-ri (12)
其中,wd和wc分别是最大似然率解码序列d和竞争解码序列cex的模拟权重。
b)对于所有其他位置
gi=(2di-1)(wmax-wd)/p (13)
其中,wmax为最大模拟权重。
对于步骤5(a),类似于原始Chase算法,如果最大似然率解码序列d的比特具有一个以上的竞争解码序列,wc是竞争解码序列之中的模拟权重中的最低值。这里,从所有测试序列中搜索竞争解码序列,而不是如在原始Chase算法中那样,只从候选解码顺序集中搜索。通过这样做,可以降低解码序列搜索过程的复杂性。
对于具有最小模拟权重的测试序列的p个最不可靠的比特位置和纠正了错误的位置,解码计算复杂性与原始Chase算法相同,对于每一个比特位置,要求2P次比较器运算。然而,对于其余的纠正了错误的位置,计算复杂性大大地降低,因为竞争解码序列的权重与在对应的位置中发生错误纠正运算的测试序列的权重相同,所以不需要更多的计算。
对于步骤Step 5(b),用于原始Chase算法中的参数β需要规范化外部信息,这又需要大量的计算。由于公式(13)没有如在原始Chase算法中所使用的参数β,因此,没有必要执行外部信息的规范化。相应地,解码复杂性显著降低。
图5显示了原始Chase算法和根据本发明的实施例的经过修改的Chase算法之间的、具有n+1列和n+1行的以平方turbo乘积码(TPC)方式编码的数据块的解码复杂性的比较。该比较只考虑了以平方turbo乘积码(TPC)方式编码的数据块的一个分量码字(一列或一行)的计算复杂性。
根据以平方turbo乘积码(TPC)方式编码的数据块的编码过程,水平和垂直方向中块组件码是等同的。相应地,在两个方向(沿着行方向和沿着列方向)中一次迭代的解码复杂性可以只是一个分量矢量的解码复杂性乘以2(n+1)。
图5的表中分别显示了原始Chase算法和根据本发明的一个实施例的经过修改的Chase算法的运算的数量的比较。下列符号用于如图5所示的表中:
a)实数加法的数量由Na表示
b)实数乘法的数量由Nm表示
c)比较运算的数量由Ncomp表示
d)GF(2)加法的数量由Ng表示
为便于原始Chase算法和根据本发明的一个实施例的经过修改的Chase算法的复杂性的比较,在图6中,以比率的形式提供了使用汉明码(64,57,3)生成的turbo乘积码(TPC)的两种算法所需的不同运算的数量的数值。例如,对于GF(2)加法的数量Ng,p=5,原始Chase算法使用GF(2)加法的数量是根据本发明的实施例的经过修改的Chase算法使用GF(2)加法的数量的19.7倍。
由于如图6所示的比率的每个数值都大于1,这意味着,与原始Chase算法相比,对于所有运算类型,包括实数加法、实数乘法、比较运算或GF(2)加法,根据本发明的实施例的经过修改的Chase算法使用的运算较少。因此,使用根据本发明的实施例的经过修改的Chase算法,解码复杂性显著降低。
图7显示了根据本发明的实施例的解码器的性能结果。如图7所示的结果,当与原始Chase算法的已发布的性能结果相比时,表明在原始Chase算法和根据本发明的一个实施例的经过修改的Chase算法之间的性能差别可以忽略。这意味着,使用根据本发明的一个实施例的经过修改的Chase算法,降低了解码复杂性,而性能不会有任何降低。
在本文中引用了下列文献:
Berrou,C.,et al.,″Near optimum error correcting coding anddecoding:Turbo codes″IEEE Trans.Commun.,vol.44,no.10,pp.1261-1271,Oct.1996.
Pyndiah,R.,″Near-optimum decoding of product codes:blockturbo codes″,IEEE Trans.Commun.,vol.46,no.8,pp.1003-1010,Aug.1998.
Pyndiah,R.,et al.,″Near-optimum decoding of product codes″,Proc.IEEE GLOBECOM′94,vol.1/3,pp.339-343,Nov.1994.
Chase,D.,″A class of algorithms for decoding block codes withchannel measurement information″,IEEE Trans.Inform.Theory,vol.IT-18,pp.170-182,Jan.1972.
Claims (24)
1.一种用于对输入数据序列进行解码的方法,包括
生成多个测试序列;
确定所述多个测试序列的顺序,以便每一个测试序列都与其相邻测试序列相差相应的预先定义的比特数;以及
利用排序的测试序列和输入数据序列进行最大似然率处理,从而生成最大似然率序列。
2.根据权利要求1所述的方法,进一步包括确定生成的最大似然率序列的可靠性指标。
3.根据权利要求2所述的方法,其中,生成的最大似然率序列的可靠性指标的系数包括所述最大权重和生成的最大似然率序列的权重之间的差。
4.根据权利要求3所述的方法,其中,获得的最大似然率序列的可靠性指标的系数进一步包括生成的最大似然率序列中的最不可靠的比特位置的数量。
5.根据权利要求1所述的方法,进一步包括当遇到错误时扰乱测试序列。
6.根据权利要求5所述的方法,其中,所述的扰乱测试序列包括颠倒测试序列的预定的比特。
7.根据权利要求1所述的方法,其中,所述相应的预先定义的比特数是1比特。
8.一种解码设备,包括:
生成多个测试序列的生成器;
第一单元,用于确定多个测试序列的顺序,以便每一个测试序列都与其相邻测试序列相差相应的预先定义的比特数;以及
第二单元,用于利用排序的测试序列和输入数据序列进行最大似然率处理,从而生成最大似然率序列。
9.根据权利要求8所述的设备,进一步包括第三单元,用于确定生成的最大似然率序列的可靠性指标。
10.一种计算机程序产品,当由电脑执行所述计算机程序产品时,其使电脑执行对输入数据序列进行解码的方法,包括
生成多个测试序列;
确定多个测试序列的顺序,以便每一个测试序列都与其相邻测试序列相差相应的预先定义的比特数;以及
利用排序的测试序列和输入数据序列进行最大似然率处理,从而生成最大似然率序列。
11.根据权利要求10所述的计算机程序产品,当由电脑执行时,其使电脑执行对输入数据序列进行解码的方法,进一步包括确定生成的最大似然率序列的可靠性指标。
12.一种用于对输入数据序列进行编码的方法,包括:
确定至少一个编码矩阵;
对确定的至少一个编码矩阵进行排序;
将输入数据序列组织到输入数据矩阵中;以及
使用所组织的至少一个编码矩阵对输入数据矩阵进行操作,从而生成经过编码的数据块。
13.根据权利要求12所述的方法,其中,所述的对确定的至少一个编码矩阵进行排序包括组织所述至少一个编码矩阵的列,以便由每一列中的比特值所代表的整数值按升序排列,其中,顶行中的比特对应于每一列的最低有效位。
14.根据权利要求12所述的方法,进一步包括:
在对所确定的至少一个编码矩阵进行排序之前
将一列预定值附加到所确定的至少一个编码矩阵的最右边列之后;以及
将一行预定值附加到所确定的至少编码矩阵的底部的行之下。
15.根据权利要求12所述的方法,其中,所述预定值的列是全部为零的列。
16.根据权利要求12所述的方法,其中,所述预定值的行是全部为1的行。
17.根据权利要求12所述的方法,进一步包括:
删除经过编码的数据块的预定的行。
18.根据权利要求17所述的方法,进一步包括:
删除经过编码的数据块的预定的列。
19.根据权利要求18所述的方法,进一步包括:
删除经过编码的数据块的连续比特的预定集合。
20.根据权利要求18所述的方法,进一步包括
用预定的数据替换经过编码的数据块的连续比特的预定的集合。
21.根据权利要求20所述的方法,其中,预定数据是全部为零值的集合。
22.根据权利要求20所述的方法,其中,预定数据是循环冗余校验(CRC)数据。
23.一种编码设备,包括:
用于确定至少一个编码矩阵的第一单元;
用于对确定的至少一个编码矩阵进行排序的第二单元;
用于将输入数据序列组织到输入数据矩阵中的第三单元;以及
第四单元,用于使用组织的至少一个编码矩阵对输入数据矩阵进行操作,从而生成经过编码的数据块。
24.一种计算机程序产品,当由电脑执行所述计算机程序产品时,其使电脑执行对输入数据序列进行编码的方法,包括:
确定至少一个编码矩阵;
对确定的至少一个编码矩阵进行排序;
将输入数据序列组织到输入数据矩阵中;以及
使用组织的至少一个编码矩阵对输入数据矩阵进行操作,从而生成经过编码的数据块。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US73408005P | 2005-11-07 | 2005-11-07 | |
US73405405P | 2005-11-07 | 2005-11-07 | |
US60/734,054 | 2005-11-07 | ||
US60/734,080 | 2005-11-07 | ||
PCT/SG2006/000337 WO2007053126A1 (en) | 2005-11-07 | 2006-11-07 | Methods and devices for decoding and encoding data |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101288232A true CN101288232A (zh) | 2008-10-15 |
CN101288232B CN101288232B (zh) | 2011-11-16 |
Family
ID=38006160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2006800342553A Active CN101288232B (zh) | 2005-11-07 | 2006-11-07 | 对数据进行编码和解码的方法以及设备 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20090086839A1 (zh) |
JP (1) | JP5374156B2 (zh) |
KR (1) | KR101298745B1 (zh) |
CN (1) | CN101288232B (zh) |
SG (1) | SG166825A1 (zh) |
WO (1) | WO2007053126A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20080070366A (ko) * | 2007-01-26 | 2008-07-30 | 엘지전자 주식회사 | 데이터 인코딩/디코딩 방법 및 장치와, 데이터 기록/재생방법 및 장치 |
FR2964277A1 (fr) * | 2010-08-27 | 2012-03-02 | France Telecom | Procede et dispositif d'emission, procede et dispositif de reception, programme d'ordinateur correspondants. |
US8595604B2 (en) * | 2011-09-28 | 2013-11-26 | Lsi Corporation | Methods and apparatus for search sphere linear block decoding |
US9391641B2 (en) | 2013-04-26 | 2016-07-12 | SK Hynix Inc. | Syndrome tables for decoding turbo-product codes |
CN107370560B (zh) * | 2016-05-12 | 2020-04-21 | 华为技术有限公司 | 一种极化码的编码和速率匹配方法、装置及设备 |
CN109478897B (zh) | 2016-07-25 | 2023-05-12 | 高通股份有限公司 | 用于构造极化码的方法和装置 |
CN107666370B (zh) | 2016-07-29 | 2023-09-22 | 华为技术有限公司 | 编码方法和设备 |
US10998922B2 (en) * | 2017-07-28 | 2021-05-04 | Mitsubishi Electric Research Laboratories, Inc. | Turbo product polar coding with hard decision cleaning |
US10374752B2 (en) | 2017-08-31 | 2019-08-06 | Inphi Corporation | Methods and systems for data transmission |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2708400A1 (fr) * | 1993-06-30 | 1995-02-03 | Philips Electronics Nv | Encodeur binaire, tolérant aux erreurs. |
JPH09238125A (ja) * | 1996-02-29 | 1997-09-09 | N T T Ido Tsushinmo Kk | 誤り制御方法および装置 |
FR2753026B1 (fr) * | 1996-08-28 | 1998-11-13 | Pyndiah Ramesh | Procede de transmission de bits d'information avec codage correcteur d'erreurs, codeur et decodeur pour la mise en oeuvre de ce procede |
KR100243218B1 (ko) * | 1997-07-10 | 2000-02-01 | 윤종용 | 데이터 복호장치와 그 방법 |
FR2778289B1 (fr) * | 1998-05-04 | 2000-06-09 | Alsthom Cge Alcatel | Decodage iteratif de codes produits |
US6347125B1 (en) * | 1999-01-11 | 2002-02-12 | Ericsson Inc. | Reduced complexity demodulator for multi-bit symbols |
US6418172B1 (en) | 1999-04-21 | 2002-07-09 | National Semiconductor Corporation | Look-ahead maximum likelihood sequence estimation decoder |
US6460160B1 (en) * | 2000-02-14 | 2002-10-01 | Motorola, Inc. | Chase iteration processing for decoding input data |
US7107505B2 (en) * | 2001-03-27 | 2006-09-12 | Comtech Aha Corporation | Concatenated turbo product codes for high performance satellite and terrestrial communications |
KR20050007428A (ko) * | 2002-05-31 | 2005-01-17 | 코닌클리케 필립스 일렉트로닉스 엔.브이. | 선형 블록 코드들의 연성 디코딩 |
US20040019842A1 (en) * | 2002-07-24 | 2004-01-29 | Cenk Argon | Efficient decoding of product codes |
US7100101B1 (en) * | 2002-11-08 | 2006-08-29 | Xilinx, Inc. | Method and apparatus for concatenated and interleaved turbo product code encoding and decoding |
US7310767B2 (en) * | 2004-07-26 | 2007-12-18 | Motorola, Inc. | Decoding block codes |
US7281190B2 (en) * | 2004-11-01 | 2007-10-09 | Seagate Technology Llc | Running digital sum coding system |
CN100348051C (zh) * | 2005-03-31 | 2007-11-07 | 华中科技大学 | 一种增强型帧内预测模式编码方法 |
-
2006
- 2006-11-07 KR KR1020087006580A patent/KR101298745B1/ko active IP Right Grant
- 2006-11-07 US US12/092,936 patent/US20090086839A1/en not_active Abandoned
- 2006-11-07 WO PCT/SG2006/000337 patent/WO2007053126A1/en active Application Filing
- 2006-11-07 CN CN2006800342553A patent/CN101288232B/zh active Active
- 2006-11-07 JP JP2008538850A patent/JP5374156B2/ja active Active
- 2006-11-07 SG SG201008111-5A patent/SG166825A1/en unknown
Also Published As
Publication number | Publication date |
---|---|
KR101298745B1 (ko) | 2013-08-21 |
JP5374156B2 (ja) | 2013-12-25 |
CN101288232B (zh) | 2011-11-16 |
SG166825A1 (en) | 2010-12-29 |
KR20080074858A (ko) | 2008-08-13 |
WO2007053126A1 (en) | 2007-05-10 |
US20090086839A1 (en) | 2009-04-02 |
JP2009515420A (ja) | 2009-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101288232B (zh) | 对数据进行编码和解码的方法以及设备 | |
CN1770639B (zh) | 级联的迭代和代数译码 | |
US7956772B2 (en) | Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes | |
JP3451221B2 (ja) | 誤り訂正符号化装置、方法及び媒体、並びに誤り訂正符号復号装置、方法及び媒体 | |
JP4185167B2 (ja) | 積符号の反復復号化 | |
CN101867379B (zh) | 一种循环冗余校验辅助的卷积码译码方法 | |
CN101946230B (zh) | 用于检测和校正所接收的符号串中的定相突发差错、删除、符号差错和位差错的方法和系统 | |
JPH08149018A (ja) | エラー訂正装置 | |
CN101257310A (zh) | 用于预确定误差型式的误差校正方法及装置 | |
CN101814922A (zh) | 基于bch码的多位错纠错方法和装置以及存储系统 | |
CN107086870A (zh) | 修复多节点失效的mds阵列码编码以及解码方法 | |
CN101779379B (zh) | 使用通用级联码(gcc)进行编码和解码 | |
CN106708654A (zh) | 一种用于NANDflash的BCH纠错码的电路结构 | |
CN101427474B (zh) | 一种疑符辅助块码解码器及其相关方法 | |
US7093189B2 (en) | Method and device for performing soft decision decoding on Reed-Muller codes using decision by majority | |
RU2379841C1 (ru) | Декодер с исправлением стираний | |
US7392454B2 (en) | Error locating methods and devices for algebraic geometric codes | |
RU2327297C2 (ru) | Способ декодирования блоковых кодов со стираниями элементов | |
CN100433836C (zh) | 使用冗余对视/音频和语音数据进行解码的方法和系统 | |
CN101803204B (zh) | 纠正位串错误的方法 | |
US6986097B1 (en) | Method and apparatus for generating parity bits in a forward error correction (FEC) system | |
CN103746711B (zh) | 基于译码端状态转移图的量子Viterbi译码算法 | |
CN100417031C (zh) | 宽带无线接入系统中里德索洛门卷积级联码的实现方法 | |
CN115037415A (zh) | 基于crc的纠错编码的方法、装置、终端 | |
US9236890B1 (en) | Decoding a super-code using joint decoding of underlying component codes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |