CN100373778C - 一种维特比硬判决度量更新方法 - Google Patents

一种维特比硬判决度量更新方法 Download PDF

Info

Publication number
CN100373778C
CN100373778C CNB021368139A CN02136813A CN100373778C CN 100373778 C CN100373778 C CN 100373778C CN B021368139 A CNB021368139 A CN B021368139A CN 02136813 A CN02136813 A CN 02136813A CN 100373778 C CN100373778 C CN 100373778C
Authority
CN
China
Prior art keywords
viterbi
input
local
hamming distance
local hamming
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.)
Expired - Lifetime
Application number
CNB021368139A
Other languages
English (en)
Other versions
CN1479451A (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.)
ZTE Corp
Original Assignee
ZTE 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 ZTE Corp filed Critical ZTE Corp
Priority to CNB021368139A priority Critical patent/CN100373778C/zh
Publication of CN1479451A publication Critical patent/CN1479451A/zh
Application granted granted Critical
Publication of CN100373778C publication Critical patent/CN100373778C/zh
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Error Detection And Correction (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明提供一种维特比硬判决度量更新方法,先计算所有2L个状态转移在2n0种维特比输入下的本地汉明距离;其次,在不改变所有本地汉明距离的相互关系情况下,把所有本地汉明距离按照以0为中心的对称形式进行变换;然后计算转换后的本地汉明距离与维特比输入之间的关系,获得最多2L-3个转换因子;最后用转换因子代替本地汉明距离进行加比选运算,即将到达某一状态的两个前态的累积度量分别加或减转换因子,获得两个可选值;比较上述两个值的大小;选择其中较小的值作为下一阶段该状态的累积度量。本发明充分利用状态转换的对称性对本地汉明距离进行变换,使得一个转换因子可以为多至2L-2个加比选运算提供参数,提高了度量更新的速度。

Description

一种维特比硬判决度量更新方法
技术领域
本发明涉及数字信号处理领域,具体地说,涉及硬判决维特比译码算法中的度量更新方法。
背景技术
卷积码的译码方法有多种,常用的有维特比译码、序列译码和门限译码三种,其中维特比算法(Viterbi Algorithm)的性能最好,应用最广。维特比算法是建立在最大似然译码的基础上,其基本思路是当收到信号输入序列时,通过网格图按照最大似然准则寻找最有可能发生接收信号的路径。如果采用硬判决译码,则寻找与接收序列具有最小汉明距离的路径;如果采用软判决译码,则寻找与接收序列具有最小欧氏距离的路径。通常把可能的译码输出序列与接收序列之间的距离(汉明距离或欧氏距离)称为度量或量度(metric)。维特比译码广泛应用于通信系统的信道差错控制,如GPRS移动系统的基站和终端等。
先介绍一下卷积码的概念。卷积码一般用码型(n0,k0,L-1)来表示,其中n0代表卷积码子序列的输出长度,k0代表卷积码子序列的输入长度,L-1代表编码器状态机中状态寄存器的个数。例如(3,1,4)卷积码,其含义为:状态寄存器4位,状态16个,子序列的输入是1比特,输出3比特,编码速率为1/3,卷积码的输出生成多项式是:G0(x)=1+X+X3+X4,G1(x)=1+X2+X4,G2(x)=1+X+X2+X3+X4。k0=1是最常见的子序列输入长度。根据生成多项式和子序列输入可以计算出卷积码的输出G0(x)G1(x)G2(x)。
在卷积码的硬判决维特比译码中,采用网格图来选择路径,选择路径的依据是该路径的码字c与量化的接收序列y之间具有最小汉明距离。具体方法如下:
1)将接收到的序列分成长度为n0的m个子序列进行分析;
2)给出所研究的卷积码的深度为m的网格图,对于该网格图的最后L-1个阶段,仅给出对应于全0输入序列的路径;
3)令w=1,且设初始全0状态的距离等于0,即累积度量初始化为0;
4)计算接收序列的第w个子序列到第w阶段状态与第(w+1)阶段状态相连接的所有支路的距离,这一步称为计算本地度量;
5)将本地度量与第w阶段状态的距离相加,获得第(w+1)阶段状态的距离可选值,对于第(w+1)阶段的每个状态都有2k0个可供选择的距离,每个距离都对应着终止于该状态的一个支路;
6)对于第(w+1)阶段的每个状态,在2k0个可供选择的距离中选出最短距离对应的支路作为幸存路径,并把最短距离作为第(w+1)阶段状态的距离;步骤5)、6)合起来称为加比选运算,而把本地度量的计算与加比选运算合起来称为度量更新;
7)如果w=m,就进入步骤8);否则,将w增加1后返回步骤4);
8)从第(m+1)阶段的全0状态开始,通过网格图中的幸存路径返回到最初的全0状态,则这条路径即为最佳路径,对应于它的接收比特序列是最大似然译码信息序列;为了获得输入比特序列的最佳估算,去掉接受比特序列中最后k0(L-1)个0,这一步称为回溯。
从上面的步骤可以看出,维特比算法中的度量更新过程需要进行m次的循环,m与接收序列的长度有关,度量更新是实现维特比算法的关键步骤,其速度直接影响整个维特比译码的时间开销。在现有技术中,维特比算法可以用硬件来实现,如采用FPGA、ASIC等,但开发周期长,适用面窄;也可以在通用DSP处理器上用软件来实现,但一般运行的时间和空间开销都较大,效率低下。所以目前迫切需要有一种方法来提高度量更新的速度。
发明内容
本发明所要解决的技术问题在于提出一种维特比硬判决度量更新方法,可以在DSP处理器上实现,以节省维特比译码算法的时间和空间开销。
本发明维特比硬判决度量更新方法,包括以下步骤:
一、计算在2n0种维特比输入下所有2L个状态转移的本地汉明距离;
二、不改变所有本地汉明距离的相互关系,把所有本地汉明距离按照以0为中心的对称形式进行变换;
三、计算转换后的本地汉明距离与维特比输入之间的关系,获得最多2L-3个转换因子;
四、用转换因子代替本地汉明距离进行加比选运算,即将到达某一状态的两个前态的累积度量分别加或减转换因子,获得两个可选值;比较上述两个值的大小;选择其中较小的值作为下一阶段该状态的累积度量。
本发明度量更新方法充分利用状态转换的对称性对本地汉明距离进行变换,使得一个转换因子可以为多至2L-2个加比选运算提供参数,提高度量更新的速度。本发明可以在多种DSP处理器上实现,不仅适用于移动通信系统的基站和终端,而且也适用于其它应用维特比硬判决译码的领域。
附图说明
图1是本发明所述度量更新方法的流程图。
具体实施方式
下面结合附图进一步详细说明本发明方法的具体实例。
本发明只涉及维特比算法的度量更新,不考虑其初始化和回溯过程。
首先,根据卷积码状态转移图和生成多项式计算所有2L个状态转移在所有2n0种维特比输入情况下的本地汉明距离。
为了方便计算,先介绍卷积码子序列的输入输出及状态转移情况。维特比译码实际上用到其对应的卷积编码。表1给出了(2,1,4),(3,1,4),(6,1,4)卷积算法的输入输出及状态转移情况,根据维特比译码的状态转移关系,当卷积输入为0时,次态小于等于2L-2-1;当卷积输入为1时,次态大于2L-2-1,其中L-1表示编码器中状态寄存器的个数。
表1卷积算法的输入输出及状态转移情况
  卷积输入   现态   次态   (2,1,4)卷积输出   (3,1,4)卷积输出   (6,1,4)卷积输出
  0   0(0000)   0(0000)   00   000   000000
  1   0(0000)   8(1000)   11   111   111111
  0   1(0001)   0(0000)   11   111   111111
    1   1(0001)   8(1000)   00   000   000000
    0   2(0010)   1(0001)   11   101   101101
    1   2(0010)   9(1001)   00   010   010010
    0   3(0011)   1(0001)   00   010   010010
    1   3(0011)   9(1001)   11   101   101101
    0   4(0100)   2(0010)   00   011   011011
    1   4(0100)   10(1010)   11   100   100100
    0   5(0101)   2(0010)   11   100   100100
    1   5(0101)   10(1010)   00   011   011011
    0   6(0110)   3(0011)   11   110   110110
    1   6(0110)   11(1011)   00   011   011011
    0   7(0111)   3(0011)   00   011   011011
    1   7(0111)   11(1011)   11   100   110110
    0   8(1000)   4(0100)   01   101   101101
    1   8(1000)   12(1100)   10   010   010010
    0   9(1001)   4(0100)   10   010   010010
    1   9(1001)   12(1100)   01   101   101101
    0   10(1010)   5(0101)   10   000   000000
    1   10(1010)   13(1101)   01   111   111111
    0   11(1011)   5(0101)   01   111   111111
    1   11(1011)   13(1101)   10   000   000000
    0   12(1100)   6(0110)   01   110   110110
    1   12(1100)   14(1110)   10   011   011011
    0   13(1101)   6(0110)   10   011   011011
    1   13(1101)   14(1110)   01   100   110110
    0   14(1110)   7(0111)   10   011   011011
    1   14(1110)   15(1111)   01   100   100100
    0   15(1111)   7(0111)   01   100   100100
    1   15(1111)   15(1111)   10   011   011011
