一种维特比译码器状态度量初始化的方法和装置的制作方法

文档序号:7925075阅读:443来源:国知局
专利名称:一种维特比译码器状态度量初始化的方法和装置的制作方法
技术领域
本发明涉及通讯领域中宽带码分多址系统,特别是涉及宽带码分多址系统中维特比译码器状态度量初始化的方法和装置。
在数字移动通信系统中,如何降低误码率,提高通信质量是一个很关键的问题。在第三代移动通信系统(3G)的建议标准中明确提出采用约束长度K为9;编码速率R为1/2或1/3的卷积码作为信道纠错码之一。在解码方面,经典的维特比算法根据最大似然译码原理,在所有的路径中求取与接受序列最相似的一条(距离最小的一条),进行路径回溯获得判决输出,该方法已经被证明具有最佳纠错译码性能。维特比算法主要有路径度量的“加比选”(ACS)运算、度量的更新、路径的更新、最大似然路径的回溯等过程组成。
用公式表示维特比算法如下Bmn(t)=s1mn·r1(t)+s2mnr2(t)(1)Mn(t)=maxm[Mm(t-1)+Bmn(t)]---(2)]]>Hn(t)=[Hm(t-1),LSB(t)]m为最佳老状态,(3)其中Mn(t)是状态度量;Bmn(t)是状态从m到n转换的分支度量;Hn(t)表示状态路径。simn为可能信道码符号;ri(t)为接收码符号。称(2)为加比选运算。在某一时刻,对所有状态应用式(1)-(3),这个过程即为维特比译码。
从公式(2)中可以看到,状态度量需要初始化。使用硬件来实现维特比译码器时,如果采用传统的初始化方法对状态度量存储器进行初始化,要产生额外的初始化周期,周期的长度与K值的选取有关,一共要2K-1个初始化周期,K值越大,初始化的时间成倍增加。在使用多个蝶型进行维特比解码和译码块长度比较小时,初始化的时间不容忽略。而且需要另外设计较为复杂的初始化地址产生和控制电路,加大了电路设计的复杂性,增加了硬件实现的成本。
目前还没有专门论述维特比译码器状态度量初始化方面的文献。
本发明的目的是提出一种不占用译码时间的,占用芯片资源较少的维特比译码器状态度量初始化方法。
本发明的另一个目的是提出一种在在宽带码分多址(WCDMA)系统中实现上述方法的装置。
本发明的维特比译码器状态度量初始化方法是按以下方案实现的,包括以下步骤1.从外部读入译码比特,进行分支度量的计算,计算方法如下Bmn(t)=s1mn·r1(t)+s2mnr2(t)(1)Bmn(t)表示状态从m到n转换的分支度量;simn为可能信道码符号;ri(t)为接收码符号。
2.通过选择器控制电路,读取状态度量的初始化数据。
3.利用分支度量和初始的状态度量进行状态度量计算,计算方法如下Mn(t)=maxm[Mm(t-1)+Bmn(t)]---(2)]]>4.判断是否计算完256个状态,如果完成,进行下一步,否则跳转到第一步。
5.进行正常的译码周期从外部读入译码比特,根据公式(1)计算分支度量,读取前一状态的状态度量,进行状态度量的计算,直到所有译码比特计算完毕。
本发明的装置是通过以下技术方案实现的WCDMA中基于以上方法的维特比译码器状态度量初始化装置,包括状态度量计算模块310,状态度量存储模块330和控制模块320;状态度量计算模块310包括分支度量计算模块,加比选(ACS)模块,状态度量接口电路模块。将读入的译码比特,送到分支度量计算模块计算分支度量,然后送到加比选(ACS)模块计算出状态度量,同时状态度量接口电路模块产生读写信号控制状态度量存储模块的读写;状态度量存储模块包括2块独立的存储区331,332;读写地址选择器335,337;缓冲器336,338;在读周期,通过读写地址选择器335和337选通读地址,将两块存储区331和332的数据送到缓冲器336和338,读出上一时刻的状态度量,给状态度量计算模块310使用,然后通过读写地址选择器335和337选通写地址,将状态度量计算模块310计算出来的状态度量经缓冲器336和338写入存储区中;控制模块包括选择器控制信号产生模块322,初始化数据产生模块323,选择器模块324;控制信号产生模块322产生初始化数据的选择信号,送到选择器模块324在初始化周期通过选择器选通初始化数据产生模块323产生的数据到状态度量计算模块310;所述的状态度量计算模块读取译码数据,上一状态的状态度量或者状态度量初始化数据,进行分支度量计算后,经过加比选,计算出状态度量和转移路径,储存在另外的状态度量存储区中;控制模块控制状态度量的读写,包括初始的状态度量的读取。
下面结合附图和实施例进一步说明本发明。


