一种网格编码调制码的译码方法及装置的制作方法

文档序号:7513534阅读:236来源:国知局
专利名称:一种网格编码调制码的译码方法及装置的制作方法
技术领域
本发明涉及通信技术,尤其是指 一种网格编码调制码的译码方法及装置。
技术背景网格编码调制(TCM, Trellis Coded Modulation)技术是一种信号集空间编 码技术,该技术能够在不降低频带利用率和功率利用率的基础上,将编码与调 制相结合,利用信号集的冗余度来获取纠错能力。在TCM技术中, 一般将两 个编码信号点间距离的平方称为平方欧氏距离,简称欧氏距离;使用上述TCM 技术进行编码后的信号序列称之为TCM码。发送端可使用上述TCM技术将所 需发送的信号序列编码成TCM码,然后发送给接收端;接收端在接收到被编 码后的TCM码后,需要对所接收到的TCM码进行解码,从而得到发送端所需 发送的信号序列,这个过程称之为TCM码的译码过程。在现有技术中, 一般使用软判决维特比(Viterbi)译码方法来对TCM码进 行译码,所述的Viterbi译码过程主要包括如下步骤1、根据子集译码结果计算分支度量。在现有技术中,TCM技术中所使用的巻积码为(k+l,k,m)码,即每输入 k个比特经编码后将产生(k+l)个编码后比特,移位寄存器的个数为m。因此, TCM码所对应的网格图中一共有2m种状态,网格图中的每个节点分别处于上 述2m种状态中的一种状态,且每个节点都有2k条分支进入,也有2k条分支引 出。而根据TCM技术中的集分割原理,TCM码的调制信号集可被分割成2k+1 个较小的子集,每个子集都对应着一组数目为(k+l)个的编码后比特;然后可 根据上述分割后所得的子集对所接收到的接收信号进行子集内的译码操作,上 述的过程称之为子集i奪码,而子集^奪码的结果则为针对于某一组(k+l )个的编码后比特的最小的平方欧氏距离,以及与其对应的未编码比特组。图1所示为现有技术中子集译码的示意图。如图l所示,以使用八进制相移键控(8PSK)技术进行调制,且使用的巻积码为(2,1,2 )码为例,此时k=l 且m=2 ,因此采用8PSK技术调制后的TCM码的调制信号集C在星座图中有8 个星座点,每个星座点表示一个三比特的信号矢量在星座图中的端点,其中, 三个比特中的左起第 一个比特称之为未编码比特,而后两位则称之为编码后比 特。根据TCM技术中的集分割原理,调制信号集C可被分割成4个较小的子 集Q)、 C2、 C,和C3,每个子集中有两个信号点。当接收端^l矣收到一个信号时, 可将上述接收信号用接收信号点"x"表示在上述星座图中,然后对上述接收 信号进行子集译码,即在各子集中找出与该接收信号点的平方欧氏距离最小(即 似然度最大)的星座点。子集译码后的结果如图l所示,每个子集中的网格点 即为进行子集译码后得到的子集译码星座点,每个子集译码星座点所对应的2 个编码后比特的值分别为11、 01、 00和10;与编码后比特相对应的未编码比 特的值分别为0或1,用于指定各子集中的某一个星座点。图2所示为现有技术中使用(2, 1, 2 )巻积码的TCM码的网格图示意图。 如图2所示,当TCM码所使用的巻积码为(2, 1, 2 )码时,TCM码所对应的网 格图中一共有4种状态00、 01、 lO和ll,网格图中的每个节点分别处于上述 4种状态中的一种状态,且每个节点都有2条分支进入,也有2条分支引出。 因此,可根据进入节点的分支上的输出码字以及上述子集译码结果来计算该分 支的分支度量。例如,当分支上的输出为00时,则该分支所对应的分支度量等 于上述接收信号点与图1所示的子集d中的子集译码星座点(即网格点)的平 方欧氏距离。2、计算网格图中各节点的状态度量。当使用(k+l,k,m)巻积码时,网格图中的各个节点都有2k条分支引入, 每条分支都对应网格图中的一个前级节点;可设当前节点的前级节点的状态度 量为StateMetrict-,(pi),其中ie
, t-l表示第t-l级中的节点,当前节点 属于第t级中的节点,设当前节点的状态度量为StateMetrict(p),其中,p二O, 1,2m-l,则当前节点的状态度量的计算公式为<formula>formula see original document page 10</formula> (1 )其中,min表示取最小值的操作,min_表示令i在0,1,…,21-1中遍历后,'=0,],...,2A-1取所有值中的最小的操作,pi表示当前节点的2k个前级节点,BranchMetrict (Pi, p)表示从前级节点pi到当前节点p的分支的分支度量。对于节点p来说,当取得上述最小值后,将所取的最小值所对应的那条分 支作为留选分支,并存储该分支所对应的输出码字以及前级节点的状态值。使用上述的方法对网格图中各节点计算状态度量,找到各节点的留选分支。3、回溯与译码输出。完成上述节点的状态度量的计算后,从预先设定的终结状态点出发,沿着 各级节点所选择的留选路径进行回溯,直到回到网格图中第一级中的某个节点, 从而得到与回溯时所经过的留选路径相对应的编码比特与未编码比特序列,输 出译码比特序列。在上述的译码方法中,由于对于每个节点计算状态度量时,都需要进行2k 次加法运算与2k-l次比较运算。当节点的数目比较多,k比较大时,所需进行 的运算量将很大,需要占用大量的计算资源,而且也增加了硬件实现的复杂度。发明内容有鉴于此,本发明实施例的主要目的在于提供一种网格编码调制码的译码 方法及装置,从而大大减少译码过程中的运算量,节约计算资源。 为达到上述目的,本发明实施例中的技术方案是这样实现的 一种网格编码调制码的:^码方法,该译码方法包括对经过子集译码后的每一个编码后比特,获取该编码后比特的值为0时所 对应的子集译码结果中的最小平方欧氏距离,获取该编码后比特的值为1时所 对应的子集译码结果中的最小平方欧氏距离;将所获取的所有最小平方欧氏距 离组成两个序列;对所述两个序列进行恢复删余操作,获得两个恢复删余操作后的序列; 将所述两个恢复删余操作后的序列分成至少 一个序列组,并根据每个序列组分别计算分支度量;根据所述分支度量计算当前节点所对应的各序列组中各个节点的状态度 量,进行回溯处理,获得当前节点的留选分支组;根据所述当前节点的留选分支组进行译码操作。本发明实施例中还提供了 一种网格编码调制码的译码方法,该译码方法包括对经过子集译码后的每一个编码后比特,获取该编码后比特的值为0时所 对应的子集译码结果中的最小平方欧氏距离,获取该编码后比特的值为1时所 对应的子集译码结果中的最小平方欧氏距离;根据所获取的所有最小平方欧氏 距离得到一个似然比序列;对所述似然比序列进行恢复删余操作,得到恢复删余4喿作后的似然比序列;将所述恢复删余操作后的似然比序列分成至少一个序列组,并根据每个序 列组分别计算分支度量;根据所述分支度量计算当前节点所对应的各序列组中各个节点的状态度 量,进行回溯处理,获得当前节点的留选分支。本发明实施例中还提供了 一种网格编码调制码的译码装置,该译码装置包 括序列形成模块、恢复删余模块、分组计算模块和留选分支模块;所述序列形成4莫块,用于对经过子集i奪码后的每一个编码后比特,获取该 编码后比特的值为0时所对应的子集译码结果中的最小平方欧氏距离,获取该 编码后比特的值为1时所对应的子集译码结果中的最小平方欧氏距离;将所获 取的所有最小平方欧氏距离组成两个序列;将获得的两个序列发送给恢复删余 模块;所述恢复删余模块,用于对所述两个序列进行恢复删余操:作,将获得的两 个恢复删余操作后的序列发送给分组计算模块;所述分组计算才莫块,用于将所述两个恢复删余操作后的序列分成至少一个序列组,并根据每个序列组分别计算分支度量;将所述分支度量发送给留选分支模块;所述留选分支模块,用于根据所接收到的分支度量计算当前节点所对应的 各序列组中各个节点的状态度量,进行回溯处理,输出所获得的当前节点的留 选分支组。本发明实施例中还提供了一种网格编码调制码的译码装置,该译码装置包 括序列形成模块、恢复删余模块、分组计算模块和留选分支模块;所述序列形成模块,用于对经过子集译码后的每一个编码后比特,获取该 编码后比特的值为0时所对应的子集译码结果中的最小平方欧氏距离,获取该 编码后比特的值为1时所对应的子集译码结果中的最小平方欧氏距离;根据所 获取的所有最小平方欧氏距离得到 一个似然比序列;将获得的似然比序列发送 给恢复删余模块;所述恢复删余模块,用于对所述似然比序列进行恢复删余操作,将获得的 恢复删余操作后的序列发送给分组计算模块;所述分组计算^^块,用于将所述恢复删余操作后的序列分成至少一个序列 组,并根据每个序列组分别计算分支度量;将所述分支度量发送给留选分支模 块;所述留选分支模块,用于根据所接收到的分支度量计算当前节点所对应的 各序列组中各个节点的状态度量,进行回溯处理,输出所获得的当前节点的留 选分支组。本发明实施例中还提供了一种移动终端,该移动终端包括序列形成模块、 恢复删余模块、分组计算模块和留选分支模块;所述序列形成模块,用于对经过子集译码后的每一个编码后比特,获取该 编码后比特的值为0时所对应的子集i,码结果中的最小平方欧氏距离,获取该 编码后比特的值为1时所对应的子集译码结果中的最小平方欧氏距离;将所获 取的所有最小平方欧氏距离组成两个序列;将获得的两个序列发送给恢复删余 模块;所述恢复删余模块,用于对所述两个序列进行恢复删余操作,将获得的两个恢复删余操作后的序列发送给分组计算模块;所述分组计算模块,用于将所述两个恢复删余搡作后的序列分成至少一个序列组,并根据每个序列组分别计算分支度量;将所述分支度量发送给留选分 支模块;所述留选分支模块,用于根据所接收到的分支度量计算当前节点所对应的 各序列组中各个节点的状态度量,进行回溯处理,输出所获得的当前节点的留 选分支组。本发明实施例中还提供了一种移动终端,该移动终端包括序列形成模块、 恢复删余模块、分组计算模块和留选分支模块;所述序列形成模块,用于对经过子集译码后的每一个编码后比特,获取该 编码后比特的值为0时所对应的子集译码结果中的最小平方欧氏距离,获取该 编码后比特的值为1时所对应的子集译码结果中的最小平方欧氏距离;才艮据所 获取的所有最小平方欧氏距离得到一个似然比序列;将获得的似然比序列发送 给恢复删余模块;所述恢复删余模块,用于对所述似然比序列进行恢复删余操作,将获得的 恢复删余操作后的序列发送给分组计算模块;所述分组计算模块,用于将所述恢复删余操作后的序列分成至少一个序列 组,并根据每个序列组分别计算分支度量;将所述分支度量发送给留选分支模 块;所述留选分支模块,用于根据所接收到的分支度量计算当前节点所对应的 各序列组中各个节点的状态度量,进行回溯处理,输出所获得的当前节点的留 选分支组。本发明实施例中还提供了一种基站,该基站包括序列形成模块、恢复删 余模块、分组计算模块和留选分支模块;所述序列形成模块,用于对经过子集译码后的每一个编码后比特,获取该 编码后比特的值为0时所对应的子集译码结果中的最小平方欧氏距离,获取该编码后比特的值为1时所对应的子集i奪码结果中的最小平方欧氏距离;将所获 取的所有最小平方欧氏距离组成两个序列;将获得的两个序列发送给恢复删余 模块;所述恢复删余模块,用于对所述两个序列进行恢复删余操作,将获得的两 个恢复删余操作后的序列发送给分组计算模块;所述分组计算模块,用于将所述两个恢复删余操作后的序列分成至少一个 序列组,并根据每个序列组分别计算分支度量;将所述分支度量发送给留选分 支模块;所述留选分支模块,用于根据所接收到的分支度量计算当前节点所对应的 各序列组中各个节点的状态度量,进行回溯处理,输出所获得的当前节点的留 选分支组。本发明实施例中还提供了一种基站,该基站包括序列形成模块、恢复删 余模块、分组计算模块和留选分支模块;所述序列形成模块,用于对经过子集译码后的每一个编码后比特,获取该 编码后比特的值为0时所对应的子集译码结果中的最小平方欧氏距离,获取该 编码后比特的值为1时所对应的子集i^奪码结果中的最小平方欧氏距离;才艮据所 获取的所有最小平方欧氏距离得到一个似然比序列;将获得的似然比序列发送 给恢复删余模块;所述恢复删余模块,用于对所述似然比序列进行恢复删余操作,将获得的 恢复删余操作后的序列发送给分组计算模块;所述分组计算模块,用于将所述恢复删余操作后的序列分成至少一个序列 组,并根据每个序列组分别计算分支度量;将所述分支度量发送给留选分支模 块;所述留选分支模块,用于根据所接收到的分支度量计算当前节点所对应的 各序列组中各个节点的状态度量,进行回溯处理,输出所获得的当前节点的留 选分支组。综上可知,本发明的实施例中提供了一种TCM码的译码方法及装置。由于在本发明实施例中的译码方法及装置中,根据子集译码后的每一个编码后比 特的值所对应的最小平方欧氏距离,组成两个序列,进行恢复删余操作后分成 多个序列组,然后根据序列组求出分支度量和状态度量,从而得到了当前节点 所选择的留选分支。因此,在每一个译码时刻,对于每一个节点,只需进行2 次加法运算和1次比较运算,从而可大大减少译码过程中的运算量,节约了计 算资源,同时也大大降低了硬件实现的复杂度,节约了实现成本。