分析表1可以得知,将卷积输入比特(0或1)加在现态(以二进制表示)的左边,就可以得到次态(以二进制表示),如果用u’(k)代表当前输入,用u’(k-1)、u’(k-2)、u’(k-3)、u’(k-4)代表过去的输入,那么现态表示为u’(k-1)u’(k-2)u’(k-3)u’(k-4),次态表示为u’(k)u’(k-1)u’(k-2)u’(k-3),其中k表示卷积输入比特的序号,k=0、1、2、……,这样可以得出输出码c与生成多项式和卷积输入之间的关系。(2,1,4)卷积码输出码c(2k)c(2k+1)的生成多项式是:
c(2k)=u’(k)+u’(k-2)+u’(k-4);
c(2k+1)=u’(k)+u’(k-1)+u’(k-3)+u’(k-4);
(3,1,4)卷积码输出码c(3k)c(3k+1)c(3k+2)的生成多项式是:
c(3k)=u’(k)+u’(k-1)+u’(k-3)+u’(k-4);
c(3k+1)=u’(k)+u’(k-2)+u’(k-4);
c(3k+2)=u’(k)+u’(k-1)+u’(k-2)+u’(k-3)+u’(k-4);
(6,1,4)卷积码输出码c(6k)c(6k+1)c(6k+2)c(6k+3)c(6k+4)c(6k+5)的生成多项式是:
c(6k)=c(6k+3)=u’(k)+u’(k-1)+u’(k-3)+u’(k-4);
c(6k+1)=c(6k+4)=u’(k)+u’(k-2)+u’(k-4);
c(6k+2)=c(6k+5)=u’(k)+u’(k-1)+u’(k-2)+u’(k-3)+u’(k-4);以上“+”代表模2加运算。
结合生成多项式,计算出所有2L种状态转移在2n0种输入下的本地汉明距离,并分成八个区域。
为加快度量更新的速度,减小整个维特比译码的时间开销和空间开销,根据维特比算法和处理器专用指令的特点,在计算出本地汉明距离后,对所有的本地汉明距离进行变换。如果DSP处理器的加比选指令是取大保留,则进行两次变换;如果处理器的加比选指令是取小保留,则只需进行第二次变换。第一次变换是交叉变换,即把最大值变为最小值,最小值变为最大值,次大值变为次小值,次小值变为次大值等,以(3,1,4)为例,将0变为3,1变为2,2变为1,3变为0,这样变换的原因是由于维特比度量更新的原则是取小保留,而处理器的加比选指令可以是取大保留;如果处理器的加比选指令是取小保留,那么就不需要进行第一次变换。第二次变换是对称变换,即在不改变各个汉明距离的相互关系的前提下,把本地汉明距离变成以0为中心的对称形式,这样做可以使一个转换因子就可以完成一个区域里的四个计算,同时相同的区或对称的区也可以使用该转换因子,这样就大大节省了进行加比选的计算量。
表2是维特比(2,1,4)的本地汉明距离及变换。卷积编码和维特比译码是互逆的过程,且维特比译码中还用到卷积编码的过程。以(2,1,4)为例,卷积编码的输入为1比特,通过生成多项式计算,其输出为2比特,那么相对应的维特比译码的输入是2比特,输出为1比特。
表2维特比(2,1,4)的本地汉明距离
  状态转移   卷积输出     不同维特比输入情况下的本地汉明距离   区域
    00     01     10     11
    0->0     00     0/2/2     1/1/0     1/1/0     2/0/-2     I
    0->8     11     2/0/-2     1/1/0     1/1/0     0/2/2
    1->0     11     2/0/-2     1/1/0     1/1/0     0/2/2
    1->8     00     0/2/2     1/1/0     1/1/0     2/0/-2
    2->1     11     2/0/-2     1/1/0     1/1/0     0/2/2     II
    2->9     00     0/2/2     1/1/0     1/1/0     2/0/-2
    3->1     00     0/2/2     1/1/0     1/1/0     2/0/-2
    3->9     11     2/0/-2     1/1/0     1/1/0     0/2/2
    4->2     00     0/2/2     1/1/0     1/1/0     2/0/-2     III
    4->10     11     2/0/-2     1/1/0     1/1/0     0/2/2
    5->2     11     2/0/-2     1/1/0     1/1/0     0/2/2
    5->10     00     0/2/2     1/1/0     1/1/0     2/0/-2
    6->3     11     2/0/-2     1/1/0     1/1/0     0/2/2     IV
    6->11     00     0/2/2     1/1/0     l/1/0     2/0/-2
    7->3     00     0/2/2     1/1/0     1/1/0     2/0/-2
    7->11     11     2/0/-2     1/1/0     1/1/0     0/2/2
    8->4     01     1/1/0     0/2/2     2/0/-2     1/1/0     V
    8->12     10     1/1/0     2/0/-2     0/2/2     1/1/0
    9->4     10     1/1/0     2/0/-2     0/2/2     1/1/0
    9->12     01     1/1/0     0/2/2     2/0/-2     1/1/0
    10->5     10     1/1/0     2/0/-2     0/2/2     1/1/0     VI
    10->13     01     l/1/0     0/2/2     2/0/-2     1/1/0
    11->5     01     1/1/0     0/2/2     2/0/-2     1/1/0
   11->13     10     1/1/0     2/0/-2     0/2/2     1/1/0
    12->6     01     1/1/0     0/2/2     2/0/-2     1/1/0     VII
    12->14     10     1/1/0     2/0/-2     0/2/2     1/1/0
    13->6     10     1/1/0     2/0/-2     0/2/2     1/1/0
    13->14     01     1/1/0     0/2/2     2/0/-2     1/1/0
    14->7     10     1/1/0     2/0/-2     0/2/2     1/1/0     VIII
    14->15     01     1/1/0     0/2/2     2/0/-2     1/1/0
    15->7     01     1/1/0     0/2/2     2/0/-2     1/1/0
    15->15     10     1/1/0     2/0/-2     0/2/2     1/1/0
