CN100517984C - 用于移动通信系统的维特比/涡轮联合译码器 - Google Patents

用于移动通信系统的维特比/涡轮联合译码器 Download PDF

Info

Publication number
CN100517984C
CN100517984C CNB2004800269949A CN200480026994A CN100517984C CN 100517984 C CN100517984 C CN 100517984C CN B2004800269949 A CNB2004800269949 A CN B2004800269949A CN 200480026994 A CN200480026994 A CN 200480026994A CN 100517984 C CN100517984 C CN 100517984C
Authority
CN
China
Prior art keywords
viterbi
path
turbo
path metrics
data block
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.)
Active
Application number
CNB2004800269949A
Other languages
English (en)
Other versions
CN1853350A (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.)
Via Technologies Inc
Original Assignee
Via Technologies Inc
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 Via Technologies Inc filed Critical Via Technologies Inc
Publication of CN1853350A publication Critical patent/CN1853350A/zh
Application granted granted Critical
Publication of CN100517984C publication Critical patent/CN100517984C/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/3905Maximum a posteriori probability [MAP] decoding or approximations thereof based on trellis or lattice decoding, e.g. forward-backward algorithm, log-MAP decoding, max-log-MAP decoding
    • H03M13/3927Log-Likelihood Ratio [LLR] computation by combination of forward and backward metrics into LLRs
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/29Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
    • H03M13/2957Turbo codes and decoding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4107Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing add, compare, select [ACS] operations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes
    • H03M13/41Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors
    • H03M13/4161Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management
    • H03M13/4169Sequence estimation, i.e. using statistical methods for the reconstruction of the original codes using the Viterbi algorithm or Viterbi processors implementing path management using traceback
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • H04L1/0054Maximum-likelihood or sequential decoding, e.g. Viterbi, Fano, ZJ algorithms

Abstract

本发明提供一种维特比(Viterbi)/涡轮(Turbo)联合译码器,以对语音和数据串流进行维特比卷积(convolutional)译码以及涡轮译码。上述维特比/涡轮联合译码器的一个实施例可以藉由单一个控制电路处理并计算维特比与涡轮译码的路径矩值(path metric),进而达到降低硬件成本的效果。控制电路包括多个处理器与存储体(memory bank),无论是针对维特比或是涡轮编码的输入信号,处理器用以从存储体中读取/写入路径矩值信息所遵循的路由规则都是固定的。

Description

