通用的卷积编码器和维特比译码器的制作方法

文档序号:7690929阅读:229来源:国知局
专利名称:通用的卷积编码器和维特比译码器的制作方法
技术领域
本发明属于移动通讯技术领域,尤其涉及通用的卷积编码器和维特比译码器。
卷积编码所对应的译码算法很多,其中最有效、最实用的译码算法为最大似然译码,即维特比译码算法。传统的维特比译码算法有两种六七十年代提出的结尾维特比译码算法以及为克服维特比译码算法需要存储量大的缺点而提出的截短维特比译码算法。由于WCDMA系统中卷积编码适应的业务速率从译码存储量较小的8千比特/秒(kbps)的话音业务,到译码存储量较大的更高速率的数据业务不等,故本发明重点对结尾和截短算法进行研究。
在分别用软件实现这两种译码算法的过程中,发明人意识到,移动通信系统之所以具有有目共睹的勃勃生机,正是由于其所能提供的多种多样的、高质量的业务。而若对不同的业务采用不同的译码算法和译码器结构,在实际实现起来必然有诸多不便。倘若采用通用的卷积编码器和软判决维特比译码器结构,针对不同的业务只需对译码器配置不同的参数,如帧长、码率和译码约束长度及生成多项式,则对系统实现具有不同寻常的意义。
进而,发明人又想到,能否在此基础上设计一种更加通用的软判决维特比译码器。即使译码器能适应不同类型的信道环境,因为对于不同的信道环境,译码算法可能要做适当的调整。因此,本发明提出了一种帧长、码率、约束长度、生成多项式和信道类型可选的通用的维特比译码器。以及与此相对应,设计一种码率、约束长度、生成多项式可便的通用的卷积编码器。这一设计,将弥补目前移动通信系统中特定的编译码器只能用于特定的业务的不足,只需从接口电路传给译码器一些参数,即可实现对多种业务的编译码。
为了确认本发明的新颖性和独创性,发明人查阅了大量的资料,检索了1985年到1999年各发明专利库中的国内和国际的相关专利。共检索到几十篇文章。发现,近期的专利或是对维特比译码器本身性能的改善,如申请号为98118015.9,公开号为CN_1208287A的发明“维特比译码器”中采用并行处理方式提高其译码速度;或是将其应用于某一新的领域,如申请号为97122565.6,公开号为CN_1182985A的发明“利用维特比译码器测量比特差错率的装置”。尚无一种“通用化的维特比译码器”的提法。随后又在国家专利局检索了上百篇相关文章,也未检索到“通用维特比译码器”的设计思想。发明人又在互联网网上查阅了多家通信器件生产厂商的产品手册。如在通信行业享誉多年的美国高通(Qualcomm)公司以及韩国三星(Samsung)公司。发现,其虽有比较成熟的维特比译码器,如Qualcomm公司生产的约束长度=7,3种码率可选的Q1900型号的维特比译码器,但受其硬件平台---特定用途集成电路(ASIC)芯片所限,其设计还远不够灵活,其专用性还很强。本发明提出的这种新型的设计正是针对这一缺憾。本设计基于比较灵活的现场可编程门电路(FPGA)硬件平台,其方便灵活的结构和功能使得此种通用性设计成为可能。
即通过将其设计成码率可变、约束长度可变,生成多项式可变的通用的卷积编码器以及帧长可变、码率可变、约束长度可变,生成多项式可变及信道类型可选的通用的软判决维特比译码器,达到能够将其应用于各个系统的目的。
本专利由两部分构成1.通用的卷积编码器E1.1其结构如