在表2中,由于n0=2,所以维特比译码的输入有2n0=4种,即00,01,10和11。0->0,0->8......15->15表明状态转移的情况,由于L=5,k0=1,所以共有2k0*L=32种状态转移情况。卷积输出是指在某状态转移的情况下,由于状态转移与卷积编码的一位输入有一一对应关系,卷积编码的输入确定了,再结合生成多项式计算得到的两位输出值。这一栏的内容与表1中“(2,1,4)卷积输出”的内容是相同的。“不同维特比输入情况下的本地汉明距离”一栏中是用两个“/”隔开的三个数字,其中第一个数字表明是本地汉明距离,它是维特比输入与卷积输出之间不同对应位的个数,第二个数字是本地汉明距离经过交叉变换后的值(适用于DSP处理器的指令是取大保留的情况),第三个数字是经过交叉变换后的本地汉明距离再经过对称变换后的值。例如,状态转移是“1->8”,其卷积输出为00,那么对于00的维特比输入,其汉明距离是0;对维特比输入是01的汉明距离是1;对维特比输入是10的汉明距离是1;对维特比输入是11的汉明距离是2。由于本实施例所采用的DSP处理器的加比选指令是取大保留,那么需先对上述所有的汉明距离进行交叉变换,获得变换后的本地汉明距离是2,1,1,0;再将经过交叉变换后的本地汉明距离进行对称变换,得到本地汉明距离是2,0,0,-2。
表3是维特比(3,1,4)的本地汉明距离及变换。
表3维特比(3,1,4)的本地汉明距离
  状态转移   卷积输出     不同维特比输入情况下的本地汉明距离
  000   001   010   011   100   101   110   111   区域
  0->0   000   0/3/2   1/2/1   1/2/1   2/1/-1   1/2/1   2/1/-1   2/1/-1   3/0/-2   I
  0->8   111   3/0/-2   2/1/-1   2/1/-1   1/2/1   2/1/-1   1/2/1   1/2/1   0/3/2
  1->0   111   3/0/-2   2/1/-1   2/1/-1   1/2/1   2/1/-1   1/2/1   1/2/1   0/3/2
  1->8   000   0/3/2   1/2/1   1/2/1   2/1/-1   1/2/1   2/1/-1   2/1/-1   3/0/-2
  2->1   101   2/1/-1   1/2/1   3/0/-2   2/1/-1   1/2/1   0/3/2   2/1/-1   1/2/1   II
  2->9   010   1/2/1   2/1/-1   0/3/2   1/2/1   2/1/-1   3/0/-2   1/2/1   2/1/-1
  3->1   010   1/2/1   2/1/-1   0/3/2   1/2/1   2/1/-1   3/0/-2   1/2/1   2/1/-1
  3->9   101   2/1/-1   1/2/1   3/0/-2   2/1/-1   1/2/1   0/3/2   2/1/-1   1/2/1
  4->2   011   2/1/-1   1/2/1   1/2/1   0/3/2   3/0/-2   2/1/-1   2/1/-1   1/2/1   III
  4->10   100   1/2/1   2/1/-1   2/1/-1   3/0/-2   0/3/2   1/2/1   1/2/1   2/1/-1
  5->2   100   1/2/1   2/1/-1   2/1/-1   3/0/-2   0/3/2   1/2/1   1/2/1   2/1/-1
  5->10   011   2/1/-1   1/2/1   1/2/1   0/3/2   3/0/-2   2/1/-1   2/1/-1   1/2/1
  6->3   110   2/1/-1   3/0/-2   1/2/1   2/1/-1   1/2/1   2/1/-1   0/3/2   1/2/1   IV
  6->11   011   l/2/1   0/3/2   2/1/-1   1/2/1   2/1/-1   1/2/1   3/0/-2   2/1/-1
  7->3   011   1/2/1   0/3/2   2/1/-1   1/2/1   2/1/-1   1/2/1   3/0/-2   2/1/-1
  7->11   100   2/1/-1   3/0/-2   1/2/1   2/1/-1   1/2/1   2/1/-1   0/3/2   1/2/1
  8->4   101   2/1/-1   1/2/1   3/0/-2   2/1/-1   1/2/1   0/3/2   2/1/-1   1/2/1   V
  8->12   010   1/2/1   2/1/-1   0/3/2   1/2/1   2/1/-1   3/0/-2   1/2/1   2/1/-1
  9->4   010   1/2/1   2/1/-1   0/3/2   1/2/1   2/1/-1   3/0/-2   1/2/1   2/1/-1
  9->12   101   2/1/-1   1/2/1   3/0/-2   2/1/-1   1/2/1   0/3/2   2/1/-1   1/2/1
  10->5   000   0/3/2   1/2/1   1/2/1   2/1/-1   1/2/1   2/1/-1   2/1/-1   3/0/-2   VI
  10->13   111   3/0/-2   2/1/-1   2/1/-1   1/2/1   2/1/-1   1/2/1   1/2/1   0/3/2
  11->5   111   3/0/-2   2/1/-1   2/1/-1   1/2/1   2/1/-1   1/2/1   1/2/1   0/3/2
  11->13   000   0/3/2   1/2/1   1/2/1   2/1/-1   1/2/1   2/1/-1   2/1/-1   3/0/-2
  12->6   110   2/1/-1   3/0/-2   1/2/1   2/1/-1   1/2/1   2/1/-1   0/3/2   1/2/1
  12->14   011   1/2/1   0/3/2   2/1/-1   1/2/1   2/1/-1   1/2/1   3/0/-2   2/1/-1   VII
  13->6   011   1/2/1   0/3/2   2/1/-1   1/2/1   2/1/-1   1/2/1   3/0/-2   2/1/-1
  13->14   100   2/1/-1   3/0/-2   1/2/1   2/1/-1   1/2/1   2/1/-1   0/3/2   1/2/1
  14->7   011   2/1/-1   1/2/1   1/2/1   0/3/2   3/0/-2   2/1/-1   2/1/-1   1/2/1   VIII
  14->15   100   1/2/1   2/1/-1   2/1/-1   3/0/-2   0/3/2   1/2/1   1/2/1   2/1/-1
  15->7   100   1/2/1   2/1/-1   2/1/-1   3/0/-2   0/3/2   1/2/1   1/2/1   2/1/-1
  15->15   011   2/1/-1   1/2/1   1/2/1   0/3/2   3/0/-2   2/1/-1   2/1/-1   1/2/1
