对数据进行编码和解码的方法以及设备的制作方法

文档序号:7540299阅读:276来源:国知局
专利名称:对数据进行编码和解码的方法以及设备的制作方法
技术领域
本发明涉;5mt数据进行解码和编码的方法,以;M目应的设备。
技术背景前向纠错(FEC)编码用于通信技术中,使得在接收端在数据传输 过程中发生的数量有限的错误能得到纠正。近来,Berrou提出了一种新 的FEC编码方案,叫做"turbo码(TC)" [1,其能够使用软输入/软 输出(SISO)迭代解码器,对由山农定理预测的加性高斯白噪声(AWGN) 信道实现接近于理论极限的性能级别。此新的编码方案包括两个并联的递 归系统巻积码,由此,通常被称为"巻积turbo码(CTC)"。随后,Pyndiah提出了 "turbo乘积码(TPC)" [2[3,以及针 对turbo乘积码的有效的解码算法。turbo乘积码显示了可与i积turbo 码匹敌的性能,并能够支持更高的编码率。由于这些优点,turbo乘积码 已经用于IEEE 802.16网络的物理层,以及用于卫星通信和数字存储系 统中。这两个最新iL^明已进行了大量的研究工作,以获得具有更高性 能级别的编码方案。还在降低这些新的编码方案的解码复杂性方面进行更 多的研究工作。例如,为了进一步降低对turbo乘积码进行解码的复杂性, 使用Chase算法[4来获得用于迭代解码的每一个比特位置的外部信 息。如本申请的相应的独立权利要求中定义的方法和设备,对获得具有 更高性能级别的编码方案的努力作出了进一步的贡献。在本发明的第一个方面,提供了对输入数据序列进行解码的方法, 包括生成多个测试序列;确定多个测试序列的顺序,以l更每一个测试序列都与其相邻测试序列相差相应的预先定义的比特数;以及利用排序的测 试序列和输入数据进行最大似然率处理,从而生成最大似然率序列。在本发明的第二个方面,提供了一种解码设备,包括生成多个测 试序列的生成器;第一单元,用于确定多个测试序列的顺序,以〗更每一个 测试序列都与其相邻测试序列相差相应的预先定义的比特数;以及第二单 元,用于利用排序的测试序列和输入数据进行最大似然率处理,从而生成 最大似然率序列。在本发明的第三个方面,提供了一种计算M序产品,当由电脑执 行所述计算机程序产品时,其使电脑执行对输入数据序列进行解码的方 法,包括生成多个测试序列确定多个测试序列的顺序,以^f更每一个测 试序列都与其相邻测试序列相差相应的预先定义的比特数;以及利用排序 的测试序列和输入数据进行最大似然率处理,从而生成最大似然率序列。下面所描述的一个实施例可以^L视为Chase算法的^"改方案。相 对于解码处理中的原始Chase算法,复杂性可以降低。^修改方案可以包 括组织测试序列,以^更每一个测试序列都与其相邻测试序列相差预定的 比特数;以及获得用于计算最大似然率序列的可靠性指标的新的公式,包 括一个系数,该系数包括最大权重和最大似然率序列的权重之间的差值。 利用经过^务改的Chase算法的解码处理的复杂性显著降低。本发明的实施例于从属权利要^4目关。在一个实施例中,可以确定生成的最大似然率序列的可靠性指标。 在另一个实施例中,获得的最大似然率序列的可靠性指标的系数包括最大 权重和最大似然率序列的权重之间的差值。在再一个实施例中,获得的最 大似然率序列的可靠性指标的系数进一步包括生成的最大似然率序列中 的最不可靠的比特位置的数量。如这里所使用的,生成的最大似然率序列的可靠性指标是指计算出 的用于度量获得的最大似然率序列的相对可靠性的值。生成的最大似然率 序列的可靠性指标例如可以是,但不仅限于,最大似然率序列的外部信息。在一个实施例中,当遇到a时,可能扰乱测试序列。在另一个实 施例中,测试序列可以通过颠倒测试序列的预定比特来扰乱。在一个实施例中,相应的预先定义的比特ltA 1。这意味着,两个 相邻测试序列只相差1比特。在本发明的第四个方面,提供了对输入数据序列进行编码的方法,包括确定至少一个编码矩阵;对确定的至少一个编码矩阵进行排序;将 输入数据序列组织到输入数据矩阵中以及4吏用组织的所述至少一个编码 矩阵对输入数据矩阵进行操作,从而生成经过编码的数据块。
在本发明的第五个方面,提供了一种编码设备,包括用于确定至 少一个编码矩阵的第一单元;用于对确定的至少一个编码矩阵进行排序的 第二单元;用于将输入数据序列组织到输入数据矩阵中的第三单元;以及
第四单元,用于使用组织的所述至少一个编码矩阵对输入数据矩阵进行操 作,从而生成经过编码的lt据块。
在本发明的第六个方面,提供了一种计算积4呈序产品,当由电脑执 行所述计算机程序产品时,其使电脑执行对输入数据序列进行编码的方 法,包括确定至少一个编码矩阵;对确定的所述至少一个编码矩阵进行 排序;将所述输入数据序列组织到输入数据矩阵中;以及使用组织的所述 至少一个编码矩阵对输入数据矩阵进行操作,从而生成经过编码的数据 块。
作为例证,通过重新组织编码矩阵以便原始编码矩阵的每一列的值 都按升序排列,从而来获得新的编码矩阵。对于用此新的编码矩阵生成的 经过编码的数据矢量,当在解码器端发生错误时,可以简单地通过颠倒由 4m伴随式表示的位置中的比特值,使用生成的4m伴随式直接纠正此错 误。然而,对于用原始编码矩阵生成的经过编码的数据矢量,仍需要对生 成的M伴随式进行进一步的处理,以便能够确定餘溪比特的位置。相应 地,对用此新的编码矩阵生成的经过编码的数据矢量进行解码的过程被简 化。
在一个实施例中,可以通过组织至少一个编码矩阵的列以4吏每一列 中的比特值所代表的整数值按升序排列,对确定的至少一个编码矩阵进行 排序,其中,顶行中的比特对应于每一列的最低有效位。
在一个实施例中,在对确定的至少一个编码矩阵之前,可以在确定 的所述至少一个编码矩阵的最右边列之后附加一列预定值,并可以在确定 的至少编码矩阵的底部的行下面附加一W55定值。在另一个实施例中,所 述预定值的列可以是全部为零的列,所述预定值的行可以是全部为1的 行。
在一个实施例中,可以删除经过编码的数据块的预定的行或经过编 码的lt据块的预定的列。在另一个实施例中,经过编码的翁:据块的连续比特的预定集合可以被删除或替换为预定的数据。在再一个实施例中,预定 的数据可以是全部为零值的集合。在再一个实施例中,预定的数据可以是
循环冗余校验(CRC)数据。
可以看出,本发明提供的对输入数据序列进行解码的方法给出了下 列优点,即,使用本发明提供的对输入数据序列进行解码的方法的解码处 理与使用原始Chase算法的解码处理相比,具有较低的复杂性。
、此外,本发明提供的对输入数据序列进 编码的,法也给出下列优
码的数据矢量或数据块,当发生4m时,可以直接从计算出的伴随式获得 餘溪的比特位置。
相应地,使用由本发明提供的对输入数据序列进行编码的方法生成 的经过编码的数据矢量或数据块的解码过程得以简化。
在提供的对输入数据序列进行解码的方法和对输入数据序列进行 编码的方法的上下文中描述的实施例,对i殳备和计算机程序产品也同样有 效。


图1显示了才艮据本发明的一个实施例的通信系统。
图2显示了根据本发明的一个实施例的在编码和解码处理过程中 的伴随式和中间步骤。
图3显示了 turbo乘积码(TPC)的示例。
图4显示了^l据本发明的实施例的turbo乘积码(TPC)的示例。
图5显示了原始Chase算法和根据本发明的实施例的经过修改 的Chase算法之间的具有n+l列和n+l行的以平方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生 成的信号相同的信号。
传输路径上的每一个组件在接ij^径上都具有对应的组件。例如, 在传输路径上有信道解码器105,其在接收路径上对应的组件是信道解码 器113。
在通信系统100中的典型的信号传输中,在信号中有可能发生错 误。在通过信道109传输信号的过程中,通常会发生错误。相应地,在 典型的通信系统100中提供了信道编码器105以及其对应的信道解码 器113,以减少,如果可能的话,消除在通过信道109进行信号传输的 过程中发生的4m。
在此 情况下,信道编码器105可以是turbo乘积码(TPC)编码 器,可以通过本发明提供的对数据进行编码的方法来实现。相应地,信道 解码器113可以是turbo乘积码(TPC)解码器,可以使用通过本发明提 供的对数据进行解码的方法来实现。
可以按如下方式描述turbo乘积码(TPC)编码器。
在随后的描述中,使用下列约定。X是指矩阵或矢量集,Xi是指 矩阵X的第i行。在这方面,4是指Xi的第j个元素。然而,如果X 只有一行,那么,Xj是指X的第j个元素。
C表示具有发生器矩阵G和奇偶校验矩阵H的汉明码编码数 据矢量(",先,),其中,码长度为"-,-_ ,信息比特的数量为& = 以及最小汉明码距为<5 = 3,其中,m是整数值。此外,码长度n以及信 息比特的数量k也都是整数值,m是可设置的值,M是m>3。G可以以系统的形式表示为具有先xo-"奇偶校验子矩阵p的 g-(AI尸)。相应地,对应的奇偶校验矩阵H可以通过"=("^)来表示。公 式(1)、 (2),以及(3)中分别显示了 m = 3时的每一个矩阵G、 W和P 的示例。可以看出,当m = 3, n = 7并且k = 4时,
<formula>formula see original document page 10</formula> (1)<formula>formula see original document page 10</formula> (2)<formula>formula see original document page 10</formula>(3)
使用发生器矩阵G,汉明码的编码过程通常表示为 c(W,c )-(c,"',Ca)C 。还可以使用奇偶校验矩阵H对信息比特进行编码。
在k>(n-k)的情况下,使用奇偶校验矩阵H的编码过程要求较少的计算 量。在这些情况下,基于ciT = o,实现使用奇偶校验矩阵H的编码过程, 以便获得n-k个奇偶校验位c糾广',c",如下<formula>formula see original document page 10</formula> (4)
汉明码具有特殊特性,以便它们的奇偶校验矩阵H对于其所有列 具有不同的值。例如,在公式(3)中,奇偶校验矩阵H对于其所有列具 有值(3,5,6,7,1,2,4),其中,顶行上的比特是最低有效位(LSB)值。
如果发生单个4m,例如,在位置j,那么,接收到的矢量r的 伴随式s表示H的发生了错误的位置处的列。令e表示错误矢量。假 设除了第j个分量以外,其所有分量都等于零,即,ej=l,那么,接收 到的矢量的伴随式s由下列z〉式给出
<formula>formula see original document page 10</formula> (5)其中,hj表示H的第j列。例如,图2的左侧部分显示了使用 公式(3)给出的奇偶校验矩阵H生成的汉明码编码数据矢量中的单个 比特错误的可能的伴随式的列表。
根据公式(5),如果H的列被表达为错误位置的二进制表示,那 么,伴随式s的值可以直接用于确定错误的比特位置。为了实现这一点, 可以重新组织奇偶校验矩阵H的列,以便列的值按升序排列。
例如,在公式(3)中,如前面所述,奇偶校验矩阵H对于其所有 列具有值(3, 5, 6, 7,1, 2, 4),其中,顶行中的比特是最低有效位(LSB)。通 过将其所有列的值重新组织为(l, 2, 3, 4, 5, 6, 7),获得下列结果矩阵,Hr: <formula>formula see original document page 11</formula>(6)
或者,从奇偶校验矩阵H生成矩阵Hr可以表达为 <formula>formula see original document page 11</formula>
使用矩阵Hr生成的汉明码编码数据矢量是具有奇偶校验矩阵H
的原始汉明码编码数据矢量的重新组织的版本。一般而言,对于(n,k)汉 明码,n-21^1和k = 2m-l-m,奇偶校验位位于Hr的编号为1,2,4... 2m-l的列中.从编号为3的列开始,组织其余的编码的比特,与使用 奇偶校验矩阵H时的顺序相同。随后将利用图2的例图对此进行进一 步的描述。
在解码器端,对于^f吏用奇偶校验矩阵H生成的汉明码编码数据矢 量,首先使用公式(5)从接收到的矢量计算伴随式s。然后,使用计算出 的伴随式从查询表获取对应的4m模式。然后,通过对接收到的矢量和错 误模式进行异或(XOR)运算,获取纠正的接收到的矢量。随后,在删除 奇偶校验位之后,可以从纠正的接收到的矢量恢复信息比特。
然而,对于使用矩阵Hr生成的汉明码编码数据矢量,易于实现硬判决解码,因为通过公式(5)计算出的伴随式s直接给出4m的比特位 置。然后,颠倒接收到的矢量中的错误比特,以便获取已纠正的接收到的 矢量。因此,不需要参考查询表以获取与计算出的伴随式对应的4^模式 的步骤。相应地,使用矩阵Hr生成的汉明码的此特性可以用于降低turbo 乘积码(TPC)解码处理的复杂性,关于这一点,后面将进行描述。
作为进一步的示例,显示了使用奇偶校验矩阵H和矩阵Hr生成 的编码数据矢量的编码和解码处理,如图2所示。在此例图中,信息比 特被取为(clv."ck) = (1,0,1,0)201。
对于奇偶校验矩阵H,使用公式(4)获取奇偶校验位,生成的汉 明码编码数据矢量由",…,cn) = (1, 0, 1, 0, 1, 0, 1) 2G3給出。假设在传输过
程中,在比特位置2发生错误。因此,接收到的矢量r由
按如下方式计算接收到的矢量的伴随式s
s - f = (i, l, l, o, i, 0, = (1, 0, l)r (8)
使用从查询表获取的伴随式s, (1,0,1)207,对应于(1,0,1)207的 伴随式值的行209表明,对应的4^^式是(0,1,0,0,0,0,0)211。通it^" 接收到的矢量和错误模式的异或(XOR)运算获取的纠正的接收到的矢 量是(l,O,l,O,l,O,l),与编码数据矢量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开始)之后,获得的编码矢量或汉明码是 (l,O,l,l,O,l,O) 215。
假设在比特位置2发生了错误,因此,接收到的矢量r是 (l,l,l,l,O,l, 0) 217。为该接收到的矢量获得的伴随式s是
s = ri^ = (1, 1,1, 1, 0, 1, 0X - (0,1, 0)r (= 2) (9)
由于此伴随式(0,1, 0)219直接给出了错误比特的比特位置,通过 颠倒比特位置2处的比特,获得的纠正的接收到的字是(l,O,l,l,O,l,O) 221。可以看出,纠正的接收到的字与编码数据矢量相同。相应地,从此说明可以看出,使用矩阵Hr生成的汉明码编码数据矢量的解码处理得到 筒化,因为直接计算出的伴随式给出了a比特的比特位置。
如上所述,通过重新组织奇偶校验矩阵H的列,以《更列的值按升
序排列,从奇偶校验矩阵H生成矩阵Hr。也可以以与矩阵Hr类似的 方式生成替选矩阵W,,使用矩阵H,生成的汉明码还与使用矩阵Hr
生成的汉明码拥有相同的唯一特性。为了与使用矩阵Hr生成的汉明码区
别,此后,使用矩阵沐£生成的汉明码简称为"扩展汉明码"。
可以按如下方式生成矩阵w,。首先,将全部为零的列附加到奇偶
校验矩阵H的最右边列。其次,将全部为零的列附加到奇偶校验矩阵H 的最右边列。中间结式矩阵HE显示为如下
Q 1 0 1 1 0 0、 10 110 10 0 1110 0 1,
丑*
fl 1 0 1 1 0 0 0、
10 110 10 0
0 1110 0 10
lj i i i i i i
此后,通过重新组织奇偶校验矩阵HE的列,以便列的值按升序
排列,从奇偶校验矩阵HE生成矩阵W,,如下面所示
丑£
110 11 0 0 0、
10 110 10 0
0 1110 0 10
、1 1 1 1 1 1 1
「0 1 0 0 0 1 0 f|
0 0 1 1 0 0 1
0 0 0 1 1 1 1
、1 1 1 1 1 1 1 ]J
接下来,描述才艮据本发明的实施例生成turbo乘积码(TPC)的过 程。例如,可以基于两个汉明码c乂",A,w和c^,&,w (它们是通过使用前 面描述的矩阵Hr生成的),按如下方式生成turbo乘积码(TPC):
1) 在k2行和Id列的阵列中组织(k2k0信息比特,
2) 使用代码C1对k2行进行编码,
3) 使用代码C2,对&列进行编码,以及
4) 对于对应的行和列,相应地计算奇偶校验位,然后插入奇偶校验位。
才艮据前面所描述的过程生成的turbo乘积码(TPC)的码字长、信 息比特的数量和最小汉明码距分别是ih x n2, & x k2, & x 32。这意味着, 可以从具有小的最小汉明码距的两个短块码获得具有大的最小汉明码距 的长块码。图3显示了使用奇偶校验矩阵H生成的turbo乘积码(TPC)编 码数据块300,图4显示了根据本发明的实施例的使用奇偶校验矩阵Hr 生成的turbo乘积码(TPC)编码lt据块400。
在图3中,行i (其中,i^k2)上的比特(1,…,k0是信息比特 301。在该同一行i上,比特(&+1,...,是行i的奇偶校验位303, 而比特ih可以是整行i的单一奇偶校验位305。
类似地,列j (其中,jSkJ上的比特(l"",k2)是信息比特301。 在该同一列j上,比特(k2+l,..., 112-1)是列j的奇偶校验位307,而比特 n2可以是列j的单一奇偶校验位305。
最后,行i (其中,k2 S i £ n2-l)上的比特(k一l,…,n广l)是奇 偶校验位上的奇偶校验位309。这是因为行i (其中,k2SiSn2-l)上的 比特(1,…,kj都是奇偶校验位(列上的)307。相应地,当对一行奇 偶校验位执行编码过程时,作为编码过程的结果获得的奇偶校验位是奇偶 校验位上的奇偶校验位。
另一方面,在图4中,可以看出,奇偶校验位位于编号为1,2,4... 2m-l的行以及列中。此外,行和列两者都被编号为l,2,4...2ra-l中的某 一个的位置处的位是奇偶校验位上的奇偶校验位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 =(ri, r2,... rn+1),
a) 生成可靠性序列,H4I4…,U)'
b) 生成二进制序列"(乃,"2"."n》,其中,如果ri>0, yi=1,
如果r^O , y产0
c) 使用rabs,确定序列(乂,&,"',^)的p最不可靠的比特位置。2) a)初始化测试模式、模拟权重、伴随式以及扩展的比特, 它们被定义为如下
t1,Qo)一
wft-O,
其中,P^D^]是t'-t'"中的非零比特的指数
b)对测试模式进行重新排序,以便测试模式与其相邻测试模 式只相差1比特。
3) 在2P循环内执行,
a)按如下方式确定扩展比特扰乱测试模式(如果发生错误), 并计算模拟权重
如果s#0,那么
<formula>formula see original document page 16</formula>
其中,tV+l)是tj的第n+l个元素,sv是伴随式s的整数值,
并且<formula>formula see original document page 17</formula>
b)按如下方式生成下一个测试序列,计算伴随式,计算扩展 比特,并计算模拟权重
ti+1 = tj (比特Pi被颠倒),
<formula>formula see original document page 17</formula>
4) 从有效码字集d = y ",估计最大似然率码字,其中,
5) 对于接收到的信号,计算外部信息
a) 对于p最不可靠的比特位置和纠正了餘溪的位置<formula>formula see original document page 17</formula>
其中,Wd和We分别是最大似然率解码序列d和竟争解码序列CeX的 模拟权重。
b) 对于所有其他位置
<formula>formula see original document page 17</formula>)
其中,W咖x为最大模拟权重。
对于步骤5(a),类似于原始Chase算法,如果最大似然率解码序
列d的比特具有一个以上的竟争解码序列,We是竟争解码序列之中的模
拟权重中的最低值。这里,从所有测试序列中搜索竟争解码序列,而不是 如在原始Chase算法中那样,只从候选解码顺序集中搜索。通过这样做, 可以降低解码序列搜索过程的复杂性。
对于具有最小模拟权重的测试序列的p个最不可靠的比特位置和 纠正了错误的位置,解码计算复杂性与原始Chase算法相同,对于每一 个比特位置,要求2P次比较器运算。然而,对于其余的纠正了错误的位 置,计算复杂性大大地降低,因为竟争解码序列的权重与在对应的位置中 发生错误纠正运算的测试序列的权重相同,所以不需要更多的计算。对于步骤Step 5(b),用于原始Chase算法中的M P需JI^范 化外部信息,这又需要大量的计算。由于公式(13)没有如在原始Chase 算法中所使用的参数p,因此,没有必J^L行外部信息的规范化。相应地, 解码复杂性显著降低。图5显示了原始Chase算法和根据本发明的实施例的经过修改 的Chase算法之间的、具有n+1列和n+1行的以平方turbo乘积码 (TPC)方式编码的数据块的解码复杂性的比较。该比较只考虑了以平方 turbo乘积码(TPC)方式编码的数据块的一个分量码字(一列或一行) 的计算复杂性。根据以平方turbo乘积码(TPC)方式编码的数据块的编码过程, 水平和垂直方向中块组件码是等同的。相应地,在两个方向(沿着行方向 和沿着列方向)中一次迭代的解码复杂性可以只是一个分量矢量的解码复 杂性乘以2(n+l)。图5的表中分别显示了原始Chase算法和根据本发明的一个实 施例的经过修改的Chase算法的运算的数量的比较。下列符号用于如图 5所示的表中a) 实数加法的数量由Na表示b) 实数乘法的数量由Nm表示c) 比较运算的数量由Ne。mp表示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算法相比,对于所有运算类型,包括实lb^法、实数乘法、比较运 算或GF(2)加法,根据本发明的实施例的经过修改的Chase算法使用 的运算较少。因此,使用根据本发明的实施例的经过修改的Chase算法, 解码复杂性显著降低。图7显示了才艮据本发明的实施例的解码器的性能结果。如图7所 示的结果,当与原始Chase算法的已发布的性能结^目比时,表明在原 始Chase算法和根据本发明的一个实施例的经过修改的Chase算法之 间的性能差别可以忽略。这意味着,使用根据本发明的一个实施例的经过 修改的Chase算法,降低了解码复杂性,而性能不会有任何降低。在本文中引用了下列文献Berrou, C., et al" "Near optimum error correcting coding and decoding: Turbo codes" IEEE Trans. Commun., vol. 44, no. 10, pp. 1261-1271, Oct. 1996.Pyndiah, R., "Near-optimum decoding of product codes: block turbo 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.
权利要求
1.一种用于对输入数据序列进行解码的方法,包括生成多个测试序列;确定所述多个测试序列的顺序,以便每一个测试序列都与其相邻测试序列相差相应的预先定义的比特数;以及利用排序的测试序列和输入数据序列进行最大似然率处理,从而生成最大似然率序列。
2. 根据权利要求1所述的方法,进一步包括确定生成的最大似然率 序列的可靠性指标。
3. 根据权利要求2所述的方法,其中,生成的最大似然率序列的可 靠性指标的系数包括所述最大权重和生成的最大似然率序列的权重之间 的差。
4. 根据权利要求3所述的方法,其中,获得的最大似然率序列的可 靠性指标的系数进一步包括生成的最大似然率序列中的最不可靠的比特 位置的数量。
5. 根据权利要求1所述的方法,进一步包括当遇到4m时扰乱测试 序列。
6. 根据权利要求5所述的方法,其中,所述的扰乱测试序列包括颠 倒测试序列的预定的比特。
7. 根据权利要求1所述的方法,其中,所^目应的预先定义的比特 数是1比特。
8. —种解码设备,包括 生成多个测试序列的生成器;第一单元,用于确定多个测试序列的顺序,以便每一个测试序列都与 其相邻测试序列相差相应的预先定义的比特数;以及第二单元,用于利用排序的测试序列和输入数据序列进行最大似然率 处理,从而生成最大似然率序列。
9. 根据权利要求8所述的设备,进一步包括第三单元,用于确定生 成的最大似然率序列的可靠性指标。
10. —种计算机程序产品,当由电脑执行所述计算;l^序产品时,其 使电脑执行对输入数据序列进行解码的方法,包括生成多个测试序列;确定多个测试序列的顺序,以<更每一个测试序列都与其相邻测试序列 相差相应的预先定义的比特数;以及利用排序的测试序列和输入数据序列进行最大似然率处理,从而生成 最大似然率序列。
11. 根据权利要求10所述的计算积4呈序产品,当由电脑执行时,其 使电脑执行对输入数据序列进行解码的方法,进一步包括确定生成的最大 似然率序列的可靠性指标。
12. —种用于对输入数据序列进行编码的方法,包括 确定至少一个编码矩阵;对确定的至少 一个编码矩阵进行排序;将输入数据序列组织到输入数据矩阵中;以及使用所组织的至少一个编码矩阵对输入数据矩阵进行操作,从而生成 经过编码的数据块。
13. 根据权利要求12所述的方法,其中,所述的对确定的至少一个 编码矩阵进行排序包括组织所述至少一个编码矩阵的列,以便由每一列中 的比特值所代表的整数值按升序排列,其中,顶行中的比特对应于每一列 的最低有效位。
14. 根据权利要求12所述的方法,进一步包括 在对所确定的至少一个编码矩阵进行排序之前 将一列预定值附加到所确定的至少一个编码矩阵的最右边列之后;以及将一,定值附加到所确定的至少编码矩阵的底部的行之下。
15. 根据权利要求12所述的方法,其中,所述预定值的列是全部为 零的列。
16. 根据权利要求12所述的方法,其中,所述预定值的行是4^P为 1的行。
17. 根据权利要求12所述的方法,进一步包括 删除经过编码的数据块的预定的行。
18. 根据权利要求17所述的方法,进一步包括 删除经过编码的数据块的预定的列。
19. 根据权利要求18所述的方法,进一步包括 删除经过编码的数据块的连续比特的预定集合。
20. 根据权利要求18所述的方法,进一步包括 用预定的数据替换经过编码的数据块的连续比特的预定的集合。
21. 根据权利要求20所述的方法,其中,预定数据是全部为零值的 集合'
22. 根据权利要求20所述的方法,其中,预定数据是循环冗余校验 (CRC)数据。
23. —种编码设备,包括用于确定至少 一个编码矩阵的第 一单元;用于对确定的至少 一个编码矩阵进行排序的第二单元;用于将输入数据序列组织到输入数据矩阵中的第三单元;以及第四单元,用于使用组织的至少一个编码矩阵对输入数据矩阵进行操 作,从而生成经过编码的数据块。
24. —种计算积^呈序产品,当由电脑执行所述计算;^序产品时, 其使电脑执行对输入数据序列进行编码的方法,包括确定至少一个编码矩阵;对确定的至少 一个编码矩阵进行排序;将输入数据序列组织到输入数据矩阵中;以及使用组织的至少 一个编码矩阵对输入数据矩阵进行^Mt,从而生成经 过编码的数据块。
全文摘要
提供了一种用于对输入数据序列进行解码的方法。所述方法包括生成多个测试序列;确定所述多个测试序列的顺序,以便每一个测试序列都与其相邻测试序列相差相应的预先定义的比特数;以及利用排序的测试序列和输入数据进行最大似然率处理,从而生成最大似然率序列。
文档编号H03M13/05GK101288232SQ200680034255
公开日2008年10月15日 申请日期2006年11月7日 优先权日2005年11月7日
发明者梁应敞, 梁永城, 许昌龙 申请人:新加坡科技研究局
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1