图1所示。编码器由移位寄存器组E1.1、组合逻辑电路I E1.2、组合逻辑电路IIE1.3及与非门组E1.4组成。
通用的卷积编码器的输入参数有三个,分别为码率(P1.1)、约束长度(P1.2)及生成多项式(P1.3)。约束长度可依据实际系统取为任意值,一般取为该通用卷积编码器所涵盖的各卷积编码器的约束长度的最大值(如在WCDMA系统中取为9)。在每一时刻,输入信号向通用卷积编码器输入一比特数据(I1.1)。同时移位寄存器组(E1.1)内的各移位寄存器顺次向右移位。输入比特以及移位寄存器的输出被送至组合逻辑电路I(E1.2)。同时输入E1.2实体的还有码率(P1.1)和生成多项式(P1.3)参数。其中码率可为小于1的任何真分数(如在WCDMA系统中通常为1/2和1/3);生成多项式对应卷积编码器的抽头。如果生成多项式对应的二进制矩阵元素为1,则卷积编码器中的相应移位寄存器(E1.1)的输出端有抽头;否则,移位寄存器的输出端无抽头。无抽头在组合逻辑电路I(E1.2)中可以用高阻态来表示。由码率和生成多项式确定组合逻辑电路I(E1.2)内部的电路连接关系,产生相应编码器的输出。如图1中绘出了1/3码率编码器的输出(O1.1)和1/2编码器的输出(O1.2)。组合逻辑电路II(E1.3)的作用在于,产生相应编码器输出的使能信号,通过与非门组(E1.4)分别控制各个编码器的输出。本通用卷积编码器的特征在于通过输入码率(一个或多个)、约束长度(一个或多个)、生成多项式(一个或多个)这些参数可产生一个通用的卷积编码器,即可以产生可选的多个卷积编码器(如附图1中1/2码率卷积编码器和1/3码率卷积编码器)的输出。本通用卷积编码器的意义在于,在实际通信系统(如WCDMA系统)中,只需在发送端设置这样一套通用的卷积编码器,即可产生多种码率的输出。这样将比传统的具有多套卷积编码器的系统大大节省了存储量(由编码器中的移位寄存器个数标定),更好地利用了资源,并具有更大的灵活性,可方便地进行应用的拓展。
2.通用的维特比译码器通用维特比译码器的设计原理如图2所示。通用的维特比译码器的输入参数共有五个帧长(P2.1)、码率(P2.2)、约束长度(P2.3)生成多项式(P2.4)及信道类型选择(P2.5)。帧长(P2.1)是一个必须的参数,用以控制译码算法之一的结尾维特比译码在何时输出译码结果。此外,在译码器接口电路处设置一个门限比较电路,当帧长低于某一门限时,采用结尾译码算法,当帧长超过某一门限时,采用截短译码算法。该门限的设置要视硬件的可用随机存取存储器(RAM)空间而定。因为当帧长较短时,采用结尾译码很方便实用,误码率也比较理想;而对于帧长较长的系统或业务,为了克服结尾译码所需数据存储空间较大的缺点,采用截短译码则更为可行。这种不同帧长对应译码器内部不同算法是本通用性设计的核心思想之一。码率(P2.2)、约束长度(P2.3)及生成多项式(P2.4)与附图1中编码器的三个参数码率(P1.2)、约束长度(P1.3)及生成多项式(P1.4)相对应。信道类型选择参数(P2.5)是一个比较特别的设计。因为针对不同的信道环境,译码器内部设计可能会有所不同。如对无线环境的高斯信道和瑞利(Rayleigh)信道,译码器的软度量计算会有差别。对高斯信道,度量计算公式为λij=xijyij,这里j为译码时刻,i为路径分支上的比特号。xij∈{-1,+1}为路径分支上的编码比特,yij为接收到的码符号。对Rayleigh信道,度量公式为λij=aijxijyij,这里aij为时刻j时路径分支上比特i的信道状态信息。由此可知,若想维特比译码器能够适应高斯和Rayleigh两种信道,则可将后一计算公式作为通用维特比译码器的软度量计算公式。只需向译码器再传一个信道状态信息aij(在图2中未画出该输入线)。若为高斯信道,则令aij=1,若为Rayleigh信道,则aij为实际测得的信道状态信息值。以上的五个参数共同输入接口电路实体(E2.1)。其中的码率参数(P2.2)、约束长度参数(P2.3)及生成多项式参数(P2.4)与附图1类似,产生相应的编码器结构(E2.2)。其编码结果与参数帧长(P2.1)、码率(P2.2)、约束长度(P2.3)及信道类型选择(P2.5)一起,传至维特比译码实体(E2.3)。从而实现帧长、码率、约束长度、生成多项式及信道类型可变的通用维特比译码。此种通用维特比译码器的特性在于通过输入帧长、码率、约束长度、生成多项式和信道类型选择五个参数可产生一个上述五个参数可变的通用的维特比译码。
图3、4、5为通用维特比译码器的各部分的结构原理图。图3为软判决维特比译码器的内部结构框图;图4为译码器内部加比选(ACS)单元电路结构;图5为译码器内部的通用分支度量单元电路结构。
维特比译码器的内部结构图如图3所示。该图为基于FPGA硬件平台的软判决Viterbi译码器的结构图。灰色背景中的部分属于维特比译码器的内部结构,其余为译码器外部的一些总线及引脚信号。译码器内部按照功能的不同分为六个模块分支度量单元(E3.1.1至E3.1.4)、加比选单元(E3.2.1至E3.2.4)、路径度量存储器单元(E3.3)、路径存储器单元(E3.4)、回溯输出单元(E3.5)和译码器控制单元(E3.6)。其中加比选单元与路径度量单元及路径存储器单元相连接。其工作原理是在某一时刻(n时刻),软判决数据(I3.1)在译码器控制单元(E3.6)的控制下从数据总线(B3.1)传入维特比译码器。在译码器内部首先进行分支度量计算(E3.1.1至E3.1.4),即计算接收到的软数据与当前状态的所有分支的汉明距离/软距离度量,并将度量计算结果送入锁存器进行锁存。假定前一时刻(n-1时刻)的路径度量值已经在路径度量存储器(E3.3)中被存储下来,则在当前时刻n,加比选单元(E3.2)首先从路径度量存储器(E3.3)中将路径度量值读出,然后在内部进行路径度量值与分支度量值的累加、上下两个新的路径度量值的比较和幸存路径的存储。具体的操作是,加比选单元(E3.2.1至E3.2.4)首先从路径度量存储器(E3.3)读出与当前状态相联系的前一级的上、下两个状态(分别对应上、下两条路径和上、下两个分支)上存储的路径度量值,然后将这两个路径度量值分别与上、下两个分支上计算出来的分支度量值(由E3.1.1至E3.1.4的锁存器获得)进行累加,从而获得信道上、下两条新的路径度量值。比较这两个新的路径度量值,选出其中一个具有较小度量值的路径进行存储,即将比较的结果写入路径度量存储器(E3.3)中进行路径度量值的刷新。加比选单元(E3.2)输出的另一结果—幸存路径信息—被写入路径存储器(E3.4),为节省存储空间,一般存储幸存路径的相对指针。如果当前状态的幸存路径来自于上路径,则路径存储器(E3.4)内的值存为0;否则,如果状态的幸存路径来自于下路径,则路径存储器(E3.4)内的值存为1。在一帧数据全部输入完毕时,在译码器控制单元(E3.6)的控制下开始由回溯输出单元(E3.5)回溯输出译码结果(O3.1)。回溯输出单元(E3.5)对路径存储器(E3.4)中存储的路径信息进行回溯操作,得到并存储相应的译码结果,在译码器控制单元(E3.6)的控制下将译码结果(O3.1)输出到译码器外部的数据总线上(B3.1)。译码器控制单元(E3.6)负责整个译码过程的时序控制及产生各种读写使能信号。在数据输入到分支度量单元(E3.1.1至E3.1.4)的过程中负责一次输入几个软数据(由码率(P3.2)决定,若为1/2码率,则一次输入2个软数据;若为1/3码率,则一次输入3个软数据)。一次输入的若干个软数据在FPGA内部做分支度量及加比选处理,并把一些中间结果送入片内路径度量存储器及路径存储器或通过译码器控制单元送入片外存储器。读控制信号(C3.3)/写控制信号(C3.4)及地址总线信号(B3.2)共同控制选通片外存储器的某一段地址空间。当完成一帧数据的路径度量及幸存路径存储后,由译码器控制单元(E3.6)产生回溯输出使能信号,使回溯输出单元(E3.5)进入工作状态。
在图3中,帧长(P3.1)、码率(P3.2)、约束长度(P3.3)、信道类型(P3.5)分别与图1和图2中的相应参数对应。
对图3的通用维特比译码器还需做如下说明1.加比选单元数的确定这是译码器的主要模块之一,完成路径度量值的累加、比较、选择等操作。译码器的内部运算速度主要由它来决定。
作为示例,此处只画出了四个加比选单元。实际实现时,为了提高译码速率,应尽量增加并行执行的加比选单元的个数,同时分支度量单元的个数也应相应增加,以满足高速译码的要求。2.片内RAM的使用及片外RAM的扩展维特比译码的主要存储量集中在路径度量存储及幸存路径的存储。其中幸存路径所占的存储空间较大。由于FPGA芯片片内RAM容量有限,因此其所能支持的最高业务速率也有限。对于更高速率的业务,则需要把路径信息及其他信息存储在片外的RAM。至于扩展的片外RAM的容量,则视该译码器需处理多高速率业务的译码而定。3.路径度量值溢出保护当帧长参数通用化时,意味着帧长可能取到比较大的值。这时可能遇到的一个问题是路径度量值累加的溢出。因为片内RAM的宽度是固定的,所以当帧长过长时,会出现路径度量累加值溢出的情况。为避免累加值溢出,通常是当每累加到一定长度就对所有的路径度量累加值进行一次“归一化”操作,即找出所有状态的最小路径度量值,然后将所有的路径度量值都减去这一最小值。选择合理的归一化步长可以达到较好的效果。
图4所示结构是加比选单元(E3.2.1至E3.2.4)的内部结构,一次加比选操作对应于维特比译码算法的一次蝶型运算。可以看到,一个加比选单元由累加实体(E4.1.1至E4.1.4)、比较实体(E4.2.1和E4.2.2)、选择实体(E4.3.1和E4.3.2)三部分实体构成。四个加法器(E4.1.1-E4.1.4)进行的是一个蝶型中的四种状态转移路径度量值的累加运算(注意,图3通用维特比译码器的加比选单元中包含四个这样的蝶型(E3.2.1至E3.2.4))。参与运算的有蝶型两个起点状态的路径度量值(PM_up,PM_down),均来自于路径存储器(E3.3);四种状态转移对应的两个分支度量值(BM_A,BM_B),分别来自于分支度量单元(E3.1.1至E3.1.4)的锁存器。进行完路径度量与相应的分支度量的累加运算后,将结果存入锁存器暂存,等待对加法结果进行比较。这一比较操作在实体E4.2.1和E4.2.2中进行。同样将比较的结果在锁存器中暂存后等待对比较结果的选择。经过选择实体(E4.3.1和E4.3.2)的选择操作后,产生新的路径度量值(PM_e和PM_o),将其送至路径度量存储器(E3.3)进行存储。比较实体E4.2.1和E4.2.2产生的另一结果DM_e、DM_o保存了上/下路径信息(用一比特0/1来表示),将这一结果送至路径存储器(E3.4)进行存储。
图5所示为通用的分支度量单元(E3.1.1至E3.1.4)的内部结构,该图以同时适用于1/2码率和1/3码率的通用的分支度量单元为例。当码率为1/3时,输入0、输入1、输入2分别对应于1/3码率卷积码编码器的3个输出端在接收端的软数据(我们实现时取为4比特的量化数据)。经过图5所示逐位取非和相加操作后,输出端的八个输出值即为1/3码率时的软判决度量输出值(分别对应于编码器输出值为000至111时的软判决度量)。当码率为1/2时,输入0、输入1分别对应于1/2码率的卷积码编码器的2个输出端在接收端的软数据(我们实现时取为4比特的量化数据),而将输入2设为全零。此时,前四个度量输出值即为1/2码率时的软判决度量输出值(分别对应于编码器输出值为00至11时的软判决度量)。由此实现了一种码率可变的通用分支度量运算模块。
本发明有益效果本发明在已经实现的基于FPGA硬件平台的帧长和码率可变的通用的卷积编码器和维特比译码器上,分别并针对帧长、码率等这些参数变化时译码器的性能做了一系列的测试。测试结果如附图六、七所示,分别对应码率变化和帧长变化时通用软判决维特比译码器的性能测试结果。
1)码率变化时的性能测试曲线。图6以码率(code rate)1/2和1/3为例绘制了此通用的卷积编码器和维特比译码器在码率参数变化时的性能测试曲线。该测试结果较软件仿真结果性能相差不到0.3dB。这说明,码率这一参数的变化在通用的维特比译码器的设计中是可行的。
2)长变化时的性能测试曲线。图7为帧长(frame length)变化时的性能测试曲线,帧长分别为80和96比特。该测试结果较仿真结果性能相差不到0.3dB。该图说明,帧长这一参数的变化在通用的维特比译码器的设计中是可行的。
值得一提的是,这种帧长、码率、约束长度可变和信道类型可选的维特比译码器具有很强的通用性和可移植性,可以方便地应用于移动通信系统和其它许多系统。
通用的卷积编码器和维特比译码器在FPGA上的实现如前所述,本设计的特别之处在于卷积编码器和维特比译码器的通用性。这就要求其所基于的硬件平台具有方便灵活的特性,能够很容易地实现本设计的通用性,并且所增加的硬件开销不太大。目前国际上流行的硬件平台有三种,ASIC、FPGA和DSP(数字信号处理器)。在这三种平台中,DSP灵活性最高但速度最慢,ASIC灵活性最差但速度最快,FPGA的速度和灵活性介于两者之间。综合考虑速度和灵活性,本发明选择FPGA来实现这种通用的卷积编码器和维特比译码器。简要叙述如下1)通用性设计对存储量方面的影响卷积编码器和维特比译码器的通用性设计使得FPGA实现时所需存储量略有增加,即所需数据存储器空间增加。维特比译码器所需的数据存储器主要有路径度量存储器和路径存储器。所需数据存储器空间的增加主要取决于当帧长和约束长度变化时对应的路径度量存储器和路径存储器的大小的增加。通用维特比译码器路径度量存储器的大小由约束长度最大时所需的路径度量存储空间决定,但路径度量存储器所需存储量在整个译码器所需存储量的大小上不占主导地位。所需路径存储空间在维特比译码器中占主要地位。但由于本发明可在译码器内部采用结尾和截短译码相结合的方法,当译码帧长超过一定门限时就采用截短的译码算法,从而使得无论帧长如何变化,路径存储空间的大小总会被限制在一定的范围内。
2)通用性设计对时间和芯片面积方面的影响本通用性设计会带来的运算时间和芯片面积的增加,主要体现在一些判断逻辑(如帧长、码率、约束长度、信道类型选择的判断)、编码模块(不同码率和约束长度对应不同的编码模块)以及译码时的回溯判决模块(结尾和截短译码对应的回溯判决方法不同)等这些模块对译码器面积和时延的增加。由于这些组合逻辑在一次译码过程中是一次性完成的,因此,对于需要多次迭代才能完成一次译码的维特比译码器而言,这些判断引入的时延是微不足道的。同时,这些判断逻辑在FPGA平台上也容易实现,不会带来过多的门(cell)数的增加。
基于上述设计思想,本发明在一片20万门的APEX EP20k FPGA硬件平台上实现了一个帧长和码率可变的比较通用的维特比译码器。实际上,依据上述技术方案,实现约束长度和信道类型的通用性也是十分容易的。对本领域普通技术人员,无需创造性劳动即可实施。该译码器用了2200个cell,使用16块片内RAM(最高译码约束长度为9)做两个蝶形单元的路径度量存储器,16块128×16的片内RAM用做路径存储器(结尾和截短译码算法相结合),其余的片内RAM用作软数据的输入和译码结果的输出。为了使译码器能对任意长度的帧长进行译码,在译码器内部设置了比较电路,当帧长小于或等于某一定值时,当完成一帧的路径存储后开始回溯(即对应结尾译码算法);当帧长超过某一定值时,每存满长度等于这一定值的路径信息后就开始回溯(即对应截短译码算法)。我们在实现时将这一定值取为112。在截短译码算法中,取路径的前16步/比特作为译码结果输出译码器,这样就空出了前16步的路径存储器空间。这段空间可以继续进行定值112步后的新路径信息的存储。因此,幸存路径长度为96,完全能够保证约束长度为9(WCDMA系统中)的译码器的译码性能。最后一次回溯仍使用截短算法。译码器采用两条流水线并行的结构,使得256状态维特比译码器内部的最高译码速度可达588kbps。由此可见,采用这种通用性设计的RAM资源开销较传统译码器的开销增加并不大,并且仍然能够达到很高的译码速度。
权利要求
1.通用的卷积编码器,以码率、约束长度及生成多项式为输入参数,其特征在于(1)该编码器由移位积存器组、组合逻辑电路I、组合逻辑电路II及与非门组组成;(2)移位积存器的输出端与组合逻辑电路I连接,即输入维特比及移位积存器的输出被传送至组合逻辑电路I。
2.通用的维特比译码器以帧长、码率、约束长度、生成多项式及信道类型选择为输入参数,其特征在于(1)该译码器由分支度量单元、加比选单元、路径度量存储器单元、路径存储器单元,回溯输出单元和译码器控制单元组成;(2)加比选单元与路径度量存储器单元及路径存储器单元相连接,它首先从路径度量存储器读出路径度量值,然后进行累加,以获得信道上、下两条新的路径度量值;(3)译码器控制单元与外部的数据总线连接以便将译码器结果输出。
3.如权利要求2所述的通用的维特比译码器,其特征在于所说一个加比选单元由累加实体、比较实体、选择实体三部分构成,其中累加实体的加法器进行的是一个蝶形中的四种状态转移路径度量值的累加运算。
4.如权利要求2所述的通用的维特比译码器,其特征在于译码器接口电路处设置一个门限比较电路,当帧长低于某一门限时,采用结尾译码算法,当帧长超过其某一门限时,采用截短译码算法,且该门限的设置要视硬件的可用随机存取存储器空(RAM)间而定。
全文摘要
本发明涉及通用的卷积编码器和维特比译码器,其特征在于其通用性,即卷积编码器的码率、约束长度及生成多项式皆可变,而译码器的帧长、码率、约束长度、生成多项式可变,信道类型可选。卷积编码器由移位积存器组、组合逻辑电路I、组合逻辑电路II及与非门组组成。维特比译码器由分支度量单元、加比选单元、路径度量存储器单元、路径存储器单位回溯输出单元和译码器控制单元组成,且其接口电路处设置门限比较电路。本发明通用卷积编码器和维特比译码器可方便地用于移动通信系统。
文档编号H04L1/00GK1387374SQ0212100
公开日2002年12月25日 申请日期2002年5月29日 优先权日2002年5月29日
发明者康桂霞, 张平, 李英涛 申请人:信息产业部电信传输研究所, 北京邮电大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1