由于n0=3,所以维特比译码的输入有2n0=8种,即000,001,010,011,100,101,110和111。0->0,0->8......15->15表明状态转移的情况,由于L=5,k0=1,所以共有2k0*L=32种状态转移情况。卷积输出是指在某状态转移的情况下,由于状态转移与卷积编码的一位输入有一一对应关系,卷积编码的输入确定了,再结合生成多项式计算得到的三位输出值。这一栏的内容与表1中“(3,1,4)卷积输出”的内容是相同的。“不同维特比输入情况下的本地汉明距离”一栏中的内容是用两个“/”隔开的三个数字,其中第一个数字表明是本地汉明距离,它是维特比输入与卷积输出之间不同对应位的个数,第二个数字是本地汉明距离经过交叉变换后的值(适用于DSP处理器的指令是取大保留的情况),第三个数字是经过交叉变换后的本地汉明距离再经过对称变换后的值。例如,当状态转移是“1->8”时,其卷积输出为000,那么对于000的维特比输入,其汉明距离是0;对维特比输入是001的汉明距离是1:对维特比输入是010的汉明距离是1;对维特比输入是011的汉明距离是2;对维特比输入是100的汉明距离是1;对维特比输入是101的汉明距离是2;对维特比输入是110的汉明距离是2;对维特比输入是11 1的汉明距离是3。由于本实施例所采用的DSP处理器的加比选指令是取大保留,那么需先对上述所有的汉明距离进行交叉变换,获得变换后的本地汉明距离是3,2,2,1,2,1,1,0;再将经过交叉变换后的本地汉明距离进行对称变换,得到本地汉明距离是2,1,1,-1,1,-1,-1,-2。本地汉明距离经过两次变换后,得到了种类最少的对称的本地汉明距离,有些维特比算法由于其本身的特殊性,本地汉明距离的种类会少于2L-3种。种类越少,该发明在时间开销上的优越性越明显。
在上述变换的基础上抽象出表4和表5,表明转换因子T与维特比子序列输入(SDi)的关系,并据此获得转换因子T。转换因子T是抽象出来的对应于某一维特比输入子序列的数量已经减少的本地汉明距离的集合,把转换因子T作为进行加比选运算的参数,可以节省运算时间。
T与维特比子序列输入(SDi)的关系可以用数学逻辑的方法(如布尔运算)获得,也可以用枚举的方法获得。两种方法所用的时间开销基本相当,但前者空间开销小,后者思路清晰,易扩展。
由表2可以看出,维特比(2,1,4)经过变换后的本地汉明距离有三种,即2,0,-2,但是对应于某一确定的输入子序列来说,只需用两个值0和2就可以完成32个计算,这就是转换因子T。这是因为在前四个区内,I区和II区是对称关系,III区与IV区是对称关系,而I区和III区内容相同,II区与IV区内容相同,所以前四个区可以共用一个转换因子T0;同样,后四个区可以共用另一个转换因子T1。从表4所示的维特比(2,1,4)的转换因子T与子序列输入的关系中可以得到维特比(2,1,4)的两个转换因子T0和T1。
表4维特比(2,1,4)的T与子序列输入(SDi)的关系
    SD0 SD1     T0     T1
    00     0     2
    01     2     0
    10     -2     0
    11     0     -2
