对于维特比译码器实施的快速量度计算的制作方法

文档序号:7504856阅读:206来源:国知局
专利名称:对于维特比译码器实施的快速量度计算的制作方法
技术领域
本发明涉及一种用于有效地计算在通信系统中在维特比软译码器里的量度距离。比如宽带CDMA系统,其中将基站中的维特比译码用于译码自移动站传来的卷积编码信息。
维特比算法是用于在通信系统中对卷积码进行译码的一种熟知的技术。

图1提供了在通信系统中这种算法应用的概况。如这里所示,使用卷积编码器10将输入序列转换为码字序列。这个编码器10接受输入序列的K比特块并产生以相同时间单位的n符号块的码字序列。将k/n的比率R称为码率。例如,在宽带CDMA中,通常使用两个码率R=1/2和R=1/3。正如在该技术领域中所知的,可采用移位寄存器,模2加法器和乘法器来实施该编码器。
然后用调制器20(例如,采用相位,频率或幅度调制),然后发送到通信信道30上。信道30经受诸如加性高斯白噪声(AWGN)等的噪声40的影响,可能使发送的信息变坏。解调器50接收该发送的信息并产生输出r,它可是分立的(量化的)信号。硬判决解调器作发送的为0或为1的肯定判决。可替代的,软判决解调器解调所接收的信息,并还提供关于该解调信息的置信度的附加信息。这补充了提供给解码器60的信息,并因而改善了该译码器60的性能。
译码器60和相关联的存储器70实施维特比算法。可将该算法本身描述为对在无记忆噪声中观察到的分立时间有限状态马尔科夫过程的状态序列的估算问题的递归最佳解答。请见,例如,Forney的“维特比算法”Proc.IEEE.Vol.6,1973年3月pp.268-278。该算法找到通过给定一组观测的格构的最短路径。该格构是一个时标状态图表。每个节点对应于给定分立时间上的状态。将连接该格构中节点的线路称为分支。它对应于从一个状态到另一个状态的过渡。
将费用分配给连接该格构中的节点的分支。这些费用,或量度由负对数似然函数(negative log likelihood function)给出。它近似由1z-y12表示,其中2是代表观测输出的信号,而y是代表状态之间过渡的实际输出的信号。另外,可将噪音的输出量化为3或4个比特,可由绝对差测量近似表示该分支量度。注意,Heller等的“对于卫星和空间通信的维特比译码”IEEE Trans,CommunicationTecnology,Vol,CPMM-19,No.5,0ct,1971,pp.835-848。更具体地,将用于确定该量度的对数似然函数减到诸如汉明距离的最小距离测量。该汉明距离提供了在该算法观测的符号和该编码器使它按照给定的输入序列产生的符号之间差的位数量的测量。
在图2中为说明之日的示出了维特比译码的格构的部分。在左边的两个节点代表在时间t的两个状态,而在右边的两个节点代表在时间t+1的两个状态。正如这里所示,有两个导致到时间t+1的0状态的路径,例如,连接时间t的0状态到时间t+1的0状态的第一路径,和连接时间t的1状态到时间t+1的0状态的第二路径。这些路径与该卷积编码器的码字相联系。另外,两个路径具有与此有关的量度(或路径长度),例如,分别为pd0和pd1。
实际的维特比算法包含递归地执行加-比较-选择程序,参考图3可更好地了解。在加操作中,将与时间t的状态0相关的累加量度m0加到(使用加法器80)与从时间t的状态0到时间t+1的状态0的过渡相关的量度pd0上。将与时间t的状态1相关的累加量度m1加到(使用加法器90)与从时间t的状态1到时间t+1的状态0的过渡相关的量度Pd1。比较模块100确定是否加法器80的输出大于加法器90的输出,或反之,选择器110选择其较小的累加量度。同时,这个加-比较-选择模块一个产生最小的累加量度的输入路径的指示。
对于每个格构步骤中的所有状态重复这个程序(未示出)。另外,将所示的该格构步骤的输出用作随后的格构步骤(未示出)的输入。对于任何时间t,有M个残存的路径(例如,为下一个格构步骤保留的路径)。当状态序列很长时,必须切掉残存到某个易管理的长度s,如上面参考的Forney的文章中所描述的。通过递归地选择最短的路径。该算法重新构建通过该格构的最可能路径。它将对应于在信号被噪音恶化之前实际的发送序列。
在实际上,在实施维特比软译码时,可用包括4位字的软输入值。这是因为与硬判决维特比译码相比,4位已是够改善在SNR上近于2dB的译码器性能。例如,对于卷积码率R=1/3,4个位的3个软输入字每个表示一个信息比特。由r0,r1和r2表示该3个输入字。
参考图2,对于上述3个字软输入例子的量度pd0是Pd0=d(r0;0)+d(r1;0)+d(r2;0),而量度Pd1=d(r0;1)+d(r1;1)+d(r2;1)。在这两个等式中的单个操作数代表软输入4位字与两个可能的码字之间的距离。每个码字涉及关于2L个状态输出的格构图表中的一个路径,其中L是该码的约束长度(例如此处为L=9)。
该技术领域的已知状态是分别执行距离计算d(r0,1),d(r1,1),d(r2,1)等等。另外,已知可在诸如采用16位数字的信号处理器等的16位硬件上执行这些计算。这意味着,对于采用4位操作数的每个计算,有一个没有用的16位数字处理器的有效部分,因此浪费了。因为该解码器没有充分地利用它的资源,故这种16位硬件的非有效使用负面地影响了该译码器的性能。
改善该算法的速度的一个已知方案是采用多数字信号处理核心并行地执行该算法的某些部分。然而,这有要求附加硬件的消极结果,而仍然不能有效地使用所占用的硬件。
因此,本发明的一个目的是更有效地利用16位硬件来执行维特比处理,从而改善维特比译码器的速度和资源利用。
通过将多个软输入字组装(即,集中)成一个n位的复合软输入字并整个地处理这个复合软输入字,达到了本发明的这些和其它目的。
更具体地说,本发明涉及一种用于确定在译码算法中的量度的方法和装置。例如,基于多个m位软输入字,使用一个n位处理模块的维特比算法(其中n≥2×m)。该技术包括接收多个m位软输入字;将至少两个该多个m位软输入字组装成一个单一的n位复合软输入字;计算在该复合软输入字中的该至少两个软输入字与期望的码字值之间的各个距离以产生复合的距离字;将各个距离加在一起以产生该量度;各抽取该量度。该n比特处理模块可包括一个使用16位字的16位处理模块,而这些m位软输入字每个包括一个4位字。整个处理该多个软输入字增加了该译码器的速度和信息传输率,并减少了该译码器的存储需求。
根据一个示例性实施方案,该译码器可对已经以R=1/3的速率卷积编码的信息进行译码,在这种情况,将3个4位字组装成一个16位字,这些字之间有两比特的分离器。
该计算步骤包括子步骤从存储器中检索一个n位码字屏蔽字,该码字屏蔽包括提供与各个软输入字相关的预期码字值的字段;将该码字屏蔽字与该复合软输入字进行异运算。
该求和的步骤包括子步骤将该复合距离字乘以一个抽取字以产生一个积字。该抽取步骤包括子步骤从该积字的子字段中抽取该量度。对于该实施方案,其中将至少两个软输入字组装在一个16位字中,在相邻的软输入字之间用2位隔离器,该抽取字是0001000001000001。
现在将结合下面附图描述本发明。其中图1表示使维特比译码器的通常通信系统的概观;图2表示一个格构图表的部分;图3表示在维特比译码器中使用的通常加-比较-选择模块;图4表示如何确定在软输入4位字与预期的码字值之间的距离;图5表示作为它的各个比特值的函数的软输入4位字的可靠性;图6表示包括其中含有的3个4位软输入字的软复合字(ISW);图7表示复合码字屏蔽字(CWM);图8表示通过ISW字与CWM字的异运算产生的复合距离字(DW);图9表示使用乘法运算将DW字中的各个字段加在一起的方式;图10表示根据本发明的示例一种用于计算量度的算法。
在软判决维特比译码器里,通过应用对于每个路径的下面公式做路径码字与K真实软输入值yi之间的距离计算Σi=1k(yi,xi)]]>其中xi表示根据计算的两个状态之间的格构过渡假设的比特。另外,xi表示{-1,1}和正好求非该输入值yi对于(xi=-1)的一个成分,或舍去该软输入未动的值(xi=1)。K是每个信息位的码位的数量。
为了计算所接收的软字rn和预期的码字位之间的距离,将该输入字值视为根据上述公式如图4所示。正如这里所示,在期望“0”和软输入字之间的距离d简单地为该字的整数值,如果“1”是所期望的,则该软输入字的位取反代表距离d。如图5中所示,大的距离值对应于到该期望值的大距离。因此,该期望值可靠性差。小距离值对应于期望值的高可靠性。将r0,r1和r2与期望值(例如0或1)之间的距离分别称为d0,d1和d2。
图6-9表示以非递归方式使用16位运算硬件如何计算距离d0,d1和d2。更具体地说,参考图6,对于R=1/3,将3个输入字存储在一个16位字(ISW)中,在每个字之间有2个0位的分离器。将这个操作称为“集中”或“组装”。当R=1/2时,将r2软输入字置为零,例如r2=“0000”。
如图7中所示,由称为CWM(码字屏蔽)的位屏蔽码字来表示期望值信息。在CWM中的每个字段是4位长,也由分离位(包括两个相邻的“0”位)分开。将所有的位0-3设置为同样的值以便匹配CW(0)位;也就是,如果期望值是“0”,将位0-3都置为0。对于位6-9和12-15同样成立,分别将它们都置成CW(1)和CW(2)的值。然而,如果码率为R=1/2,则将位12-15都置为“0”就错了。
考虑该码字屏蔽的源,可最好对于所有不同的状态一次产生这个屏蔽,以节省“状态数-码字的计算”。这在数字信号处理器上耗费很多时间。因此,可用该状态数作为偏置从内部数据存储器对该CWM加载。对于所公开的方法,只需一个加载指令从存储器中得到16位CWM。而通常这需要3个加载指令。
为了计算该距离,用ISW字对CWM字进行异运算。通过如果CW[n]=0让它们为原样的而如果假设的码字CW[n]=1对它们逐位求逆,则一个XOR操作已足够修改该3个软输入字。在图8中示出了结果的距离字DW。正如所示,这个字具有嵌入其中的距离d0,d1和d2,由2位“0”分离缓存来分离。
为了将这些距离加在一起,用距离乘码字DMC=212+26+20=0001000001000001,这里也称为“抽取字”,来乘该DW。在图9中表示了这一点。如所示,这个乘具有在该乘结果中的位12-17产生和Pd=d0+d1+d2的作用。因此对于两个加只需一个指令,而一些通常的系统需要两个指令(即,一些加法器只有两个输入,因此需要至少两个指令来执行包含多于两个操作数的运算)。最后,可用一个抽取(EXT)命令从该乘结果中抽取这个和到一个寄存器。
图10以流程图的形式给出了上述技术的概述。在步骤S10,用3个或2个软输入字(分别对于1/3和1/2码率)组装成16位字。然后,在步骤S20从存储器对该CWM字加载。跟着加载,在步骤S30用ISW字对该CWM字进行异运算,跟着在步骤S40通过乘运算进行距离求和。最后,在步骤S50抽取出该和(描述在该格构中从一个状态向另一状态过渡的可能性)。
上述技术的优点是,一旦产生了ISW字则只用四个操作(例如,加载,异运算,乘和抽取步骤)。通常,需8个操作来产生同样的结果,例如,用于加载软输入字的3个操作,用于计算距离的3个操作,和用于将这些距离相加的两个操作。换句话说,当采用本发明的方法时可节省4个指令。如上所述,通过从存储器中加载CWM可节省另两个指令。
该6个节省指令的代价是在16位输入字中组装3个输入字(步骤S10)。但采用这个方法,最好将4位值组装。对于通常目的的数字信号处理器的最小输入字大小是8位。因此,在背景技术中描述的通常方法每个输入值浪费至少4位;用所建议的方法,每3个软输入值(每个具有4位)只有4位未用。
由于字r0,r1和r2的这种组装,连接前面接收机部分的双端口RAM可只有通常方案中所用的RAM(例如存储器70)的67%的大小。另外,当使用串联时,数据传输率从8位/值降低到5.3位/值,与通常的传输技术相比显著地更有效了。
更具体地,可将本发明的示范性优点综合如下。可将指令的数量减到一些通常译码器中所用指令数量的5/11=45%。可将用于存储软输入值和码字屏蔽(CWM)的RAM减少到一些通常译码器中所用的RAM存储器的(16/3)(8*3/3)=67%。同样,可将从前面部件得到的数据传输率减少到一些通常译码器的数据传输率的(16/3)(8*3/3)。
已经在用R=1/2或1/3的码率卷积编码数据的维特比译码的示范性实施方案的角度上描述了本发明。然而,本发明并不限于此。以其它的码率,在其它类型的译码算法(例如,其它MLSE算法)中,也可应用这种技术。
这种技术的一个应用是用于宽带CDMA系统。例如,在基站中可用本发明对经CDMA调制从移动站传输的卷积编码信息进行译码。也可将本发明用在移动站中。然而,可将本发明用在其它传输协议中,甚至发现用在非通信应用中(在自存储介质的信息的存储和检索中)。
可根据图1中所示的基本系统结构来实施本发明,对译码器60进行合适的编程变化,以完成图10中所示的算法。执行图10中所示的算法的逻辑可包括一串在译码器60中存储的微指令。另外,用于完成图10的算法的译码器60可采用分立的逻辑部件。
可根据任何16位运算处理器来实施该译码器60,例如由TexasInstruments生产的TMS 320C6201,该存储器70可包括上述的双端口RAM存储器。然而,一般本发明使用具有n位数字的任何译码器,其中n≥2×m,这里m是软输入字的位长。即,还可将软字组装技术用在不利用16位结构的其它类型处理器中,只要其处理器的字长足够容纳至少两个软输入字。
保持所公开和宣称的基本原则的其它修改和改善都在本发明的范围之内。
权利要求
1.一种采用n位处理模块基于多个m位软输入字确定在译码算法中的量度的方法,其中n≥2×m,该方法包括步骤接收所述多个m位软输入字;将所述多个m位软输入字的至少两个组装到一个单一的n位复合软输入字中;计算在该复合软输入字的至少两个软输入字与期望的码字值之间的各个距离,以便产生复合距离字;将这些各个距离加在一起以产生该量度;和抽取该量度。
2.根据权利要求1的方法,其中所述的译码算法是维特比算法。
3.根据权利要求1的方法,其中所述的n位处理模块包括一个采用16位字的16位处理模块。
4.根据权利要求3的方法,其中所述的m位软输入字每个包括一个4位字。
5.根据权利要求4的方法,其中所述译码算法对已用R=1/3的速率卷积编码的信息进行译码,并将3个4位字组装到一个16位字中。
6.根据权利要求4的方法,其中所述的译码算法对已用R=1/2的速率卷积编码的信息进行译码,并将2个4位字组装到一个16位字中。
7.根据权利要求4的方法,其中将分离器位插在16位字中所组装的软输入字之间。
8.根据权利要求7的方法,其中该分离器位包括两个相邻位。
9.根据权利要求1的方法,其中所述的计算步骤包括子步骤从存储器中检索一个n位码字屏蔽字,所述的码字屏蔽字包括提供与所述各个至少两个软输入字关联的期望码字值的字段;和用该复合软输入字对该码字屏蔽字进行异运算。
10.根据权利要求1的方法,其中所述的求和步骤包括子步骤用抽取字乘该复合距离字以产生积字。
11.根据权利要求10的方法,其中所述的抽取步骤包括子步骤从该积字的子字段中抽取所述量度。
12.根据权利要求10的方法,其中将至少两个软输入字组装在一个16位字中,相邻的软输入字之间有两位的分离器,并且其中所述的抽取字是0001000001000001。
13.一种使用n位处理模块基于多个m位软输入字确定在译码算法中的量度的装置,其中n≥2×m,该装置包括用于接收所述多个m位软输入字的逻辑电路;用于将所述多个m位软输入字的至少两个组装到单一的n位复合软输入字的逻辑电路;用于计算在该复合软输入字中的该至少两个软输入字与期望码字值之间的各个距离以产生复合距离字的逻辑电路;用于将该各个距离加在一起以产生该量度的逻辑电路;和用于抽取该量度的逻辑电路。
14.根据权利要求13的装置,其中所述的译码算法是维特比算法。
15.根据权利要求13的装置,其中所述的n位处理模块包括一个使用16位字的16位处理模块。
16.根据权利要求15的装置,其中所述的m位软输入字每个包括一个4位字。
17.根据权利要求16的装置,其中所述的译码算法对已用R=1/3的速率卷积编码的信息进行译码,并将3个4位字组装到一个16位字中。
18.根据权利要求16的装置,其中所述的译码算法对已用R=1/2的速率卷积编码的信息进行译码,并将2个4位字组装到一个16位字中。
19.根据权利要求16的装置,其中将分离器位插在组装到16位字里的软输入字之间。
20.根据权利要求19的装置,其中该分离器位包括两个相邻位。
21.根据权利要求13的装置,其中所述用于计算的逻辑电路包括子逻辑电路,用于从存储器中检索n位码字屏蔽字,所述的码字屏蔽包括提供与所述各个至少两个软输入字相关的期望码字值的字段;和将该码字屏蔽字与该复合软输入字进行异运算。
22.根据权利要求13的装置,其中所述的求和逻辑包括用于将该复合距离字与抽取字相乘以产生积字的子逻辑电路。
23.根据权利要求22的装置,其中所述的抽取逻辑包括用于从该积字的子字段中抽取所述量度的子逻辑电路。
24.根据权利要求22的装置,其中将至少两个软输入字组装到一个16位字中,在相邻的软输入字之间有两位分离器,其中所述的抽取字是0001000001000001。
全文摘要
一种使用n位处理模块基于多个m位软输入字(其中n≥2×m)确定在诸如维特比算法的译码算法中的量度的方法和装置。该技术包括:接收多个m位软输入字;将该多个m位软输入字的至少两个组装到单一的n位复合软输入字中;计算在该复合软输入字的该至少两个软输入字与期望码字值之间的各个距离以生成复合距离字;将该各个距离加在一起以产生该量度;和抽取该量度。该n位处理模块包括一个采用16位字的16位处理模块,该m位软输入字每个可包括一个4位字。整个处理该多个软输入字增加了该译码器的速度和信息传输速率,并减少了该译码器的存储器需求。
文档编号H03M13/41GK1310884SQ99808940
公开日2001年8月29日 申请日期1999年7月15日 优先权日1998年7月22日
发明者S·皮尔梅尔 申请人:艾利森电话股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1