图1所示为现有技术中子集译码的示意图。图2所示为现有技术中使用(2, 1, 2)巻积码的TCM码的网格图示意图。图3为本发明实施例一中TCM码的译码方法的流程图。 图4为本发明实施例中(2, 1,2)巻积码的网格图示意图。 图5为本发明实施例中使用(2, 1, 2)码计算节点的状态度量时的网格图 示意图。图6为本发明实施例二中TCM码的译码方法的流程图。图7为本发明实施例中TCM码的译码装置的示意图。图8为本发明实施例中另一种TCM码的译码装置的示意图。
具体实施方式
为使本发明的目的、技术方案和优点表达得更加清楚明白,下面结合附 图及具体实施例对本发明再作进 一 步详细的说明。实施例一图3为本发明实施例一中TCM码的译码方法的流程图。如图3所示, 本发明实施例一中TCM码的译码方法包括如下所述的步骤 步骤301,接收端对所接收的信号进行子集译码。在本步骤中,接收端对所接收到的信号进行子集译码,从而得到该信号的子集译码结果。例如,当接收端所接收到的信号使用的巻积码为(k+l,k, m)码时(其中,k为自然数),接收端对接收到的信号进行子集译码,可 得到该接收到的信号在星座图中所对应的接收信号点在每个子集中与该接 收信号点的平方欧氏距离最小的子集译码星座点,从而得到子集译码结果。接收端存储上述各子集中的子集译码星座点所对应的未编码比特、(k+l )个编码后比特以及该接收信号点与各子集译码星座点的平方欧氏距离。由于一共有2k+1个子集,因此与子集译码结果相对应的(k+l)个编码后比特 IoI,...Ik,共有2k"种取值。步骤302,根据子集译码结果中各编码后比特的值,得到与各编码后比 特的值相对应的最小的平方欧氏距离,将得到的所有最小的平方欧氏距离分 成两个序列。例如,在本步骤中,当接收到的信号使用的巻积码为(k+l,k,m)码时 (其中,k为自然数),对接收到的信号进行子集译码后可得到该信号的子 集译码结果,而与子集译码结果相对应的(k+l)个编码后比特I。I卜.Ik,共 有2k"种取值。对于其中的任意一个编码后比特Ii (i=0, 1, ...,k),当该编 码后比特的值为0时,存在与该编码后比特的值相对应的2k个子集译码结 果以及2k个子集译码星座点与上述接收信号点的平方欧氏距离,因此可从 上述2k个平方欧氏距离找出最小的平方欧氏距离,记为《° (i=0, 1, ...,k); 当该编码后比特的值为1时,存在与该编码后比特的值相对应的2k个子集 译码结果以及2k个子集译码星座点与上述接收信号点的平方欧氏距离,因 此可从上述2k个平方欧氏距离找出最小的平方欧氏距离,记为<0=0, 1, k)。对所有的编码后比特均做上述操作,再将得到的所有的最小平方欧氏 距离按上标分成两个序列,即将所有与各编码后比特的值为0时相对应的最 小平方欧氏距离按照比特的排列顺序组成一个序列《《...《;将所有与各编 码后比特的值为1时相对应的最小平方欧氏距离按照比特的排列顺序组成 另一个序列j;。例如,对于使用8PSK技术调制的接收信号,且使用的巻积码为(2, 1,2) 码时,此时k=l、 m=2,则可将该接收信号所对应的8PSK星座图分割成如 图l所示的4个子集CQ、 d、 C2和C3;进行子集译码后,各子集译码结果分别对应于上述的4个子集Co、 d、 C2和C3中的子集"^码星座点(即图1所示的4个子集中用网格标识的网格点),而各子集译码星座点则分别对 应1个未编码比特和2个编码后比特I。Ii。例如,子集C2中的子集i,码结果 对应于子集译码星座点"001",所以该子集译码结果所对应的2个编码后 比特I山为01,所对应的1个未编码比特为0;其他子集^^码结果所对应的 编码后比特和未编码比特可依此类推。因此,对于Io来i兌,可取上述编码后 比特取值为01和00时所对应的子集译码结果中最小的平方欧氏距离,记为 《,可取上述编码后比特取值为11和10时所对应的子集译码结果中最小的 平方欧氏距离,记为^;同理,对于Ii来说,也可得到^和《;将上标相同 的最小的平方欧氏距离组成一个序列,从而可得到两个序列《《和cZ^。 步骤303,对上述两个序列进行恢复删余操作。在本步骤中,对上述两个序列分別进行恢复删余操作,在删余位置上填 充一个常数(该常数通常为0),从而得到两个长度为nk的序列《。d(V..《、 和^V;'…《L,其中,n为预先设定的自然数。上述的恢复删余操作为现有 技术中常用的恢复删余操作,因此在此不再赘述。例如,在步骤302中所举的例子中,k- 1,因此所得到的两个序列为《《。 和^W;如果设11=2,则根据步骤303可得恢复删余操作后的两个长度为2 的序列<°《°和《《。又例如,如果k:2,则根据步骤302可得两个序列为《 和 《, 当n=2时,则根据步骤303可得恢复删余操作后的两个长度为4的序列 《 <和< 《。再例如,如果k = 3,则根据步骤302可得两个序列为《 《和, 当n=2时,则根据步骤303可得恢复删余操作后的两个长度为6的序列《0《0《0(i3'0 和《《'《'《《W 。当k、 n取其他值时,可按照上述的方法以此类推得到两个长度为nk的 序列。步骤304,将两个恢复删余操作后的序列分成k个序列组,并根据每个 序列组分别计算分支度量。在本步骤中,首先将上述两个进行恢复删余操作后的序列^V;。,.j:和各自分成k个序列,每个序列具有n个元素。例如,, 可被分为k个序列( ...《),(《 ),…,(《—同 理,也可被分为k个序列:(《K'),…, (《w/d…《-,)。然后,在上述的2k个序列中,使得每两个下标相同的序 列形成一个序列组,因此可得k个序列组,即可将 ...《°—,和《《'…《L,组 成一个序列组;将和组成一个序列组;…;将. .《L和《w)C.,组成 一 个序列组。例如,以步骤304中k = 2和n=2时所得到的两个序列 和 《《《《为例,分组后的结果为2个序列组:( 。, )和( 。, )。又例如,以步骤304中k = 3和n=2时所得到的两个序列《V;。《V;。《V;。 和 为例,分组后的结果为3个序列组( °,《《')、( , )和( , )。当k、 n取其他值时,可按照上述的方法以此类推得到k个序列组。在分组完成后,将上述的k个序列组分别代入(n, l,m)巻积^码的网档^ 图中,根据网格图中某个节点的各个引入分支上的输出,计算当前译码时刻 的节点各个引入分支的分支度量BranchMetrict(Pi,p)。其中,t为当前译码时 刻;p为当前译码时刻的一个当前状态,或者为网格图中当前译码时刻的一 个节点,可称为当前节点;pi为当前状态的前一级状态,或者为网格图中与 当前节点有连线的上一i奪码时刻的一个节点,其中i=0, 1, ...,n-l。根据上述分组后的序列组,可分别计算分支度量BranchMetrict(pi, p)。 例如,对应于序列组( ...《,, ...《_,),当网格图中的从节点pi到 节点p的分支上的输出码字为 曰于(A.的"f直为0或1, f=0, 1, .. , n-1 ),则有BranchMetrict(pi, p)=《》 +《'+... +(2 )对于其他的序列组,分支度量的计算方法可依此类推。以下,将以(2, 1,2)巻积码为例对本步骤的具体实现方式进4亍示例性 的说明。图4为本发明实施例中(2, 1, 2)巻积码的网格图示意图。如图4 所示,当使用(2,1,2)巻积码,且k-l时,对步骤303中的两个序列 和 进行分组后,只得到一个序列组( , ),此时,如果当前节 点的某一个分支上的输出码字为00时,则有BranchMetriCt(Pi, pX。+《。; 如果当前节点的某一个分支上的输出码字为01时,则有BranchMetrict(pi, p)=《° +《';如果当前节点的某一个分支上的输出码字为10时,则有 BranchMetrict(pi,p一^+《。;如果当前节点的某一个分支上的输出码字为11 时,则有BranchMetriCt(pi, p)=《+《'。步骤305,计算当前节点所对应的各序列组中各个节点的状态度量,进 行回溯处理后,获得当前节点的留选分支组。当编码所使用的为(k+1, k, m)巻积码时,网格图中的各个节点需要通过 对状态度量的计算来得到本节点的留选路径。由于(k+l, k, m)巻积码的网格 图中的各个节点有2k个引入分支,所以状态度量的计算复杂度较大。而在本实施例中,可利用上述的序列组来降低上述状态度量的计算复杂 度。以(k+l, k, m)巻积码的网格图中的某个节点(称之为当前节点)为例, (设该(k+l,k, m)巻积码由(n, l,m)巻积码删余而成),具体的方法为1)首先计算该当前节点所对应的(n, 1, m)码的网格图中各序列组 中各个节点的状态度量。在本步骤中,可将对当前节点的状态度量的计算,分解为对该当前节点所对应的(n, 1, m)码网格图中各节点的状态度量的计算。由于有k个序 列组,因此所述的(n, 1, m)码网格图具有k级,共有(k+l)列节点。为了名又述的简便,我们将以k=3, n=2, 111=2为例,对本步骤进4亍示例 性-说明,而当k、 n和m耳又其他值时,也可按照相同的方法计算网才各图中各 序列组中各个节点的状态度量,在此不再赘述。由于1^=3, n=2, m=2,所以(n, 1, m)码为(2, 1, 2)码。图5为本发明实施例中使用(2, 1 , 2)码计算状态度量时的网格图示意图。如图5所示,由于k=3,所以此时的网格图具有3级。在图5所示的网格图中,每一列代表一个i奪码时刻,同一列中的点代表同一译码时刻的节点。最左边的一列为初时译码时 刻,该译码时刻的各节点的状态度量为预先设置的初始值,不需要进行计算;而对于第二、三、四列中的节点,则可顺序计算每个节点p的状态度量StateMetrict(p),其中,p = 0, 1, 2m-l 。上述的顺序即为先计算第二列中各个节点的状态度量,然后再计算第三列中各个节点的状态度量,最后计算 第四列中各个节点的状态度量。而节点的状态度量的计算公式为其中,min表示取最小值的操作,Pi (i-0或l)表示当前节点的2个前 级节点po和Pl, StateMetricw(pi)表示上述2个前级节点的状态度量, BranchMetriCt (Pi, p)表示从前级节点p;到当前节点p的分支的分支度量。对于节点p来说,当通过上述公式(3 )得到上述的StateMetrict(p)时, 将取得的StateMetrict(p)所对应的那条分支作为留选分支,并存储该分支所 对应的输出码字以及前级节点的状态值。例如,以图5所示的第二列的第一个节点32为例,对上述计算过程进行 示例性说明。如图5所示,可设图5中第一列的各节点的状态度量均为0, 而第二列的第一个节点有2个前级节点a!和d,其中从ai到a2的分支上 的输出为OO,从d到32的分支上的输出为11,根据步骤304可得,上述两 个分支所对应的分支度量分别为(《。+《。)和(《+《1)。因此,当(<+《°)〉(<+<)时,则节点a2的状态度量为(《+《),并将从d到a2的 分支作为留选分支,并存储该分支所对应的输出码字11,以及节点d的状 态值10;当(C(《+《)时'则节点a2的状态度量为(《+《。),并将 从aj'j a2的分支作为留选分支,并存储该分支所对应的输出码字00,以及 节点d的状态值OO。同理,可继续使用上述方法计算各列中各节点的状态度量。2)根据所得到的各节点的状态度量,进行回溯处理,获得当前节点的 留选分支组以及该留选分支组所对应的前级节点的状态值。当各序列组中所有节点的状态度量都计算完后,还需要进行回溯处理从 而得到所需的当前节点的留选分支组。仍以图5为例,在本步骤中,将从图 5中的最后一列(即最后一个序列组)的各个节点开始,沿着各节点所选取 的留选分支,回溯k次,回溯到第一列中的某个节点X,从而可得到这k条 留选分支所对应的编码序列(该编码序列有nk个比特)以及节点X的状态 值。例如,假设从图5中第4列的第1个节点a4开始回溯,并假i殳a4的留 选分支为从C3到a4; C3在的留选分支为从(12到c3 ; d2的留选分支为乂人bj 到d2;则这3条留选分支组成留选分支组,所对应的编码序列为010111。然后,对上述的编码序列进行删余操作后,可得到删余后的(k+l)个编 码后比特;可根据该(k+l)个编码后比特查询步骤302中的子集译码结果, A/v而得到上述(k+l)个编码后比特所对应的未编码比特,并将上述节点X的 状态值作为该留选分支组所对应的前级节点的状态值。步骤306,回溯与译码输出。在本步骤中,当完成上述节点的状态度量的计算后,从预先设定的终结 状态点出发,沿着各级节点所选择的留选路径进行回溯,直到回到网格图中 第 一 级中的某个节点,从而得到与回溯时所经过的留选路径相对应的编码比 特与未编码比特序列,输出译码比特序列。本步骤中为了"^码所进行的回溯 与译码输出过程,可使用现有技术中常用的回溯与译码输出过程,因此,在此不再赘述。在上述的步骤305中计算每个节点的状态度量时,只需进行2k次加法 和k次比较;而在现有技术中,对每个节点的状态度量进行计算时,需要进 行2"欠加法和2k-l次比较,因此,使用本方法,可大大减少计算次数,降 低硬件实现的复杂度。实施例二图6为本发明实施例二中TCM码的译码方法的流程图。如图6所示, 本发明实施例二中T C M码的译码方法包括如下所述的步骤 步骤601,接收端对所接收的信号进行子集译码。在本步骤中,可使用与实施例一的步骤301中相同的方法对所接收的信 号进行子集译码,得到子集译码结果。步骤602,根据子集译码结果中各编码后比特的值,得到与各编码后比 特的值相对应的最小的平方欧氏距离,根据得到的所有最小的平方欧氏距离 得到一个似然比序列。在本步骤中,首先使用与实施例一的步骤302中相同的方法得到各编码 后比特所对应的最小的平方欧氏距离《和《1 (i=0, 1, ...,k),分别计算对数 似然比丄ZJ ,《。-《1 (或者,Hi ,.=<-《°),并将所有得到的对数似然比组成 一个如乂 ,秀《t匕序歹'J: Z丄i 。丄丄六,...丄丄i^ 。步骤603,对似然比序列进行恢复删余操作。具体来说,就是对上述似然比序列使用与实施例一的步骤303中相同的 恢复删余操作,得到一个长度为nk的序列"《"《..丄丄《—,。步骤604,将恢复删余操作后的序列分成k个序列组,并根据每个序列 组分别计算分支度量。具体来说,就是使用与实施例一的步骤304中相同的方法,将上述的长 度为nk的序列辽《丄/^;..丄丄(_1分成k个序列组,每个序列组具有n个元素, 例如(iz《zx《…丄丄d), (zz《丄丄iC,…iZid),…,(iz《(t—D丄丄i ;,…i:丄iC—,);然后将上述k个序列组代入(n, l,m)巻积码的网格图中,根据网格图中某个节点的各个引入分支上的输出,计算当前译码时刻的该节点的各个引入分支的分支度量BranchMetrict(pi, p)。例如,对应于序列组(丄ZJ ;丄i:《...,) 当对数似然比ZZ《.-《。-《1,且网格图中某个分支上的输出为xo^…x^时(jc, 的值为0或1, !'=0, 1, ...,n-l ),该分支所对应的分支度量为Branc固etrict(pi, p) = (-l广LL《+ (-1"' Z丄《+…+ (-1""1 (4 )而当对数似然比为ZZ^,=《-《°时,则该分支所对应的分支度量为BranchMetrict(Pi, p) = —[(—l广丄丄《+ (—l)"ZZ《+…+ (—1"-',] (5 ) 对于其他的序列组,分支度量的计算方法可依此类推。特别的,当使用(2, 1,2)巻积码,且k-i时,只得一个序列zx/^zj ;, 此时,在使用公式(4)的情况下,如果当前节点的某一个分支上的输出为00时,则有BranchMetrict(Pi, p)= ZX《+丄Z《;如果当前节点的某 一 个分支上 的输出为01时,则有BranchMetrict(pi, p)= ZX《-ZZ《;如果当前节点的某一 个分支上的输出为10时,则有BranchMetrict(pi, p)=-ZZ《+丄丄《;如果当前 节点的某 一 个分支上的输出为11时,则有BranchMetrict(Pi, p)= -ZX《-ZZ《。步骤605,计算当前节点所对应的各序列组中各个节点的状态度量,进 行回溯处理后,获得当前节点的留选分支组。在该步骤中,使用与实施例一的步骤305中相同的方法计算各节点的状 态度量,从而获得当前节点的留选分支组。步骤606,回溯与译码输出。在本步骤中,当完成上述节点的状态度量的计算后,从预先设定的终结 状态点出发,沿着各级节点所选择的留选路径进行回溯,直到回到网格图中 第一级中的某个节点,从而得到与回溯时所经过的留选路径相对应的编码比 特与未编码比特序列,输出译码比特序列。本步骤中为了译码所进行的回溯 与译码输出过程,可使用现有技术中常用的回溯与译码输出过程,因此,在 此不再赘述。图7为本发明实施例中TCM码的i奪码装置的示意图。如图7所示,本发明实施例中TCM码的译码装置包括序列形成模块、恢复删余模块、分 组计算模块和留选分支模块。所述序列形成模块,用于对经过子集译码后的每一个编码后比特,获取该 编码后比特的值为0时所对应的子集译码结果中的最小平方欧氏距离,获取该 编码后比特的值为1时所对应的子集译码结果中的最小平方欧氏距离;将所获 取的所有最小平方欧氏距离组成两个序列;将获得的两个序列发送给恢复删余 模块;所述恢复删余模块,用于对所述两个序列进行恢复删余操作,将获得的两 个恢复删余操作后的序列发送给分组计算^t块;所述分组计算模块,用于将所述两个恢复删余操作后的序列分成至少一个 序列组,并根据每个序列组分别计算分支度量;将所述分支度量发送给留选分 支模块;所述留选分支模块,用于计算当前节点所对应的各序列组中各个节点的状 态度量,进行回溯处理,输出所获得的当前节点的留选分支组。图8为本发明实施例中另一种TCM码的译码装置的示意图。如图8所示, 本发明实施例中另一种TCM码的译码装置包括似然比序列形成模块、恢复 删余模块、分组计算模块和留选分支模块。所述似然比序列形成模块,用于对经过子集译码后的每一个编码后比特, 获取该编码后比特的值为0时所对应的子集译码结果中的最小平方欧氏距离, 获取该编码后比特的值为1时所对应的子集译码结果中的最小平方欧氏距离; 根据所获取的所有最小平方欧氏距离得到一个似然比序列;将获得的似然比序 列发送给恢复删余模块;所述恢复删余模块,用于对所述似然比序列进行恢复删余操作,将获得的 恢复删余操作后的序列发送给分组计算才莫块;所述分组计算模块,用于将所述恢复删余操作后的序列分成至少一个序列 组,并根据每个序列组分别计算分支度量;将所述分支度量发送给留选分支模块;所述留选分支模块,用于计算当前节点所对应的各序列组中各个节点的 状态度量,进行回溯处理,输出所获得的当前节点的留选分支组。在本发明的实施例中,还提供了一种移动终端,该移动终端包括序列形成模块、恢复删余模块、分组计算模块和留选分支模块;所述序列形成模块,用于对经过子集译码后的每一个编码后比特,获取该编码后比特的值为0时所对应的子集译码结果中的最小平方欧氏距离,获取该 编码后比特的值为1时所对应的子集i奪码结果中的最小平方欧氏距离;将所获 取的所有最小平方欧氏距离组成两个序列;将获得的两个序列发送给恢复删余 模块;所述恢复删余模块,用于对所述两个序列进行恢复删余操作,将获得的两 个恢复删余操作后的序列发送给分组计算模块;所述分组计算^^莫块,用于将所述两个恢复删余,喿作后的序列分成至少一个 序列组,并根据每个序列组分别计算分支度量;将所述分支度量发送给留选分 支模块;所述留选分支模块,用于根据所接收到的分支度量计算当前节点所对应的 各序列组中各个节点的状态度量,进行回溯处理,输出所获得的当前节点的留 选分支组。在本发明的实施例中,还提供了一种移动终端,该移动终端包括序列形 成模块、恢复删余模块、分組计算模块和留选分支模块;所述序列形成模块,用于对经过子集译码后的每一个编码后比特,获取该 编码后比特的值为0时所对应的子集译码结果中的最小平方欧氏距离,获取该 编码后比特的值为1时所对应的子集译码结果中的最小平方欧氏距离;根据所 获取的所有最小平方欧氏距离得到一个似然比序列;将获得的似然比序列发送 给恢复删余模块;所述恢复删余模块,用于对所述似然比序列进行恢复删余操作,将获得的 恢复删余操作后的序列发送给分组计算^t块;所述分组计算模块,用于将所述恢复删余操作后的序列分成至少一个序列 组,并根据每个序列组分别计算分支度量;将所述分支度量发送给留选分支模块;所述留选分支模块,用于根据所接收到的分支度量计算当前节点所对应的 各序列组中各个节点的状态度量,进行回溯处理,输出所获得的当前节点的留 选分支组。在本发明的实施例中,还提供了一种基站,该基站包括序列形成模块、 恢复删余模块、分组计算模块和留选分支模块;所述序列形成模块,用于对经过子集译码后的每一个编码后比特,获取该 编码后比特的值为0时所对应的子集译码结果中的最小平方欧氏距离,获取该 编码后比特的值为1时所对应的子集译码结果中的最小平方欧氏距离;将所获 取的所有最小平方欧氏距离组成两个序列;将获得的两个序列发送给恢复删余 模块;所述恢复删余模块,用于对所述两个序列进行恢复删余操作,将获得的两 个恢复删余操作后的序列发送给分组计算模块;所述分组计算模块,用于将所述两个恢复删余操作后的序列分成至少一个 序列组,并根据每个序列组分别计算分支度量;将所述分支度量发送给留选分 支模块;所述留选分支模块,用于根据所接收到的分支度量计算当前节点所对应的 各序列组中各个节点的状态度量,进行回溯处理,输出所获得的当前节点的留 选分支组。在本发明的实施例中,还提供了一种基站,该基站包括序列形成模块、 恢复删余模块、分组计算模块和留选分支模块;所述序列形成模块,用于对经过子集译码后的每一个编码后比特,获取该 编码后比特的值为0时所对应的子集译码结杲中的最小平方欧氏距离,获取该 编码后比特的值为1时所对应的子集译码结果中的最小平方欧氏距离;根据所 获取的所有最小平方欧氏距离得到 一个似然比序列;将获得的似然比序列发送给恢复删余模块;所述恢复删余模块,用于对所述似然比序列进行恢复删余操作,将获得的恢复删余操作后的序列发送给分组计算模块;所述分组计算模块,用于将所述恢复删余操作后的序列分成至少一个序列组,并根据每个序列组分别计算分支度量;将所述分支度量发送给留选分支模 块;所述留选分支模块,用于根据所接收到的分支度量计算当前节点所对应 的各序列组中各个节点的状态度量,进行回溯处理,输出所获得的当前节点 的留选分支组。通过使用上述的译码方法和装置,可使得在每一个译码时刻,对于每一 个节点,只需进行2次加法运算和1次比较运算,因此加法运算的实现复杂 度是使用现有技术中的译码方法时的l/2k",而比较运算的实现复杂度是使 用现有技术中的译码方法时的l/(2k-l)。因此, -使用本发明实施例中的译码 方法和装置,可大大减少译码过程中的运算量,节约了计算资源,同时也大 大降低了硬件实现的复杂度,节约了实现成本。以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护 范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等, 均应包含在本发明的保护范围之内。
权利要求
1. 一种网格编码调制码的译码方法,其特征在于,该译码方法包括对经过子集译码后的每一个编码后比特,获取该编码后比特的值为0时所对应的子集译码结果中的最小平方欧氏距离,获取该编码后比特的值为1时所对应的子集译码结果中的最小平方欧氏距离;将所获取的所有最小平方欧氏距离组成两个序列;对所述两个序列进行恢复删余操作,获得两个恢复删余操作后的序列;将所述两个恢复删余操作后的序列分成至少一个序列组,并根据每个序列组分别计算分支度量;根据所述分支度量计算当前节点所对应的各序列组中各个节点的状态度量,进行回溯处理,获得当前节点的留选分支组;根据所述当前节点的留选分支组进行译码操作。
2、 根据权利要求1所述的方法,其特征在于,所述将所获取的所有最小平 方欧氏距离分成两个序列包括将所有与各编码后比特的值为o时相对应的最小平方欧氏距离按照各编码 后比特的排列顺序组成一个序列;将所有与各编码后比特的值为1时相对应的 最小平方欧氏距离按照各编码后比特的排列顺序组成另一个序列。
3、 根据权利要求1所述的方法,其特征在于,所述根据每个序列组分别计 算分支度量包括根据所述的序列组及巻积码网格图中节点的各个引入分支上的输出码字, 计算所述节点的各引入分支的分支度量。
4、 根据权利要求1所述的方法,其特征在于,所述根据所述分支度量计算 当前节点所对应的各序列组中各个节点的状态度量包括根据各序列组中各个节点的前级节点的状态度量以及与所述前级节点相对应的引入分支的分支度量,计算各序列组中各个节点的状态度量;各个节点根 据状态度量的计算选择留选分支。
5、 根据权利要求4所述的方法,其特征在于,所述进行回溯处理,获得当前节点的留选分支组包括最后一个序列组的节点根据前级节点的留选分支,回溯到第 一个序列组的 节点;根据回溯所经过的留选分支得到当前节点的留选分支组。
6、 根据权利要求5所述的方法,其特征在于,所述冲艮据回溯所经过的留选 分支得到当前节点的留选分支组包括对留选分支组对应的输出码字序列进行删余操作获得编码后比特。
7、 根据权利要求1所述的方法,其特征在于,所述获得当前节点的留选分 支组之后还包括获得所述当前节点的留选分支组所对应的前级节点的状态值。
8、 一种网格编码调制码的译码方法,其特征在于,该译码方法包括 对经过子集译码后的每一个编码后比特,获取该编码后比特的值为0时所对应的子集译码结果中的最小平方欧氏距离,获取该编码后比特的值为1时所对应的子集译码结果中的最小平方欧氏距离;根据所获取的所有最小平方欧氏距离得到一个似然比序列;对所述似然比序列进行恢复删余操作,得到恢复删余梯:作后的似然比序列; 将所迷恢复删余操作后的似然比序列分成至少一个序列组,并根据每个序列组分别计算分支度量;根据所述分支度量计算当前节点所对应的各序列组中各个节点的状态度量,进行回溯处理,获得当前节点的留选分支。
9、 根据权利要求8所述的方法,其特征在于,所述4艮据所获取的所有最小 平方欧氏距离得到一个似然比序列包括根据各编码后比特的值为0或1时相对应的最小平方欧氏距离的差,按照 各编码后比特的排列顺序组成一个似然比序列。
10、 根据权利要求8所述的方法,其特征在于,所述根据每个序列组分别 计算分支度量包括根据所述的序列组及巻积码网格图中节点的各个引入分支上的输出码字,计算所述节点的各引入分支的分支度量。
11、 根据权利要求8所述的方法,其特征在于,所述根据所述分支度量计算当前节点所对应的各序列组中各个节点的状态度量包括根据各序列组中各个节点的前级节点的状态度量以及与所述前级节点相对应的引入分支的分支度量,计算各序列组中各个节点的状态度量;各个节点根 据状态度量选择留选分支。
12、 根据权利要求11所述的方法,其特征在于,所述进行回溯处理,获得 当前节点的留选分支组包括最后一个序列组的节点根据前级节点的留选分支,回溯到第 一个序列组的 节点;根据回溯所经过的留选分支得到当前节点的留选分支组。
13、 根据权利要求12所述的方法,其特征在于,所述根据回溯所经过的留 选分支得到当前节点的留选分支组包括对留选分支组对应的输出码字序列进行删余操作获得编码后比特。
14、 根据权利要求8所述的方法,其特征在于,所述获得当前节点的留选 分支组之后还包括获得所述当前节点的留选分支组所对应的前级节点的状态值。
15、 一种网格编码调制码的译码装置,其特征在于,该译码装置包括序 列形成模块、恢复删余模块、分组计算模块和留选分支模块;所述序列形成模块,用于对经过子集译码后的每一个编码后比特,获取该 编码后比特的值为0时所对应的子集译码结果中的最小平方欧氏距离,获取该 编码后比特的值为1时所对应的子集译码结果中的最小平方欧氏距离;将所获 取的所有最小平方欧氏距离组成两个序列;将获得的两个序列发送给恢复删余 模块;所述恢复删余模块,用于对所述两个序列进行恢复删余操作,将获得的两 个恢复删余操作后的序列发送给分组计算模块;所述分组计算模块,用于将所述两个恢复删余操作后的序列分成至少一个 序列组,并根据每个序列组分别计算分支度量;将所述分支度量发送给留选分支模块;所述留选分支模块,用于根据所接收到的分支度量计算当前节点所对应的 各序列组中各个节点的状态度量,进行回溯处理,输出所获得的当前节点的留 选分支组。
16、 一种网格编码调制码的译码装置,其特征在于,该译码装置包括序 列形成模块、恢复删余模块、分组计算模块和留选分支模块;所述序列形成模块,用于对经过子集译码后的每一个编码后比特,获取该 编码后比特的值为0时所对应的子集译码结果中的最小平方欧氏距离,获取该 编码后比特的值为1时所对应的子集译码结果中的最小平方欧氏距离;根据所 获取的所有最小平方欧氏距离得到一个似然比序列;将获得的似然比序列发送 给恢复删余模块;所述恢复删余模块,用于对所述似然比序列进行恢复删余操作,将获得的 恢复删余操作后的序列发送给分组计算模块;所述分组计算模块,用于将所述恢复删余操作后的序列分成至少一个序列 组,并根据每个序列组分别计算分支度量;将所述分支度量发送给留选分支模 块;所述留选分支模块,用于根据所接收到的分支度量计算当前节点所对应的 各序列组中各个节点的状态度量,进行回溯处理,输出所获得的当前节点的留 选分支组。
17、 一种移动终端,其特征在于,该移动终端包括序列形成模块、恢复 删余模块、分组计算模块和留选分支模块;所述序列形成模块,用于对经过子集译码后的每一个编码后比特,获取该 编码后比特的值为0时所对应的子集辯,码结果中的最小平方欧氏距离,获取该 编码后比特的值为1时所对应的子集译码结果中的最小平方欧氏距离;将所获 取的所有最小平方欧氏距离组成两个序列;将获得的两个序列发送给恢复删余 模块;所述恢复删余;f莫块,用于对所述两个序列进^f亍恢复删余l喿作,将获得的两个恢复删余操作后的序列发送给分组计算模块;所述分组计算模块,用于将所述两个恢复删余操作后的序列分成至少一个序列组,并根据每个序列组分别计算分支度量;将所述分支度量发送给留选分 支模块;所述留选分支模块,用于根据所接收到的分支度量计算当前节点所对应的 各序列组中各个节点的状态度量,进行回溯处理,输出所获得的当前节点的留 选分支组。
18、 一种移动终端,其特征在于,该移动终端包括序列形成4莫块、恢复 删余模块、分组计算模块和留选分支模块;所述序列形成模块,用于对经过子集译码后的每一个编码后比特,获取该 编码后比特的值为0时所对应的子集碍,码结果中的最小平方欧氏距离,获取该 编码后比特的值为1时所对应的子集译码结果中的最小平方欧氏距离;根据所 获取的所有最小平方欧氏距离得到 一个似然比序列;将获得的似然比序列发送 给恢复删余模块;所述恢复删余^^莫块,用于对所述似然比序列进行恢复删余操:作,将获得的 恢复删余才喿作后的序列发送给分组计算模块;所述分组计算模块,用于将所述恢复删余操作后的序列分成至少一个序列 组,并根据每个序列组分别计算分支度量;将所述分支度量发送给留选分支模 块;所述留选分支模块,用于根据所接收到的分支度量计算当前节点所对应的 各序列组中各个节点的状态度量,进行回溯处理,输出所获得的当前节点的留 选分支组。
19、 一种基站,其特征在于,该基站包括序列形成模块、恢复删余模块、 分组计算模块和留选分支模块;所述序列形成模块,用于对经过子集译码后的每一个编码后比特,获取该 编码后比特的值为0时所对应的子集i,码结果中的最小平方欧氏距离,获取该 编码后比特的值为1时所对应的子集译码结果中的最小平方欧氏距离;将所获取的所有最小平方欧氏距离组成两个序列;将获得的两个序列发送给恢复删余模块;所述恢复删余^t块,用于对所述两个序列进行恢复删余梯:作,将获得的两个恢复删余操作后的序列发送给分组计算模块;所述分组计算模块,用于将所述两个恢复删余操作后的序列分成至少一个序列组,并根据每个序列组分别计算分支度量;将所述分支度量发送给留选分 支模块;所述留选分支模块,用于根据所接收到的分支度量计算当前节点所对应的 各序列组中各个节点的状态度量,进行回溯处理,输出所获得的当前节点的留 选分支组。
20、 一种基站,其特征在于,该基站包括序列形成模块、恢复删余模块、 分组计算模块和留选分支模块;所述序列形成模块,用于对经过子集译码后的每一个编码后比特,获取该 编码后比特的值为0时所对应的子集i奪码结果中的最小平方欧氏距离,获取该 编码后比特的值为1时所对应的子集译码结果中的最小平方欧氏距离;才艮据所 获取的所有最小平方欧氏距离得到 一个似然比序列;将获得的似然比序列发送给恢复删余模块;所述恢复删余;f莫块,用于对所述似然比序列进行恢复删余操作,将获得的 恢复删余操作后的序列发送给分组计算模块;所述分组计算模块,用于将所述恢复删余操作后的序列分成至少一个序列 组,并根据每个序列组分别计算分支度量;将所述分支度量发送给留选分支模 块;所述留选分支模块,用于根据所接收到的分支度量计算当前节点所对应的 各序列组中各个节点的状态度量,进行回溯处理,输出所获得的当前节点的留 选分支组。
全文摘要
本发明的实施例中公开了一种TCM码的译码方法,该方法包括对子集译码后的每一个编码后比特,获取该编码后比特的值为0或1时所对应的子集译码结果中的最小平方欧氏距离,将所获取的所有最小平方欧氏距离组成两个序列;对所述两个序列进行恢复删余操作;将所述两个恢复删余操作后的序列分成至少一个序列组,并根据每个序列组分别计算分支度量;根据分支度量计算当前节点所对应的各序列组中各个节点的状态度量,进行回溯处理,获得当前节点的留选分支组;根据当前节点的留选分支组进行译码。本发明实施例还提供一种TCM码的译码装置,通过使用上述方法和装置,可减少译码过程中的运算量,节约计算资源,同时大大降低硬件实现的复杂度,节约实现成本。
文档编号H03M13/25GK101262306SQ20081009449
公开日2008年9月10日 申请日期2008年4月30日 优先权日2008年4月30日
发明者方冬梅 申请人:华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1