维特比(2,1,4)的转换因子T与输入的关系是:
T0=(SD0-SD1)×(-2);
T1=(SD0XOR 1-SD1)×2。
同样,由表3可以看出,维特比(3,1,4)变换后的本地汉明距离有四种,即2,1,-1,-2,但是对应某一确定的输入子序列,有一个固定的四元组合就可以完成32个计算,这就是4个转换因子T0、T1、T2和T3。这是因为I区和VI区的内容相同,可以共用一个转换因子T3,;II区与V区的内容相同,可以共用一个转换因子T2;III区与VIII区的内容相同,可以共用一个转换因子T1;IV区与VII区的内容相同,可以共用一个转换因子T0。从表5所示的维特比(3,1,4)的转换因子T与子序列输入的关系中可以得到维特比(3,1,4)的四个转换因子T0,T1,T2和T3。
表5维特比(3,1,4)的T与子序列输入(SDi)的关系
    SD0 SD1 SD2     T0     T1     T2     T3
    000     -1     -1     -1     2
    001     -2     1     1     1
    010     1     1     -2     1
    011     -1     2     -1     -1
    100     1     -2     1     1
    101     -1     -1     2     -1
    110     2     -1     -1     -1
    111     1     1     1     -2
用枚举的方法即可以得到4个转换因子T0、T1、T2和T3。
对于维特比(6,1,4)的情况,它与维特比(3,1,4)相同,所以同样需要4个转换因子完成32个计算。
在获得了转换因子后,用转换因子代替本地汉明距离进行加比选运算,即将到达某一状态的两个前态的累积度量分别加或减转换因子获得两个可选值,当然一个前态的累积度量与转换因子相加,那么另一个前态的累积度量就与转换因子相减;然后比较上述两个值的大小;选择其中较小的值作为下一阶段该状态的累积度量。这一步可以用DSP处理器的加比选指令完成,如果DSP处理器没有类似的指令,也可以用基本指令组合完成此功能。
以维特比(2,1,4)为例,当输入子序列为01时,经计算得T0=2,T1=0。假设某一阶段w对应的16个状态的累积度量为ma0、ma1,......ma15,选择的DSP处理器的加比选指令是取大保留,那么阶段w+1对应的16个状态的累积度量可由下面的公式得到:
ma0’=max(ma0+T0,ma1-T0);
ma8’=max(ma0-T0,ma1+T0);完成第I区的计算
ma1’=max(ma2-T0,ma3+T0);
ma9’=max(ma2+T0,ma3-T0);完成第II区的计算
ma2’=max(ma4+T0,ma5-T0);
ma10’=max(ma4-T0,ma5+T0);完成第III区的计算
ma3’=max(ma6-T0,ma7+T0);
ma11’=max(ma6+T0,ma7-T0);完成第IV区的计算
ma4’=max(ma8+T1,ma9-T1);
ma12’=max(ma8-T1,ma9+T1);完成第V区的计算
ma5’=max(ma10-T1,mal l+T1);
ma13’=max(ma10+T1,mall-T1);完成第VI区的计算
ma6’=max(ma12+T1,ma13-T1);
ma14’=max(ma12-T1,ma13+T1);完成第VII区的计算
ma7’=max(ma14-T1,ma15+T1);
ma15’=max(ma14+T1,ma1 5-T1);完成第VIII区的计算
在具体的编程中,可以通过有效选用数据寻址方式及合理安排数据存储区来有效快捷实现上述加比选运算。