用于移动通信系统的维特比/涡轮联合译码器
技术领域
本发明涉及使用在无线通信系统中的维特比(Viterbi)/涡轮(Turbo)联合译码器,特别是涉及一种可用于接收与译码语音与数据串流的系统。
背景技术
错误控制编码技术涉及使用传输端的信道编码器以及接收端的通道译码器。信道编码器接收讯息比特,并按照特定规则加上冗余(redundancy),以产生较高比特率(bit rate)的编码数据。通道译码器利用该冗余以判定实际被传送的讯息比特。错误控制编码的目的在于减少信道噪声干扰的影响。错误句柄大致上可分类成数据块码(block code)以及卷积码(convolutionalcode)这两种类型。卷积码较常被应用在无线语音通信系统中,因为语音通信对数据重传率(retransmission rate)以及延迟(delay)的忍耐度较低。数据块码则可用来传送通量(throughput)要求较高的应用,但是必须要容忍较大的延迟时间。
维特比(Viterbi)算法为检测最大似然(maximum-likelihood;ML)序列的一种顺序正向纠错(trellis)搜索算法,并且是一种用于卷积码的理想解碼算法。由S.B.Wicker所写的“数字通信与存储的错误控制系统(ErrorControl System for Digital Communication and Storage,Pretice Hall,1995)”中有叙述到维特比译码器在移动通信系统中的应用。
图1为一实际维特比译码器所使用的译码算法的流程图。译码的步骤包括量化(quantization)、分支矩值(branch metric)运算、路径矩值更新、存留路径(survivor path)记录、以及输出判断的产生。先藉由信号抽样以便恢复接收信号,接着再将其转换成数字信号。利用检测数字信号中框边界与编码符号的位置,达到数据块的同步。在分支矩值运算之后,可以藉由新的分支矩值更新部分的路径矩值,并且在每一个节点的存留路径作上标记。最后,就可以根据存留路径信息而产生译码输出序列。
图2为一般维特比译码器20的方块图。维特比译码器20包括一个分支矩值计算(branch metric calculating;BMC)单元202,其输出被送至加法比较选择(add compare select;ACS)单元204。状态控制器206提供输入给分支矩值计算单元202、加法比较选择单元204、以及路径矩值存储器208。路径矩值存储器208像是一个双缓冲器,用来与加法比较选择单元204互相交换信息。加法比较选择单元204的输出205提供给追溯(trace-back)存储器与控制器210,其输出为已接收的信息信号211。
涡轮(Turbo)码,也被称为并联连锁(parallel concatenated)码,其效果与香农容量限制(Shannon’s capacity limit)非常接近。涡轮编码器的实施通常是将卷积编码器以串联或并联方式连接,以得到连锁的输出值。从一个编码器传到另一个编码器的位序列被一个虚拟随机数(pseudo-random)交错器(interleaver)重新排列,因此由单一编码器产生的低权重(low-weight)编码字被转换为高权重(high-weight)编码字。第三代(3G)移动无线标准,如码分多址(code division multiple access;CDMA)2000以及全球移动通信系统(universal mobile telecommunication service;UMTS)都采用涡轮编码技术将数据流编码。英国专利申请号GB2352943A以及B.Vucetic与J.Yuan所撰写的“涡轮码,原理与应用(Turbo codes,principlesand application,Kluwer Academic Publishers,2000)”均披露了涡轮译码器中所应用的技术,如最大后置机率判定法则(maximum a posterioriprobability;MAP)、以及软式输出维特比算法(soft output Viterbialgorithm;SOVA)等。
图3示出了基于最大后置机率判定法则算法的一个迭代(iterative)涡轮译码器30。涡轮译码器的一个接收符号包括表示实际被传输数据的系统(systematic)数据、以及表示被传输数据的编码形式的奇偶校验(parity)数据。第一输入ro信号为接收符号的奇偶校验数据,通过交错器304提供至第一与第二最大后置机率判定法则译码器302与306。第二输入r1信号为接收符号的系统数据,被送至第一最大后置机率判定法则译码器302中。从解交错器(de-interleaver)310得到的递归(recursive)输入311也被送至第一最大后置机率判定法则译码器302中。第一最大后置机率判定法则译码器302的输出303于是提供给交错器308,此交错器308再将其输出送至第二最大后置机率判定法则译码器306。第二最大后置机率判定法则译码器306从第三输入r2信号接收输入,并产生两个输出。第二最大后置机率判定法则译码器306的第一输出307a传至解交错器310,而第二输出307b则传至另一个解交错器312。解交错器312的输出会提供给切割器(slicer)314作输入,切割器314利用一个阈值将软式输出转换为硬式(hard)输出,当作已接收的信息信号315。
第三代移动通信系统通常需要对语音和数据信号分别进行如维特比之类的卷积编码和涡轮编码。这是由于语音与数据在传输速率、延迟时间等传输要求上有抵触。目前的解决方法为提供两套编码装置,当输入为高速率的数据串流时采用涡轮码编码,而当输入为语音或低速率数据时则改用卷积编码。系统的接收端同样也需要两套独立的译码器,如此一来,就会增加编码与译码的硬件实现的复杂度与成本。
发明内容
鉴于上述缺陷,本发明提供了一种维特比(Viterbi)/涡轮(Turbo)联合译码器,可以根据输入编码类型,选择执行卷积(convolutional)或涡轮译码。
在一个实施例中,译码器包括分支矩值计算(branch metriccalculation;BMC)单元、控制电路、追溯(trace-back)单元、交错/解交错器、以及涡轮缓冲器。分支矩值计算(单元接收维特比或涡轮符号,并决定编码字的各节点(node)对应的分支矩值(branch metric)。译码器将适应输入的编码类型,而控制电路为用于两种编码类型的共同组件,充分的利用存储体与处理器的能力。控制电路根据从BMC单元接收到的对应分支矩值,以及储存在第一数据块中先前节点上的部分路径矩值,计算各节点上的部分路径矩值。控制电路之后将计算好的部分路径矩值储存在第二数据块中。处理下一个节点时,控制电路先从第二数据块中读取,于计算完之后,储存到第一数据块中,如此迭代进行读取与储存的操作。这两个数据块与处理器交换路径矩值的信息。从这两个数据块读出与写入部份路径矩值的顺序与地址,根据平行处理的一个固定路由规则,让部分路径矩值能够平行处理,以充分利用处理能力。控制电路于是根据输入编码的类型决定执行选择或最大后置机率判定法则(maximum a posteriori probability;MAP)算法,以辨识各节点上的存留路径(survivor path)。
追溯(trace-back)单元于执行维特比译码时接收控制电路的输出,并追踪从控制电路得到的存留路径。交错/解交错器在执行涡轮译码时接收控制电路的输出,并按照一个已定方式变更或恢复其输入顺序。涡轮缓冲器接收输入符号与交错/解交错器的输出,并为BMC单元与交错/解交错器提供储存。该涡轮缓冲器包括:一输入缓冲器,用于接收输入符号,并为该分支矩值计算单元提供储存;以及一交错/解交错缓冲器,用于储存交错/解交错器的输出,并为BMC单元与交错/解交错器提供储存。
在一个实施例中,控制电路包括一个加法比较选择处理器(add compareselect processor;ACSP)阵列,具有J个加法比较选择处理器(ACSP)(其中J=2m,m为一正整数,而m+1必须小于该联合译码器的限制长度(constraintlength n+1)、路径矩值计算单元,具有第一与第二存储数据块、固定路由电路、以及选择与MAP计算单元。加法比较选择处理器阵列根据对应分支矩值,计算各节点的部分路径矩值。各加法比较选择处理器包括两个加法比较选择单元(add compare select units;ACSU),平行处理这些部份路径矩值。路径矩值计算单元将一个目前节点,与一个先前节点的部份路径矩值分别储存在上述两个存储数据块中。每个存储数据块包括I组存储体,其中I=2m+1。固定路由电路根据固定路由规则,为每一个加法比较选择处理器以及四组存储体建立固定连接线,四组存储体中的两组属于第一存储数据块,另外两组属于第二存储数据块。选择与最大后置机率判定法则(MAP)计算单元执行选择或最大后置机率判定法则计算,以判断各节点的存留路径。选择与最大后置机率判定法则计算单元根据从BMC单元获得的分支矩值,以及从路径矩值计算单元获得的部份路径矩值,计算涡轮编码字的对数似然比值(log-likelihood ratio;LLR)。
附图说明
藉由以下详细说明,并结合附图,可充分了解本发明的实施例,其中:
图1为维特比译码器的一个实施例流程图。
图2为维特比译码器的一个实施例方块图。
图3为根据MAP算法的迭代涡轮译码器的方块图。
图4为根据第一实施例的维特比/涡轮联合译码器的方块图。
图5为图4中控制电路的一个实施例的方块图。
图6a描述加法比较选择单元(ACSU)范例的电路图。
图6b描述加法比较选择单元的另一个范例的电路图。
图7a显示根据第一实施例的路径矩值存储体构成。
图7b为图7a的详细图示。
图8显示根据本发明第一实施例的涡轮译码的路径存储器存取规则。
图9显示根据本发明第二实施例的路径矩值存储体构成。
图10a显示根据本发明第三实施例中256状态的维特比译码的路径矩值存储体构成。
图10b显示根据本发明第三实施例中256状态的维特比译码的路径矩值存储体对应的数据结构。
图11显示根据本发明第三实施例中涡轮译码的路径矩值存储体的数据结构。
图12显示涡轮译码中应用的最大后置机率判定法则译码算法。
具体实施方式
第一实施例
图4显示本发明一个维特比/涡轮联合译码器的实施例方块图。维特比/涡轮联合译码器4能够根据接收数据的编码方式执行卷积或涡轮译码。维特比/涡轮联合译码器4对从噪声输入端40得到的w比特含噪声符号进行译码。维特比/涡轮联合译码器4包括输入缓冲器43、分支矩值计算(BMC)单元41、控制电路42、交错/解交错器缓冲器44、交错/解交错器45、存留路径更新单元46、追溯单元47、以及后进先出(LIFO)缓冲器48。
如图4所示,控制电路42包括具有一路径存储体(path memory bank)的路径矩值计算单元(path metric calculation unit)421、固定路由电路(routing circuit)422、加法比较选择处理器(ACSP)阵列423、以及选择与最大后置机率判定法则计算单元424。选择与最大后置机率判定法则计算单元424包括卷积(维特比)译码所需的选择单元、以及计算涡轮译码所需的似然比值(log-likelihood ratio;LLR)的最大后置机率计算单元。控制电路42执行维特比或涡轮译码所需要的主要运算,而此控制电路42为维特比与涡轮译码共同需要的组件。控制电路42于是可以取代原本维特比与涡轮译码各自所需要的计算单元,因此能对维特比与涡轮代码进行译码的接收器的芯片大小就可以减少。由于语音或是低数据传输率的输入是以维特比码所编码的,而高数据传输率的输入则是以涡轮码所编码而成的,因此对这两种输入类型译码的处理途径是不同的。语音流与数据串流皆会在接收后提供至分支矩值计算单元41,随后提供至控制电路42。控制电路42会在数据处理之后将维特比编码流传送至存留路径更新单元46以及追溯单元47,而控制电路42则会在数据处理之后将涡轮编码流传送至交错/解交错器44以及缓冲器43与45以执行交错或是解交错。
存留路径更新单元46包括一个存留路径存储器(survivor path memory;SPM),用来储存维特比解碼的纠错(trellis)图中各个节点所判断出来的存留路径。
在第一个实施例中,卷积编码器的限制长度(constraint length)为5(n=4),因此在维特比编码中具有16个状态(2n=16)。加法比较选择处理器阵列423中的处理器数目被选为2m,其中m必须小于n,而在这个实施例中被选为m=2。各个加法比较选择处理器包括一加法比较选择单元(addcompare select unit;ACSU)对,据此可以同时处理两个输入。所以将八组存储体(2m+1=8)与四个加法比较选择处理器搭配,可以让四个加法比较选择处理器同时处理八个部分路径矩值。
图5为描述控制电路5的方块图,是图4第一个实施例中控制电路42的其中一个实施范例。控制电路5包括存储体52、固定路由电路54、加法比较选择处理器阵列56、以及选择与最大后置机率判定法则计算单元58。固定路由电路54耦接着利用随机存取存储器(random access memory;RAM)实现的八组存储体520~527。加法比较选择处理器阵列56包括四个加法比较选择处理器560~563,每个加法比较选择处理器包括两个加法比较选择单元(ACSU)。各加法比较选择处理器560~563对应于选择与最大后置机率判定法则计算单元58中的一个加法比较选择单元580~583。ACSU 580~583的输出被送至比较选择(compare select;CS)单元584~585,而比较选择单元584-585的输出则被送至另一个比较选择单元586。
图6a与图6b描述前述加法比较选择处理器中两种类型的加法比较选择单元电路范例。图6a的加法比较选择单元包括三个加法器、两个比较器、以及三个多任务器,而图6b的加法比较选择单元则利用查询表(look uptable)取代其中一个比较器。这两种类型的加法比较选择单元的连接方式与关系大致为相同的。
图7a为一个路径矩值存储体构成的范例,用来描述图4中固定路由电路422中规范的读/写选择规则。图7a的存储体位于图4中路径矩值计算单元421中。本发明披露的读/写选择规则藉由从加法比较选择处理器阵列423中平行取得并向加法比较选择处理器阵列423提供路径矩值信息,以加速处理的速度。存储体与加法比较选择处理器阵列423之间的连接线是根据纠错(trellis)图所排列的,结合加法比较选择处理器阵列423,同时处理分支矩值与部分路径矩值。各个路径矩值存储体(memory bank;MB)是由一个地址产生器(address generator;AG)所管理的。
如图7a所示,包括8组存储体(Bank(0)~Bank(7)),以及4个加法比较选择处理器(ACSP0~ACSP3)。各组存储体包括两个数据块(数据块A与数据块B),分别用来储存对应两个不同时间点的路径矩值信息。维特比译码所使用的读/写存储器选择规则以下面的范例说明。第一对路径矩值信息于时间点t1时,分别储存在数据块A的存储体(0)与存储体(4)中。加法比较选择处理器ACSP0获取第一对路径矩值信息,以产生两个新的部分路径矩值,并在时间点t1+p将新的部分路径矩值分别储存在数据块B的存储体(0)与存储体(1)中,其中p表示ACSP用来产生新的部分路径矩值的处理时间。
图7b则为图7a的详细图示,其中的数值与索引皆以二进制表示。每组存储体各有两个存储单元,因此加法比较选择处理器对存储体进行两次存取以处理两个存储单元中的数据。例如加法比较选择处理器ACSP(00)在时间点t1,从数据块A中状态索引(state index)为0000以及1000的存储单元里,取得路径矩值信息。之后,加法比较选择处理器(00)产生两个新的部分路径矩值,并将这两个新的部分路径矩值于时间点t1+p,储存在数据块B中状态索引为0000以及0010的存储单元里。同时,加法比较选择处理器ACSP(01)、ACSP(10)、以及ACSP(11)亦以与ACSP(00)相同的方式与该存储体相互作用。
处理完各存储体的第一存储单元之后,加法比较选择处理器ACSP(00)于时间点t2从数据块A中的状态索引为0001与1001的存储单元中取得路径矩值信息。同样地,加法比较选择处理器ACSP(00)产生两个新的部分路径节矩值,并于时间点t2+p时储存在数据块B中状态索引为0001与0011的存储单元里面。其余的加法比较选择处理器也执行类似加法比较选择处理器ACSP(00)所执行的读/写操作,同时将处理各组存储体中第二存储单元的读/写。
在下一个时间点时,加法比较选择处理器阵列中的各加法比较选择处理器从数据块B中对应的存储体读出路径矩值信息,以产生新的路径矩值信息,然后将新的路径矩值信息储存在数据块A中。这样的读/写操作重复两次,一次用于各存储体的第一存储单元,另一次用于第二存储单元。加法比较选择处理器利用类似双缓冲器的两个数据块(A与B),让对应先前节点的部分路径矩值,只有在获得目前节点的所有部份路径矩值之后,才被覆写(overwrite)。原先储存在数据块A的路径矩值信息利用一个对应的分支矩值被计算出来,并被储存在数据块B中,然后数据块B的路径矩值信息也利用一个对应的分支矩值被计算出来,并储存于数据块A中,以此类推。
固定路由单元规范的上述读/写选择规则,也被称作存取存储体的路由规则,可以利用下面的步骤作分析。状态的数目2n与译码的输入符号的限制长度(n+1)有关,而每一个状态都分配到一个可供识别的唯一(unique)状态索引值Sn-1...S2S1S0。在第一个实施例中,编码器的限制长度为5(n=4),因此一共有16(2n=16)个状态。存储体组的数目为2m+1,其中m+1必须要小于或等于n。在第一个实施例中,m被选为2,因此有8组存储体。存储体的索引值Sn-1Sn-2...Sn-m-1与加法比较选择处理器索引值Sn-2Sn-3...Sn-m-1分别表示它们所对应的存储体与加法比较选择处理器的索引值。
在第一个实施例中,当n=4且m=2,状态索引为S3S2S1S0的存储单元表示此存储单元是包括在具有存储体索引值为S3S2S1的存储体里面,例如状态索引值为0010的存储单元,包括在存储体001中。各加法比较选择处理器根据本身的加法比较选择处理器索引值S2S1,读出在具有状态索引值为S3S2S1S0的存储单元中储存的两个部分路径矩值。例如,加法比较选择处理器ACSP 10读出位于状态索引值为0100或0101,以及1100或1101的存储单元中储存的部分路径矩值。当加法比较选择处理器产生新的部分路径矩值后,这些新的部分路径矩值被写入状态索引值为S3S2S1S0的存储单元中,此状态索引值中两个最高位S3S2与加法比较选择处理器的索引值相同。例如加法比较选择处理器ACSP 10将新的部分路径矩值写入状态索引值为1000或1001,以及状态索引值为1010或1011的存储单元中。
图8显示根据本发明的第一实施例实现的涡轮译码的路径矩值存储器存取方式。涡轮译码的路由规则与维特比译码几乎完全相同,因此这两种译码可以共享该固定路由单元、加法比较选择处理器阵列、以及储存在路径矩值计算单元中的存储体。涡轮译码必须要将状态索引值执行位逆转(bitreversion),也就是将存储单元的状态索引值从001转变成100,以及将存储单元的状态索引值从011转变成110。如图8所示,存储体与ACSP之间的读/写耦接方式与先前所叙述的维特比译码一样,不过状态索引(没有显示于图中)以及所对应的存储体索引却会被逆转。
如图4所示,分支矩值计算单元41计算分支矩值γ,而路径矩值计算单元421则储存加法比较选择处理器阵列423所计算出来的向前路径矩值α、以及向后路径矩值β。这三个矩值α、β、以及γ被选择与最大后置机率判定法则计算单元424用来获得对数似然比值(log-likelihood ratio;LLR),LLR如下所示。
Δ ( c t ) = log Σ l = 0 M s - 1 α t - 1 ( l ′ ) γ t 1 ( l ′ , l ) β t ( l ) Σ l = 0 M s - 1 α t - 1 ( l ′ ) γ t 0 ( l ′ , l ) β t ( l )
第一实施例中的涡轮解碼利用最大后置机率译码算法,并根据分支矩值γ、向前路径矩值α、以及向后路径矩值β,来计算各时间点的对数似然比值。
第二实施例
图9描述根据本发明的第二实施例的路径矩值存储器存取规则。在第二个实施例中,编码器的限制长度为6(n=5),因此维特比译码一共有32(25)个状态。也就是第二实施例中,有四个加法比较选择处理器(2m,m≤4,选择m=2)以及八组存储体(2m+1)。由于每个存储体中有四组存储单元,各个加法比较选择处理器在一个时钟周期内只能对一个存储体执行存取,各加法比较选择处理器因此需要从第一数据块中两个对应的存储体读取部分路径矩值四次,每一存储单元都要被读取一次,类似地,将新的部分路径矩值写入第二数据块中两个对应存储体四次。读与写该存储体的路由规则与第一实施例是相同的。
第三实施例
图10a与图10b描述根据本发明的第三实施例中,对应256种状态维特比译码的路径矩值存储体的构成与数据结构。第三个实施例中,编码器的限制长度为9,并且也是使用了四个加法比较选择处理器与八个存储体。每一个路径矩值存储体都有两个数据块(数据块A与数据块B),并且这两个数据块A与B的数据块索引值分别为0与1。四个加法比较选择处理器在一个时钟周期间处理八个状态,因此为了针对每一个具有256种可能状态的维特比编码字,加法比较选择处理器需要32个时钟周期(256/8=32)用来从该存储体读出或写入一个节点的部份路径矩值。
用在256种状态维特比译码的硬件装置(即加法比较选择处理器与存储体),在处理速度上以及存储器大小上,也适用于8种状态涡轮译码。为了进行涡轮译码,每一编码器的限制长度为4(n=3),从而形成八个可能状态。图11显示根据本发明第三实施例涡轮译码的路径矩值存储体的数据结构。涡轮译码的状态索引值与维特比译码不同,这是因为涡轮译码需要进行位逆转。第三实施例的窗口大小(window size)被设定为32(k=32),因此涡轮译码根据32项向后路径矩值β对一个涡轮编码字译码。在每一个时钟周期中,加法比较选择处理器处理八个状态,以获得一个向后路径矩值β,并根据时间序列t、t+1、t+k-1储存在存储体中。在第k个周期中(本实施例中,k=32),加法比较选择处理器处理了8k(8*32=256)个状态,而且在存储体中产生并储存k项向后路径矩值β以及一个向前路径矩值α。
图4中的选择与最大后置机率判定法则计算单元424从分支矩值计算单元41中获取分支矩值γ,并且从储存在路径矩值计算单元421的存储体中获取32项向后路径矩值β、以及1项向前路径矩值α,并且根据这些矩值计算对数似然比值。选择与最大后置机率判定法则计算单元的结果会输出至交错/解交错器44中,以产生涡轮解碼的结果。
图12描述使用在涡轮译码中的最大后置机率译码算法。图10只显示了四个状态的四个阶段。每个阶段计算出一个向后路径矩值β,可是每个编码字总共只会算出一个向前路径矩值α。对数似然比值表示1的机率P(1)与0的机率P(0)之间比例的对数(log)。
本发明的维特比/涡轮联合译码器可依据接收数据的类型构成,且控制电路被设计为可以储存并计算用于维特比和涡轮译码部分路径矩值。两种译码所利用的加法比较选择处理器阵列读取存储体的路由规则是固定的。在一个实施例中,储存部分路径矩值的存储体,无论用在维特比或是涡轮译码,都可以充分的被使用。例如,假设译码器被设计为接收256状态维特比编码字或是8状态涡轮编码字,则涡轮译码的窗口大小就会被选为32(256/8)。在译码8状态涡轮编码字时,存储体储存对应32时间点(阶段)的向后路径矩值的八个状态,而译码256种状态维特比编码字时,加法比较选择处理器阵列在一个周期中会处理八个状态,因此一共需要32个周期才可以解完一个维特比编码字。因此,这两种译码种类的存储体大小以及处理时间大约相同。在另一个实施例中,本发明的多个维特比/涡轮联合译码器可以被用来对包括成串涡轮符号或/和维特比符号的数据串流进行译码,其中的每一个译码器都有能力对任何一种输入类型解碼。而无论译码器所使用的译码方式为何,各译码器花费在每一个编码字的译码时间都会是差不多的。这样的设计结构的优点是可以降低译码器的数量,因为每个译码器都可以用来对任何一种编码(维特比或涡轮)符号进行译码。另一个优点就是所有的译码器都可以在差不多同一时间完成译码的工作,因此这些译码器可以平行的处理数据流,而不必因为某些译码器的延迟花时间等待。
最后,虽然本发明已以较佳实施例披露如上,然其并非用以限定本发明,本领域的技术人员在不脱离本发明的精神和范围的前提下可作若干的更动与润饰,因此本发明的保护范围以本发明的权利要求为准。
本专利申请案请求于2003年11月24日提出的申请号为60/523,981的美国临时专利申请案的优先权。

Claims (11)

1.一种维特比/涡轮联合译码器,可对一维特比或涡轮编码字进行译码,该维特比/涡轮联合译码器包括:
一分支矩值计算单元,接收多个符号并决定该编码字各节点所对应的一分支矩值;
一控制电路,根据从该分支矩值计算单元所接收到的该对应分支矩值和储存在一第一存储数据块中一先前节点上的部分路径矩值,以计算各节点上的部分路径矩值,并且将所计算得到的该部分路径矩值储存在一第二存储数据块中,其中从所述存储数据块读出所述部份路径矩值的顺序与地址和向所述存储数据块写入所述部份路径矩值的顺序与地址,是按照平行处理的一固定路由规则,以及根据该编码字类型决定执行选择或最大后置机率判定法则算法,以辨识各节点上的一存留路径;
一追溯单元,耦接于该控制电路,以根据追踪由该控制电路得到的该存留路径产生维特比编码字的译码输出;
一交错/解交错器,耦接于该控制电路,以按照一个已定方式重新排列或恢复该输入顺序,为涡轮编码字产生译码输出;以及
一涡轮缓冲器,包括:一输入缓冲器,用于接收输入符号,并为该分支矩值计算单元提供储存;以及
一交错/解交错缓冲器,用于储存该交错/解交错器的输出。
2.如权利要求1所述的维特比/涡轮联合译码器,其中该控制电路包括:
一加法比较选择处理器阵列,包括J个加法比较选择处理器,用于根据该对应分支矩值计算各节点的该部分路径矩值,其中各加法比较选择处理器包括两个加法比较选择单元,以平行处理所述部份路径矩值,其中J=2m,m为一正整数;
一路径矩值计算单元,包括该第一与第二存储数据块,用于分别储存一目前节点与一先前节点的所述部份路径矩值,其中各存储数据块包括I组存储体,而I=2m+1
一固定路由电路,与该加法比较选择处理器阵列以及该路径矩值计算单元耦接,用于根据该固定路由规则在每一个加法比较选择处理器和四组存储体之间建立固定连接线,四组存储体中的两组属于该第一存储数据块,另外两组属于该第二存储数据块;以及
一选择与最大后置机率判定法则计算单元,执行选择或最大后置机率判定法则计算,以判断各节点的该存留路径。
3.如权利要求2所述的维特比/涡轮联合译码器,其中m+1必须小于该维特比/涡轮联合译码器的限制长度。
4.如权利要求2所述的维特比/涡轮联合译码器,其中该第一与该第二存储数据块大小相同,并且各存储体包括相同数量的存储单元,用来储存所述部份路径矩值。
5.如权利要求2所述的维特比/涡轮联合译码器,其中该选择与最大后置机率判定法则计算单元根据从该分支矩值计算单元获得的分支矩值,以及从该路径矩值计算单元获得的所述部份路径矩值,计算该涡轮编码字的对数似然比值。
6.如权利要求5所述的维特比/涡轮联合译码器,其中该对数似然比值用来估计追踪该存留路径的一机率,其算式为: Δ ( c t ) = log Σ l = 0 M s - 1 α t - 1 ( l ′ ) γ t 1 ( l ′ , l ) β t ( l ) Σ l = 0 M s - 1 α t - 1 ( l ′ ) γ t 0 ( l ′ , l ) β t ( l ) ,
算式中α表示向前递归,β表示向后递归,γ表示分支机率。
7.如权利要求2所述的维特比/涡轮联合译码器,其中该路径矩值计算单元为该涡轮编码字的每一个状态储存一向前路径矩值α,以及K个向后路径矩值β,其中K为涡轮译码的窗口大小。
8.如权利要求7所述的维特比/涡轮联合译码器,其中m=2,K=32,该译码器能够对256个状态的维特比编码字与8个状态的涡轮编码字译码。
9.如权利要求1所述的维特比/涡轮联合译码器,其中与各节点相关的该分支矩值为该相关节点上该接收符号与该译码输出之间的平方距离。
10.如权利要求1所述的维特比/涡轮联合译码器,还包括一后进先出缓冲器,与该追溯单元耦接,用来输出该译码维特比输出。
11.如权利要求1所述的维特比/涡轮联合译码器,还包括一存留路径更新单元,与该控制电路以及该追溯单元耦接,用来储存最新计算得到的存留路径。
CNB2004800269949A 2003-11-24 2004-11-24 用于移动通信系统的维特比/涡轮联合译码器 Active CN100517984C (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US52398103P 2003-11-24 2003-11-24
US60/523,981 2003-11-24

Publications (2)

Publication Number Publication Date
CN1853350A CN1853350A (zh) 2006-10-25
CN100517984C true CN100517984C (zh) 2009-07-22

Family

ID=34619623

Family Applications (1)

Application Number Title Priority Date Filing Date
CNB2004800269949A Active CN100517984C (zh) 2003-11-24 2004-11-24 用于移动通信系统的维特比/涡轮联合译码器

Country Status (7)

Country Link
US (1) US7246298B2 (zh)
JP (1) JP2007510337A (zh)
CN (1) CN100517984C (zh)
DE (1) DE112004002008B4 (zh)
GB (1) GB2418822B (zh)
TW (1) TWI313107B (zh)
WO (1) WO2005050848A1 (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7131055B2 (en) * 2003-02-25 2006-10-31 Intel Corporation Fast bit-parallel Viterbi decoder add-compare-select circuit
US7725798B2 (en) * 2004-02-27 2010-05-25 Joanneum Research Forschungsgesellschaft Mbh Method for recovering information from channel-coded data streams
KR100630168B1 (ko) * 2004-08-09 2006-09-29 삼성전자주식회사 이동통신 시스템에서 비터비 디코더의 공유 방법 및 장치
US8023554B2 (en) * 2004-10-06 2011-09-20 Broadcom Corporation Method and system for single antenna receiver system for WCDMA
TWI255622B (en) * 2004-10-21 2006-05-21 Mediatek Inc Method of computing path metrics in a high-speed Viterbi detector and related apparatus thereof
JP4432781B2 (ja) * 2005-01-17 2010-03-17 株式会社日立製作所 誤り訂正復号器
KR100675389B1 (ko) * 2005-01-27 2007-01-29 삼성전자주식회사 역추적 작업을 병렬적으로 수행하는 비터비 디코더 및 그디코딩 방법
US7450668B2 (en) * 2005-02-02 2008-11-11 At&T Intellectual Property I, L.P. Soft bit viterbi equalizer using partially collapsed metrics
US7877674B2 (en) 2006-07-25 2011-01-25 Broadcom Corporation Method and system for redundancy-based decoding of voice content in a wireless LAN system
US7917834B2 (en) * 2005-12-08 2011-03-29 Electronics And Telecommunications Research Institute Apparatus and method for computing LLR
EP2158682A1 (en) * 2007-06-14 2010-03-03 Intel Corporation Unified decoder for convolutional, turbo, and ldpc codes
CN101312531B (zh) * 2007-11-02 2010-11-17 北京创毅视讯科技有限公司 一种广播系统中的流媒体业务传输方法及流媒体帧封装器
TWI339956B (en) * 2007-12-31 2011-04-01 Ind Tech Res Inst Method and apparatus for convolutional turbo decoding
US8327058B2 (en) * 2008-07-25 2012-12-04 Broadcom Corporation Method and system for routing data in a parallel turbo decoder
US8332735B1 (en) * 2009-03-09 2012-12-11 Xilinx, Inc. Generating a log-likelihood ratio for signal processing
TWI383596B (zh) * 2009-04-28 2013-01-21 Via Tech Inc 維特比解碼器
CN102064839B (zh) * 2009-11-11 2013-11-20 中国科学院微电子研究所 一种高速低功耗多码率的Viterbi译码器
US8402342B2 (en) * 2010-02-26 2013-03-19 Research In Motion Limited Method and system for cyclic redundancy check
US8433004B2 (en) 2010-02-26 2013-04-30 Research In Motion Limited Low-latency viterbi survivor memory architecture and method using register exchange, trace-back, and trace-forward
WO2012032371A1 (en) * 2010-09-08 2012-03-15 Agence Spatiale Europeenne Flexible channel decoder.
JP6155959B2 (ja) * 2013-08-19 2017-07-05 富士通株式会社 復号化装置、及び、復号化方法
KR20150061253A (ko) * 2013-11-27 2015-06-04 한국전자통신연구원 하프 파이프라인 방식의 터보 디코더 및 그의 제어 방법

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR930004862B1 (ko) * 1990-12-17 1993-06-09 삼성전자 주식회사 상태 평가량 기억장치
JPH09182067A (ja) * 1995-10-27 1997-07-11 Toshiba Corp 画像符号化/復号化装置
JP3239870B2 (ja) * 1998-12-28 2001-12-17 日本電気株式会社 データ誤り訂正システム
US7127664B2 (en) * 2000-09-18 2006-10-24 Lucent Technologies Inc. Reconfigurable architecture for decoding telecommunications signals
JP3823731B2 (ja) 2001-01-17 2006-09-20 株式会社日立製作所 誤り訂正復号器
KR100415116B1 (ko) 2001-02-19 2004-01-13 삼성전자주식회사 비터비 디코더와 터보 디코더의 통합 디코더 및 통합디코딩 방법
US6823489B2 (en) * 2001-04-23 2004-11-23 Koninklijke Philips Electronics N.V. Generation of decision feedback equalizer data using trellis decoder traceback output in an ATSC HDTV receiver
KR100438537B1 (ko) 2001-07-19 2004-07-03 엘지전자 주식회사 이동 통신 단말기에서의 복호 장치 및 그 제어 방법
US7661059B2 (en) 2001-08-06 2010-02-09 Analog Devices, Inc. High performance turbo and Viterbi channel decoding in digital signal processors
KR100436434B1 (ko) * 2001-11-19 2004-06-16 한국전자통신연구원 상태 메트릭을 갖는 터보 복호기 및 그를 이용한 계산 방법

Also Published As

Publication number Publication date
CN1853350A (zh) 2006-10-25
WO2005050848A1 (en) 2005-06-02
JP2007510337A (ja) 2007-04-19
US20050149838A1 (en) 2005-07-07
GB2418822A (en) 2006-04-05
GB2418822B (en) 2007-12-12
GB0600603D0 (en) 2006-02-22
TWI313107B (en) 2009-08-01
GB2418822A8 (en) 2006-08-08
DE112004002008B4 (de) 2009-10-01
US7246298B2 (en) 2007-07-17
TW200518475A (en) 2005-06-01
DE112004002008T5 (de) 2006-09-07

Similar Documents

Publication Publication Date Title
CN100517984C (zh) 用于移动通信系统的维特比/涡轮联合译码器
US7127664B2 (en) Reconfigurable architecture for decoding telecommunications signals
JP3604955B2 (ja) 畳込み復号装置
AU762877B2 (en) Component decoder and method thereof in mobile communication system
US6865710B2 (en) Butterfly processor for telecommunications
US20070266303A1 (en) Viterbi decoding apparatus and techniques
EP2471183A1 (en) Method of communicating signal data in gnss using ldpc convolution codes and a system thereof
JP3549519B2 (ja) 軟出力復号器
EP1324502A2 (en) Cascade Map Decoder and Method
US6563890B2 (en) Maximum a posteriori probability decoding method and apparatus
US7020214B2 (en) Method and apparatus for path metric processing in telecommunications systems
KR100779782B1 (ko) 비터비 디코더 용 고속 acs 유닛
US6594795B1 (en) Viterbi decoder using a reverse trellis diagram
US7200798B2 (en) Unified serial/parallel concatenated convolutional code decoder architecture and method
US7234100B1 (en) Decoder for trellis-based channel encoding
US7590928B2 (en) Apparatus and method for Viterbi decoding
US7035356B1 (en) Efficient method for traceback decoding of trellis (Viterbi) codes
CN1787386A (zh) 一种维特比译码器路径度量存储的方法
US10270473B2 (en) Turbo decoders with stored column indexes for interleaver address generation and out-of-bounds detection and associated methods
JP2010206570A (ja) 復号装置、復号方法
WO2001003308A1 (en) Viterbi decoder
KR100726170B1 (ko) 비터비 복호 장치 및 방법
Arun et al. Minimized memory architecture for low latency Viterbi decoder using Zig-Zag algorithm

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