图1是本发明维特比译码器的功能方框图;图2是传统状态度量的计算与存储组织结构图;图3是本发明采用的状态度量的计算与存储组织结构图;图4是本发明的方法流程图;图5是传统状态度量初始化时序图;图6是本发明状态度量初始化时序图。
图1是维特比译码器的功能方框图。它主要由输入缓存及选择101、分支度量计算102、加-比-选(ACS)电路103、状态度量存储104、幸存路径存储105、回溯单元106以及时序产生107等部分组成,它们的主要作用如下输入及分支度量计算电路(101,102)它将接收的数据按分支度量计算公式算出每种可能的度量值,包括分支形成电路,分支度量计算,同步控制及有关时序电路等。
状态度量计算单元ACS(相加—比较—选择)103对于约束长度K的卷积码,其状态数N=2K-1,对应的有2K-1个ACS运算单元,2K-1个判据寄存器,最佳状态度量译码电路及度量溢出检测电路等。
状态度量存储单元104用于存储状态度量值。
幸存路径存贮单元105它包括N=2K-1个位数为5-7倍约束长度的存贮器RAM,读/写地址产生器,最佳路径选择译码器,数据缓冲器等部分。在串行运算时,若用L个ACS电路,则路径存贮器可减少为原来的1/N。
回溯单元106译码结束后,从后往前回溯出译码结果。
时序产生电路107为所有的单元提供运算的时序。
译码器采用维特比译码算法在帧模式下对每一帧以约定的数据率对已同步和量化的码符号进行译码。
图2是本发明的状态度量的计算与存储组织结构图其中分支度量计算单元102、加-比-选电路ACS103、状态度量存储电路104它的工作方式如下某一时刻,维特比译码器从外部读入一个数据,由201进行分支度量的计算,同时由201产生一个读地址,将上一时刻状态度量的值从一个存储区(假设为211存储区A)读出,进行计算累加后将结果存储在另外的存储区(212存储区B)中,到了下一时刻,将存储区翻转,从存储区B(212)中将状态度量读出,进行计算累加后将结果存储在存储区A(211)中,如此一直到所有译码数据处理完。在每组译码数据的第一次运算之前必须将存储区进行初始化,传统的方法是由初始化地址产生器202在运算开始前产生地址信号,由初始化数据产生器203产生初始化数据,由状态度量储存器接口电路201产生写信号,通过选择器控制204选通选择器205、206、207、209将初始化数据写入状态度量存储区(211或者212)。状态度量存储区的大小为状态数N=2K-1,对于3GPP的建议,K选择9,一共有256个状态,也就是说要产生256个地址,进行256次写操作才能够完成初始化工作。如果使用硬件来实现维特比译码器时,这样做要耗费较多的芯片资源,以及引入了额外的256个初始化周期,占用译码时间。
图3是本发明的本发明采用的状态度量的计算与存储组织结构图;发明包括分支度量计算、ACS电路、状态度量存储器接口电路310,用来读入译码比特,计算出状态度量,控制状态度量存储模块的读写;状态度量存储模块330(包括2块独立的存储区331,332;读写地址选择器335,337;缓冲器336,338),用来选通读地址,读出上一时刻的状态度量,给状态度量计算模块310使用,然后选通写地址,将计算出来的状态度量写入存储区中;控制模块320(包括选择器控制信号产生模块322,初始化数据产生模块323,选择器模块324)用来产生初始化数据的选择信号,在初始化周期通过选择器选通初始化数据产生模块产生的数据。与传统的组织结构相比,省略了初始化地址发生器和一些选择器。本发明通过了一个选择器对状态度量的选择,并通过选择器控制单元产生控制选择器的时序,读取状态度量初始化值,从而避免了额外的资源和初始化占用的译码时间。某一时刻,维特比译码器从外部读入一个数据,由310进行分支度量的计算,同时由310产生一个读地址,将上一时刻状态度量的值从一个存储区(假设为331存储区A)读出,进行计算累加后将结果存储在另外的存储区(332存储区B)中,到了下一时刻,将存储区翻转,从存储区B(332)中将状态度量读出,进行计算累加后将结果存储在存储区A(331)中,如此一直到所有译码数据处理完。在每组译码数据的第一次运算时,由选择器控制单元322产生控制信号,控制选择器324选通初始化数据模块323的数据,因此ACS计算电路310读取的就是初始化的数据,从而省略了初始化地址产生电路和初始化数据写入的时间,节省了芯片的面积,提高译码效率。
图4是本发明的方法流程图;步骤402判断是否处于初始化状态,如果处于初始化状态,则由步骤404读入初始化状态数据,否则由步骤403读入上一个状态度量值,在控制电路405的控制下,数据通过选择器406送入分支度量计算和状态度量计算存储步骤407;经过步骤401读入的译码数据同时送入步骤407,经过步骤407后,就可以计算出状态度量。
图5为传统的状态度量初始化时序图;当译码开始时,由选择器204,205,206控制初始化周期,首先往状态度量存储器211(或者212)写入初始化数据电路203产生的初始化数据,对于3GPP的建议,K选择9,一共有256个状态,所以要产生256个地址和256个写信号。初始化完成后,就可以进行译码了,初始化后的周期为译码周期,开始从状态度量存储器211(或者212)中读取状态度量,累加上ACS(加比选)单元201的计算结果存储到另外的一个状态度量存储区212(或者211),同时将路径转移信息存储到幸存路径存储区105。
图6为本发明采用的状态度量初始化时序图当译码开始时,由选择器322,324控制选通初始化数据电路323产生的初始化数据,此时分支度量及ACS计算电路310读入的数据就是初始化的数据,可以直接进行译码操作,累加上分支度量及ACS计算电路单元310的计算结果存储到状态度量存储区331(或者332),同时将路径转移信息存储到幸存路径存储区105。通过比较,可以看出本发明节省了状态度量的初始化的写周期。
本发明已经通过了大规模现场可编程门阵列FPGA实现,并且通过了功能的验证。本发明使用硬件设计维特比译码器,减少初始化状态度量存储器所要产生初始化地址耗费的额外资源,节省初始化状态度量寄存器占用的译码时间,可以提高系统的集成度,并且给后续处理更多的处理时间。因为维特比译码器的应用非常广,不但在移动通信领域(包括GSM,CDMA,WCDMA),在卫星通信,图象传输等都有应用,本发明可以根据这些领域的标准要求稍微改动,就可以完全适用。
权利要求
1.一种在WCDMA系统中维特比译码器状态度量初始化的方法,其特征在于包括以下步骤步骤1从外部读入译码比特,计算分支度量;步骤2通过选择器控制电路,读取状态度量的初始化数据;步骤3利用分支度量和初始的状态度量进行状态度量计算;步骤4判断是否计算完256个状态,如果完成,进入步骤5,否则跳转到步骤1;步骤5进入译码周期。
2.根据权利要求1所述的WCDMA系统中维特比译码器状态度量初始化方法,其特征在于所述步骤1中计算分支度量是按下式进行的Bmn(t)=s1mn·r1(t)+s2mnr2(t)其中,Bmn(t)表示状态从m到n转换的分支度量;simn为可能信道码符号;ri(t)为接收码符号。
3.根据权利要求1所述的WCDMA系统中维特比译码器状态度量初始化方法,其特征在于所述的步骤3利用分支度量和初始的状态度量进行状态度量计算,按下式进行的Mn(t)=maxm[Mm(t-1)+Bmn(t)]]]>。
4.根据权利要求1所述的WCDMA系统中维特比译码器状态度量初始化方法,其特征在于所述的步骤5进入译码周期分为下面步骤从外部读入译码比特,根据公式Bmn(t)=s1mn·r1(t)+s2mnr2(t)计算分支度量,读取前一状态的状态度量,进行状态度量的计算,直到所有译码比特计算完毕。
5.一种在WCDMA系统中维特比译码器状态度量初始化的装置,其特征在于包括状态度量计算模块(310),状态度量存储器(320),和控制模块(330);状态度量计算模块(310)通过控制模块(330)从状态度量存储器(320)中选择读取的前一时刻状态度量或者初始化状态度量,计算完成后将状态度量送到状态度量存储器(320)中保存;所述的状态度量计算模块(310)包括分支度量计算模块,加比选(ACS)模块,状态度量接口电路模块;将读入的译码比特,送到分支度量计算模块计算分支度量,然后送到加比选(ACS)模块计算出状态度量,同时状态度量接口电路模块产生读写信号控制状态度量存储模块的读写;所述的状态度量存储器(320)包括两块独立的存储区(331)和(332),读写地址选择器(335)和(337),缓冲器(336)和(338);在读周期,通过读写地址选择器(335)和(337)选通读地址,将两块存储区(331)和(332)的数据送到缓冲器(336)和(338),读出上一时刻的状态度量,送至状态度量计算模块(310)使用,然后通过读写地址选择器(335)和(337)选通写地址,将状态度量计算模块(310)计算出来的状态度量经缓冲器(336)和(338)写入存储区中;所述的控制模块(330)包括控制信号产生模块(322),初始化数据产生模块(323),选择器模块(324);控制信号产生模块(322)产生初始化数据的选择信号,送到选择器模块(324)在初始化周期通过选择器选通初始化数据产生模块(323)产生的数据到状态度量计算模块(310);所述的状态度量计算模块(310)读取译码数据,上一状态的状态度量或者状态度量初始化数据,进行分支度量计算后,经过加比选,计算出状态度量和转移路径,储存在另外的状态度量存储区中,所述的控制模块(330)控制状态度量的读写,包括初始的状态度量的读取。
6.根据权利要求5所述的WCDMA系统中维特比译码器状态度量初始化的装置,其特征在于所述的状态度量计算模块(310)读取译码数据,是通过控制模块(330)直接读取初始化数据产生模块(323)所生成的数据。
全文摘要
本发明公开一种不占用译码时间的,占用芯片资源较少的Viterbi译码器状态度量初始化方法和装置。所述方法采用选择器来选择上一时刻的状态度量或者初始化状态度量来节省初始化的时间和减少初始化电路占用资源。所述的装置是利用大规模可编程逻辑器件实现。本发明使用硬件设计Viterbi译码器,减少初始化状态度量存储器所要产生初始化地址耗费的额外资源,节省初始化状态度量寄存器占用的译码时间,提高系统的集成度,并且给后续处理更多的处理时间。
文档编号H04L1/00GK1355620SQ00127580
公开日2002年6月26日 申请日期2000年11月24日 优先权日2000年11月24日
发明者周海涛 申请人:深圳市中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1