Claims (5)

1.一种维特比硬判决度量更新方法,其特征在于,包括以下步骤:
一、计算在2n0种维特比输入下所有2L个状态转移的本地汉明距离,其中L是编码器的状态寄存器的个数加1,n0是维特比输入子序列的长度;
二、不改变所有本地汉明距离的相互关系,把所有本地汉明距离按照以0为中心的对称形式进行变换;
三、计算转换后的本地汉明距离与维特比输入之间的关系,获得最多2L-3个转换因子;
四、用转换因子代替本地汉明距离进行加比选运算,即将到达某一状态的两个前态的累积度量分别加或减转换因子,获得两个可选值;比较上述两个值的大小;选择其中较小的值作为下一阶段该状态的累积度量。
2.根据权利要求1所述的维特比硬判决度量更新方法,其特征在于,所述步骤一中的本地汉明距离是根据卷积码状态转移关系和生成多项式计算所得;
(2,1,4)卷积码输出码c(2k)c(2k+1)的生成多项式是:c(2k)=u’(k)+u’(k-2)+u’(k-4);c(2k+1)=u’(k)+u’(k-1)+u’(k-3)+u’(k-4);
(3,1,4)卷积码输出码c(3k)c(3k+1)c(3k+2)的生成多项式是:c(3k)=u’(k)+u’(k-1)+u’(k-3)+u’(k-4);c(3k+1)=u’(k)+u’(k-2)+u’(k-4);c(3k+2)=u’(k)+u’(k-1)+u’(k-2)+u’(k-3)+u’(k-4);
(6,1,4)卷积码输出码c(6k)c(6k+1)c(6k+2)c(6k+3)c(6k+4)c(6k+5)的生成多项式是:c(6k)=c(6k+3)=u’(k)+u’(k-1)+u’(k-3)+u’(k-4);c(6k+1)=c(6k+4)=u’(k)+u’(k-2)+u’(k-4);c(6k+2)=c(6k+5)=u’(k)+u’(k-1)+u’(k-2)+u’(k-3)+u’(k-4);
其中,k表示卷积输入比特的序号,k=0、1、2、……;“+”代表模2加运算。
3.根据权利要求1所述的维特比硬判决度量更新方法,其特征在于,所述步骤一的本地汉明距离等于维特比输入与卷积输出之间不同对应位的个数。
4.根据权利要求1、2或3所述的维特比硬判决度量更新方法,其特征在于,在所述步骤二之前还包括,如果DSP处理器的加比选指令是取大保留,则将所有的本地汉明距离进行交叉变换,即把最大值变为最小值,最小值变为最大值,次大值变为次小值,次小值变为次大值的步骤。
5.根据权利要求1、2或3所述的维特比硬判决度量更新方法,其特征在于,所述步骤三中的转换因子可以用数学逻辑的方法获得,也可以用枚举的方法获得。
CNB021368139A 2002-08-31 2002-08-31 一种维特比硬判决度量更新方法 Expired - Lifetime CN100373778C (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CNB021368139A CN100373778C (zh) 2002-08-31 2002-08-31 一种维特比硬判决度量更新方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CNB021368139A CN100373778C (zh) 2002-08-31 2002-08-31 一种维特比硬判决度量更新方法

Publications (2)

Publication Number Publication Date
CN1479451A CN1479451A (zh) 2004-03-03
CN100373778C true CN100373778C (zh) 2008-03-05

Family

ID=34146686

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB021368139A Expired - Lifetime CN100373778C (zh) 2002-08-31 2002-08-31 一种维特比硬判决度量更新方法

Country Status (1)

Country Link
CN (1) CN100373778C (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108649966B (zh) * 2018-05-08 2021-08-06 中山大学 一种低复杂度的里德所罗门-卷积级联码迭代译码方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000244336A (ja) * 1999-02-09 2000-09-08 Nokia Mobile Phones Ltd 復号されたシンボル・シーケンスの信頼度を推定するための方法および装置
CN1288293A (zh) * 1999-09-14 2001-03-21 三星电子株式会社 使用改进追溯的两步软输出维特比算法解码器
WO2002019094A1 (en) * 2000-08-29 2002-03-07 Ntru Cryptosystems, Inc. Speed enhanced cryptographic method and apparatus

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000244336A (ja) * 1999-02-09 2000-09-08 Nokia Mobile Phones Ltd 復号されたシンボル・シーケンスの信頼度を推定するための方法および装置
CN1288293A (zh) * 1999-09-14 2001-03-21 三星电子株式会社 使用改进追溯的两步软输出维特比算法解码器
WO2002019094A1 (en) * 2000-08-29 2002-03-07 Ntru Cryptosystems, Inc. Speed enhanced cryptographic method and apparatus

Also Published As

Publication number Publication date
CN1479451A (zh) 2004-03-03

Similar Documents

Publication Publication Date Title
EP0152947B1 (en) Viterbi decoder with the pipeline processing function
JP3391251B2 (ja) 適応確率推定方法及び適応符号化方法並びに適応復号方法
US4583078A (en) Serial Viterbi decoder
EP1102408B1 (en) Viterbi decoder
CN101997553B (zh) 一种卷积码译码方法及装置
EP0448809A2 (en) A bit serial viterbi decoder add/compare/select array
CN1433589A (zh) 减小的搜索符号估值算法
JP3549519B2 (ja) 軟出力復号器
KR20010050871A (ko) 이동통신시스템의 구성 복호기 및 방법
CN100413217C (zh) 一种维特比译码器及用于维特比译码器的加比选单元电路
KR20020048975A (ko) 비터비 디코더 용 고속 acs 유닛
EP1650874A1 (en) Viterbi decoder
US8566683B2 (en) Power-reduced preliminary decoded bits in viterbi decoders
GB2315001A (en) Viterbi decoder for depunctured codes
US6792570B2 (en) Viterbi decoder with high speed processing function
CN100499379C (zh) 一种卷积码译码方法
CN100373778C (zh) 一种维特比硬判决度量更新方法
CN101145790B (zh) 译码器、相加-比较-选择单元和其方法
US6351839B1 (en) State metric memory of viterbi decoder and its decoding method
US7046747B2 (en) Viterbi decoder and decoding method using rescaled branch metrics in add-compare-select operations
CN1446406A (zh) 在高速acs维特比译码器实现的存储器中有效读取和存储状态量度的方法和设备
CN108471341B (zh) 一种卷积编解码的方法
CN100505557C (zh) 基于Viterbi译码的多路并行循环块回溯方法
CN106452461A (zh) 一种通过矢量处理器实现viterbi解码的方法
JP4049620B2 (ja) ビットシーケンスを復号するための方法および装置

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
CX01 Expiry of patent term

Granted publication date: 20080305

CX01 Expiry of patent term