维特比译码器的制作方法

文档序号:7533704阅读:137来源:国知局
专利名称:维特比译码器的制作方法
技术领域
本发明涉及一种维特比译码器(Viterbi decoder),特别涉及一种装置的结构,在为提高译码速度而使用多个ACS(add-compare select,加-比-选)部件的维特比译码器中,该装置用于提供和存储在加-比-选(ACS)操作期间使用的状态量度(state metric)。
维特比译码器是一种通过使用最大似然法对用卷积码进行编码的码字进行译码的装置。维特比译码器将预定编码器的编码状态和接收码字的编码状态进行比较,选择最接近的编码路径,并对从所选路径传送的信息进行译码。


图1是传统维特比译码器的方框图。图1所示的维特比译码器包括支路量度计算器10、ACS部件12、状态量度存储器14、路径存储器16、和路径追迹逻辑部件18。
当图1所示的装置收到接收码字时,支路量度计算器10计算接收码字和可从编码器输出的预定码字(图中未示出)的相似性(汉明距离),并输出支路量度BM。ACS部件12接收支路量度计算器10提供的支路量度BM和状态量度存储器14中存储的先前(旧)状态量度OSM作为输入,执行加-比操作以选择幸存路径,并计算幸存路径的当前(新)状态量度NSM,该幸存路径显示了与接收码字的编码序列最接近的编码序列。选择出的幸存路径被存储在路径存储器16中,计算出的当前状态量度NSM被存储在状态量度存储器14中。路径追迹逻辑部件18参照存储在路径存储器16中的幸存路径,并根据接收码字的编码路径输出译码数据。
在维特比译码中,把接收码字中的每一个单个码字可能存在的状态数N定义为2K-1,其中K定义为约束长度。图1中的ACS部件12计算幸存路径的状态量度,当它有状态数个,即N个时,图1所示的装置就保持最快的处理速度。其原因是,对于可与单个码字对应而存在的N个状态,N个ACS部件各自同时执行ACS操作。
因此,由译码速度看来,最好是对含有N个状态的码字使用N个ACS部件。可是,当状态数(N)变得较大时,制造一个具有如此大容量的ACS部件就变得很困难。于是,当状态数N变得较大时,就必须适当地选择ACS部件的数目。
因为在一般的码分多址(CDMA)系统中,使用约束长度K为9的卷积码,所以状态数就是2K-1(=256)。如果使用256个ACS部件实现一个维特比译码器,那么译码速度较快但需要较多的硬件。同时,当维特比译码器中使用单个ACS部件时,需要较少的硬件但译码速度较慢。
本申请人在1990年12月17日提交的、题目为“State metric storagedevice(状态量度存储装置)”的韩国专利申请No.90-20808中公开了一种使用单个ACS部件的维特比译码器。在使用单个ACS部件的情况下该装置可以执行状态量度的快速输入和输出处理,但它不能应用于使用多个ACS部件的情况。
同时,本申请人在1996年3月18日提交的、题目为“ACS device ofViterbi decoder(维特比译码器的ACS装置)”的韩国专利申请NO.96-7208中公开了一种使用多个ACS部件提高译码速度的技术。该装置使用4个ACS部件以便提高译码速度。然而,由于该装置中含有典型的状态量度存储器,即,由单个存储器装置组成的状态量度存储器,故状态量度的输入和输出速度稍微慢一些。
本申请人在1997年3月14日提交的、题目为“State metric storingmethod and apparatus for Viterbi decoder(维特比译码器的状态量度存储方法及装置)”的韩国专利申请No.97-8603中公开了一种解决上述问题的技术,专利填写日期为。该装置使用两个状态量度存储部件,即,由两个存储器装置组成的状态量度存储部件,因而有效地提供和存储用于加-比-选操作中的状态量度。然而,由于需要2N的存储容量,其中N是状态数,故当N变得较大时,状态量度存储部件的存储容量就变得较大,难以负担。
为解决上述问题,本发明的目的就是提供一种维特比译码器,它使用多个ACS部件以提高译码速度,并能用小容量提供和存储状态量度。
相应地,为实现上述目的,本发明提供了一种维特比译码器,包括状态量度存储部分,该部分含有一个单个的存储簇(memory bank),用以读和写前一半的状态量度;以及两个存储簇,用以每当施加一个码字时交替地读和写后一半的状态量度,其中该状态量度存储部分由单个双端口存储器组成,它被所有的加-比选部件所使用。
这样,既然不使用存储前一半状态量度的存储器,那么与传统装置相比,用于存储状态量度的存储容量就大为减少。
通过参照附图对优选实施例进行详细描述,本发明的上述目的和优点将会变得更加明显,其中图1是一种传统维特比译码器的方框图;图2是另一种传统维特比译码器的方框图;图3A和3B是说明当约束长度为9时图1和图2所示装置操作的网格图;图4用以说明图2中加比-选部分的操作;图5是显示图2中加-比-选部分的详细方框图;图6显示图2中加比-选部分的操作;图7显示图2中状态量度存储部分的结构;图8是本发明的维特比译码器的方框图;图9是显示图8中状态量度存储部分的详细方框图。
下面将参照附图描述本发明的结构和效果。
示于图2中的、公开于韩国专利申请97-8603中的另一常规维特比译码器包括支路量度计算器20、由4个ACS部件22a-22d组成的ACS部件22、含有两个存储器28a和28b的状态量度存储器28、路径存储器26、和路径追迹逻辑部件24。
ACS部件22包括4个ACS部件22a-22d。ACS部件22a-22d中的每一个都对N/4个状态执行ACS操作。因为当编码效率(code ratio)为1/3且约束长度为9时状态数为256,所以ACS部件22a-22d中的每一个执行64(=256/4)次ACS操作。就是说,ACS部件22在64个周期的每一个周期内都参照4个先前状态量度和8个支路量度计算4个当前状态量度。
图3A和3B是说明图1和图2所示装置操作的网格图。我们知道,在卷积码编码器的稳定状态中,每当输入一个信息元(information bit)时,可能被转移的状态的个数被限制为两个,且被转移到的状态是一定的。例如,就图1和2所示的装置说来,第0状态只可能被转移到第0状态或第128状态,第2状态只可能被转移到第1状态或第129状态。
在图3A和3B中所示的被虚线分开的每一列中,左边的数字表示先前状态,右边的数字表示当前状态。连接状态的实线表示先前状态与当前状态之间的支路量度。例如,连接先前第0状态与当前第0状态的实线表示运两个状态之间的支路量度。
在图3A的左上部分中,把先前第0状态的状态量度和先前第0状态与当前第0状态之间的支路量度相加,就可获得一个数值,把先前第1状态的状态量度和先前第1状态与当前第0状态之间的支路量度相加,又可获得一个数值,将两个数值比较,取其中较小的作为当前第0状态的状态量度。
同样,把先前第0状态的状态量度和先前第0状态与当前第128状态之间的支路量度相加,就可获得一个数值,把先前第1状态的状态量度和先前第1状态与当前第128状态之间的支路量度相加,又可获得一个数值,将两个数值比较,取其中较小的作为当前第128状态的状态量度。
如果输入一个单个码字,那么在64个周期中的第一个周期内,ACS部件22就参照先前第0至第3状态的状态量度和其8个支路量度计算当前第0、第128、第1和第129状态的状态量度。
ACS部件22a参照先前第0和第1状态的状态量度及其2个支路量度计算当前第0状态的状态量度。
ACS部件22b参照先前第0和第1状态的状态量度及其2个支路量度计算当前第128状态的状态量度。
ACS部件22c参照先前第2和第3状态的状态量度及其2个支路量度计算当前第1状态的状态量度。
ACS部件22d参照先前第2和第3状态的状态量度及其2个支路量度计算当前第129状态的状态量度。
然后,在第二个周期内,ACS部件22参照先前第4、第5、第6和第7状态的状态量度及其8个支路量度计算当前第2、第130、第3和第131状态的状态量度。
ACS部件22a参照先前第4和第5状态的状态量度及其2个支路量度计算当前第2状态的状态量度。
ACS部件22b参照先前第4和第5状态的状态量度及其2个支路量度计算当前第130状态的状态量度。
ACS部件22c参照先前第6和第7状态的状态量度及其2个支路量度计算当前第3状态的状态量度。
ACS部件22d参照先前第6和第7状态的状态量度及其2个支路量度计算当前第131状态的状态量度。
ACS部件22重复上述操作直至它参照先前第252、第253、第254和第255状态的状态量度及其8个支路量度计算出当前第126、第254、第127和第255状态的状态量度。
这样的操作可一般化地描述为,在每一个周期内,ACS部件22参照先前第2i、第(2i+1)、第2(i+1)和第{2(i+1)+1}状态的状态量度及其8个支路量度计算当前第i、第(N/2+i)、第(i+1)和第(N/2+i+1)状态的状态量度。
这里,BM0是从先前第2i状态到当前第i状态的支路量度。
BM1是从先前第2i状态到当前第(N/2+i)状态的支路量度。
BM2是从先前第(2i+1)状态到当前第i状态的支路量度。
BM3是从先前第(2i+1)状态到当前第(N/2+i)状态的支路量度。
BM4是从先前第2(i+1)状态到当前第(i+1)状态的支路量度。
BM5是从先前第2(i+1)状态到当前第(N/2+i+1)状态的支路量度。
BM6是从先前第{2(i+1)+1}状态到当前第(i+1)状态的支路量度。
BM7是从先前第{2(i+1)+1}状态到当前第(N/2+i+1)状态的支路量度。
图4是说明图2中加-比选部分操作的方案图。参照图4可以看出,如果输入一个单个码字,那么在64个周期中的每一个周期内,ACS部件22参照先前第2i、第(2i+1)、第2(i+1)和第{2(i+1)+1}状态的状态量度及其支路量度BM0-BM7计算当前第i、第(N/2+i)、第(i+1)和第(N/2+i+1)状态的状态量度。
ACS部件22a参照先前第2i和第(2i+1)状态的状态量度及其2个支路量度BM0和BM2计算当前第i状态的状态量度。
ACS部件22b参照先前第2i和第(2i+1)状态的状态量度及其2个支路量度BM1和BM3计算当前第(N/2+i)状态的状态量度。
ACS部件22c参照先前第2(i+1)和第{2(i+1)+1}状态的状态量度及其2个支路量度BM4和BM6计算当前第(i+1)状态的状态量度。
ACS部件22d参照先前第2(i+1)和第{2(i+1)+1}状态的状态量度及其2个支路量度BM5和BM7计算当前第(N/2+i+1)状态的状态量度。
图5是详细显示图2中加-比-选部分的方框图。图5所示的装置包括两个加法器50和52、比较器54及选择器56。
加法器50把施加到BMu端口的支路量度和施加到SMu端口的先前状态量度相加,并输出信号“A”。同时,加法器52把施加到BM1端口的支路量度和施加到SM1端口的先前状态量度相加,并输出信号“B”。比较器54将来自加法器50的信号“A”和来自加法器52的信号“B”进行比较,如果A≤B则输出低电平路径选择信号PS,如果A>B则输出高电平路径选择信号PS。
选择器56根据比较器54输出的路径选择信号PS,在来自加法器50的信号“A”和来自加法器52的信号“B”中选择其一,并输出当前状态量度NSM。
ACS部件22a-22d中的每一个部件对一个输入码字执行64次操作。第一个ACS部件22a和第二个ACS部件22b执行有关偶数当前状态量度的操作,第三个ACS部件22c和第四个ACS部件22d执行有关奇数当前状态量度的操作。
具体地说,第一个ACS部件22a计算偶数当前状态量度中最初第0、第2、第4、…、第124和第126状态的状态量度。第二个ACS部件22b计算偶数当前状态量度中最后第128、第130、第132、…、第252和第254状态的状态量度。第三个ACS部件22c计算奇数当前状态量度中最初第1、第3、第5、…、第125和第127状态的状态量度。第四个ACS部件22d计算奇数当前状态量度中最后第129、第131、第133、…、第253和第255状态的状态量度。
图6显示了输入到ACS部件22的输入先前状态量度OSM和支路量度BM与从ACS部件22输出的当前状态量度NSM之间的关系。输入到ACS部件22a-22d中每一个部件的先前状态量度和支路量度及从那里的输出如下。
从图6中可以看出,先前第0、第4、第8、…、第120、第124、第128、第132、第136、…、第248和第252状态的先前状态量度按操作周期的进行顺序被施加到ACS部件22a的SMu端口。先前第1、第5、第9、…、第121、第125、第129、第133、第137、…、第249和第253状态的先前状态量度被施加到ACS部件22a的SM1端口。并且,在第0、第4、第8、…、第248和第252状态被转移到第0、第2、第4、…、第124和第126状态时分别向BMu端口施加支路量度。在第1、第5、第9、…、第249和第253状态被转移到第0、第2、第4、…、第124和第126状态时分别向BM1端口施加支路量度。
先前第0、第4、第8、…、第120、第124、第128、第132、第136、…、第248和第252状态的先前状态量度按操作周期的进行顺序被施加到ACS部件22b的SMu端口。先前第1、第5、第9、…、第121、第125、第129、第133、第137、…、第249和第253状态的先前状态量度被施加到ACS部件22b的SM1端口。并且,在第0、第4、第8、…、第248和第252状态被转移到第128、第130、第132、…、第252和第254状态时分别向BMu端口施加支路量度。在第1、第5、第9、…、第249和第253状态被转移到第128、第130、第132、…、第252和第254状态时分别向BM1端口施加支路量度。
先前第2、第6、第10、…、第122、第126、第130、第134、第138、…、第250和第254状态的先前状态量度按操作周期的进行顺序被施加到ACS部件22c的SMu端口。先前第3、第7、第11、…、第251和第255状态的先前状态量度被施加到ACS部件22c的SM1端口。并且,在第2、第6、第10、…、第250和第254状态被转移到第1、第3、第5、…、第125和第127状态时分别向BMu端口施加支路量度。在第3、第7、第11、…、第251和第255状态被转移到第1、第3、第5、…、第125和第127状态时分别向BM1端口施加支路量度。
先前第2、第6、第10、…、第122、第126、第130、第134、第138、…、第250和第254状态的先前状态量度按操作周期的进行顺序被施加到ACS部件22d的SMu端口。先前第3、第7、第11、…、第123、第127、第131、第135、第139、…、第251和第255状态的先前状态量度被施加到ACS部件22d的SM1端口。并且,在第2、第6、第10、…、第250和第254状态被转移到第129、第131、第133、…、第253和第255状态时分别向BMu端口施加支路量度。在第3、第7、第11、…、第251和第255状态被转移到第129、第131、第133、…、第253和第255状态时分别向BM1端口施加支路量度。
ACS部件22a按操作周期的进行顺序分别输出第0、第2、第4、第6、…、第124和第126状态的当前状态量度。ACS部件22b分别输出第128、第130、第132、第134、…、第252和第254状态的当前状态量度。ACS部件22c分别输出第1、第3、第5、第7、…、第125和第127状态的当前状态量度。ACS部件22d分别输出第129、第131、第133、第135、…、第253和第255状态的当前状态量度。
为了使ACS部件22正常地操作,在每一个周期都必须提供指定的先前状态量度。这由图2中的状态量度存储器28来完成。图2中的状态量度存储器28包括两个存储器28a和28b、多路复用器28c及控制信号和地址发生器28d。
每当输入一个单个码字时,这两个存储器28a和28b就交替地重复读/写操作。具体说就是,如果输入一个单个码字,那么存储在存储器28a中的状态量度就被读出且读出的结果作为先前状态量度施加到ACS部件22。ACS部件22新产生的当前状态量度被存储到另一存储器28b中。
当输入下一个码字时,存储在存储器28b中的状态量度就被读出且读出的结果作为先前状态量度施加到ACS部件22。ACS部件22新产生的当前状态量度被存储到另一存储器28a中。
如上所述,因为每当输入一个码字时两个存储器交替地执行读/写操作,所以读和写的操作能够被同时执行。这样,译码操作就能够快速而有效地进行。
首先,将描述存储器28a和28b的读操作。如图7所示,存储器28a和28b包括8个存储簇SMM_A-SMM_H。存储簇SMM_A存储第0、第4、第8、…、第120和第124状态的状态量度。存储簇SMM_B存储第1、第5、第9、…、第121和第125状态的状态量度。存储簇SMM_C存储第128、第132、第136、…、第248和第252状态的状态量度。存储簇SMM_D存储第129、第133、第137、…、第249和第253状态的状态量度。存储簇SMM_E存储第2、第6、第10、…、第122和第126状态的状态量度。存储簇SMM_F存储第3、第7、第11、…、第123和第127状态的状态量度。存储簇SMM_G存储第130、第134、第138、…、第250和第254状态的状态量度。存储簇SMM_H存储第131、第135、第139、…、第251和第255状态的状态量度。
在64个周期的前32个周期期间,存储在存储簇SMM_A和SMM_B中的状态量度被施加到ACS部件22a和22b,存储在存储簇SMM_E和SMM_F中的状态量度被施加到ACS部件22c和22d 。
在后32个周期中,存储在存储簇SMM_C和SMM_D中的状态量度被施加到ACS部件22a和22b,存储在存储簇SMM_G和SMM_H中的状态量度被施加到ACS部件22c和22d。
控制信号和地址发生器28d向各ACS部件施加读地址,以便在前32个周期期间,存储在存储簇SMM_A和SMM_B中的状态量度被施加到ACS部件22a和22b,存储在存储簇SMM_E和SMM_F中的状态量度被施加到ACS部件22c和22d。
然后,控制信号和地址发生器28d向各ACS部件施加读地址,以便在后32个周期期间,存储在存储簇SMM_C和SMM_D中的状态量度被施加到ACS部件22a和22b,存储在存储簇SMM_G和SMM_H中的状态量度被施加到ACS部件22c和22d。
控制信号和地址发生器28d向多路复用器28c施加一个控制信号,以便每当输入一个码字时,从其中一个存储器中读出的状态量度被施加到ACS部件22。
接下来,将描述存储器的写操作。从图6中可以看出,ACS部件22a按第0、第2、第4、第6、…、第124和第126状态的顺序执行输出操作,并按SMM_A、SMM_E、SMM_A、SMM_E、…的顺序重复该操作。ACS部件22b按第128、第130、第132、第134、…、第252和第254状态的顺序执行输出操作,并按SMM_C、SMM_G、SMM_C、SMM_G、…的顺序重复该操作。ACS部件22c按第1、第3、第5、第7、…、第125和第127状态的顺序执行输出操作,并按SMM_B、SMM_F、SMM_B、SMM_F、…的顺序重复该操作。ACS部件22d按第129、第131、第133、第135、…、第253和第255状态的顺序执行输出操作,并按SMM_D、SMM_H、SMM_D、SMM_H、…的顺序重复该操作。
控制信号和地址发生器28d产生地址信号,以便在奇数周期期间,新的状态量度被存储到存储簇SMM_A、SMM_C、SMM_B和SMM_D中,在偶数周期期间,新的状态量度被存储到存储簇SMM_E、SMM_G、SMM_F和SMM_H中。
在图2的装置中,将先前状态量度和新产生的当前状态量度存储在各存储器中,并在每当输入一个码字时交替执行读和写的操作,用这种方法可以提高译码速度。但是,过多的存储容量被消耗于存储状态量度。而且,因为状态量度存储器的存储容量达到了状态数N的两倍,所以当状态数变得较大时运个问题就更突出了。
图8是显示一种维特比译码器的方框图,该译码器含有一个本发明的状态量度存储器。在图8的装置中,与图2中相同的部分分配相同的标号,这部分将不再做详细描述。图9中所示的状态量度存储器38的最突出的特点就是使用双端口存储器以减少存储容量。我们知道,双端口存储器能够在单个时钟脉冲中对相同的存储单元执行读和写操作,运一点不同于传统RAM。就是说,指定存储单元的数据在时钟上升沿被读出并通过读数据总线输出,加载于写数据总线上的数据在时钟下降沿被写入指定存储单元。如上所述,因为能够在同一存储单元中执行读和写操作,所以就能够减少状态量度存储器的存储容量。
然而,如果不加修改地使用图7中所示的存储簇结构,就不能执行正常的读和写操作。其原因如下如图3A和3B所示,第128-第191状态的状态量度产生于64个周期的前32个周期。当产生的状态量度被记录到存储第128-191状态的状态量度的存储单元时,它们就不能被用于后32个周期。具体说就是,因为前32个周期中产生的状态量度是新状态的状态量度,而ACS部件22需要的状态量度是先前状态的状态量度,所以,当前32个周期中产生的第128-191状态的状态量度被记录到存储单元时,同单元内的先前第128-191状态的状态量度就不能被用于后32个周期。这样就产生了问题。
在本发明中,为解决此问题,使用了双端口存储器,其内部安装了一个用于前一半状态的存储簇和两个用于后一半状态的存储簇。用于前一半状态的存储簇能够同时执行读和写操作,用于后一半状态的两个存储簇能够交替执行读和写操作。就是说,在一个存储簇执行读操作的期间,另一个存储簇执行写操作,每当输入一个码字时,就交替执行上述操作。
图9是显示图8中状态量度存储器的详细方框图。在图9的装置中,标号38a表示ACS计数器,标号38b表示写地址发生器,标号38c表示读地址发生器,标号38d表示双端口存储器,标号38e表示写交叉部件(write crossunit),标号38f表示读交叉部件(read cross unit)。
ACS计数器38a按64个周期的顺序依次地执行计数操作。写地址发生器38b根据ACS计数器38a的计数结果产生存储器38d的写地址。读地址发生器38c根据ACS计数器38a的计数结果产生存储器38d的读地址。
写交叉部件38e按照ACS部件22的结构改变写入存储器38d的状态量度的顺序。读交叉部件38f根据ACS部件22的结构改变读自存储器38d的状态量度的顺序。
首先,描述存储器38d的读操作如下。如图9所示,存储器38d由12个存储簇SMM_A至SMM_L组成。存储簇SMM_A存储第0、第4、第8、…、第120和第124状态的状态量度。存储簇SMM_B存储第1、第5、第9、…、第121和第125状态的状态量度。存储簇SMM_E存储第2、第6、第10、…、第122和第126状态的状态量度。存储簇SMM_F存储第3、第7、第11、…、第123和第127状态的状态量度。
存储簇SMM_C和SMM_I存储第128、第132、第136、…、第248和第252状态的状态量度。存储簇SMM_D和SMM_J存储第129、第133、第137、…、第249和第253状态的状态量度。存储簇SMM_G和SMM_K存储第130、第134、第138、…、第250和第254状态的状态量度。存储簇SMM_H和SMM_L存储第131、第135、第139、…、第251和第255状态的状态量度。
在64个周期的前32个周期期间,存储在存储簇SMM_A和SMM_B中的状态量度被施加到ACS部件22a和22b,存储在存储簇SMM_E和SMM_F中的状态量度被施加到ACS部件22c和22d。
在后32个周期期间,存储在存储簇SMM_C和SMM_D中的状态量度被施加到ACS部件22a和22b,存储在存储簇SMM_G和SMM_H中的状态量度被施加到ACS部件22c和22d。
在64个周期的前32个周期期间,读地址发生器38c向各ACS部件施加读地址,以使存储在存储簇SMM_A和SMM_B中的状态量度被施加到ACS部件22a和22b,存储在存储簇SMM_E和SMM_F中的状态量度被施加到ACS部件22c和22d。
然后,在后32个周期期间,读地址发生器38c向各ACS部件施加读地址,以使存储在存储簇SMM_C和SMM_D中的状态量度被施加到ACS部件22a和22b,存储在存储簇SMM_G和SMM_H中的状态量度被施加到ACS部件22c和22d。
当输入下一个码字时,在64个周期的前32个周期期间,读地址发生器38c向各ACS部件施加读地址,以使存储在存储簇SMM_A和SMM_B中的状态量度被施加到ACS部件22a和22b,存储在存储簇SMM_E和SMM_F中的状态量度被施加到ACS部件22c和22d 。
然后,在后32个周期期间,读地址发生器38c向各ACS部件施加读地址,以使存储在存储簇SMM_I和SMM_J中的状态量度被施加到ACS部件22a和22b,存储在存储簇SMMVK和SMM_L中的状态量度被施加到ACS部件22c和22d。
其次,描述存储器的写操作如下。如果输入某一个码字,那么写地址发生器38b就产生存储簇SMM_A、SMM_B、SMM_E、SMM_F、SMM_I、SMM_J、SMM_K和SMM_L的写地址。当输入下一个码字时,写地址发生器38b产生存储簇SMM_A、SMM_B、SMM_E、SMM_F、SMM_C、SMM_D、SMM_G和SMM_H的写地址。
因此,每当输入每一个码字时,存储簇SMM_A、SMM_B、SMM_E、SMM_F都被使用。然而,存储簇SMM_C、SMM_D、SMM_G和SMM_H,与存储簇SMM_I、SMM_J、SMM_K和SMM_L交替地执行读和写的操作。
如上所述,我们已就使用4个ACS部件的情况描述了本发明的实施例。值得注意的是,甚至当使用2n(其中n为1,2,…)个ACS部件时,本发明也可以不加任何修改地应用。在这种情况下,每一个存储器都被分成与ACS部件个数相同的存储簇。因此,应该理解,本发明保留所附权利要求的范围。
如上所述,本发明的装置的效果是,通过使用双端口存储器而减少用于存储状态量度的存储容量。
而且,本发明的装置将存储结构分为一个用于前一半状态的存储簇和两个用于后一半状态的存储簇,它们包含在一个单个的存储部件中。让用于前一半状态的一个存储簇同时执行读和写操作,并且让两个存储簇按码字交替执行读和写操作,这样可以防止误操作。存储器的个数等于ACS部件的个数。
在传统的现有技术中,为了存储状态量度,需要状态数信息量两倍的存储容量,并且将存储器分成ACS部件个数4倍的多个存储器。当使用本发明的装置时,存储容量只是状态数的1.5倍,存储器被分为与ACS部件个数一样。因此,就可以大大地降低维特比译码器的制造成本。
权利要求
1.一种维特比译码器,包括支路量度计算器,用于计算输入码字和可从编码器输出的预定码字之间的相似性,并输出2N个支路量度,这里N为状态数;加-比-选(add-compare-select,ACS)部分,用于接收由支路量度计算器提供的2N个支路量度和N个先前状态量度以执行加-比操作,选择幸存路径,并计算N个当前状态量度,所述幸存路径显示了与接收码字的编码序列最接近的编码序列;以及状态量度存储器,用于向ACS部件提供N个先前状态量度或存储ACS部件产生的N个当前状态量度,该译码器的特征在于所述ACS部件包括M个ACS部件,每当输入一个码字时其中的每一个ACS部件都在N/M个周期期间执行N/M次操作。所述状态量度存储器包括存储器,包括一个存储簇,用于读和写由所述ACS部件产生的N个状态量度中的前一半状态量度;和两个存储簇,用于每当输入一个码字时交替地读和写后一半的状态量度;计数器,用于对所述周期的进行顺序进行计数;写地址发生器,用于根据所述计数器的计数结果产生所述存储器的写地址;读地址发生器,用于根据所述计数器的计数结果产生所述存储器的读地址。
2.如权利要求1所述的维特比译码器,所述存储器是双端口存储器。
3.如权利要求1所述的维特比译码器,所述状态量度存储器还包括写交叉部件(write cross unit),用于根据所述ACS部件的结构重排(realign)写入存储器的状态量度。
4.如权利要求1所述的维特比译码器,所述状态量度存储器还包括读交叉部件(read cross unit),用于根据所述ACS部件的结构重排读自存储器的状态量度。
全文摘要
在为提高译码速度而使用多个加-比-选(ACS)部件的维特比译码器中,公开一种用于提供和存储状态量度的装置,该状态量度用于ACS操作。维特比译码器中的状态量度存储器使用双端口存储器,在单个存储器包括:一个存储簇,用于读和写由ACS部件产生的N个状态量度中的前一半状态量度;两个存储簇,用于每当输入一个码字时交替地读和写后一半的状态量度。因此,与传统装置相比,大大地减少了用于存储状态量度的存储容量。
文档编号H03M13/41GK1208287SQ9811801
公开日1999年2月17日 申请日期1998年8月5日 优先权日1997年8月7日
发明者崔圣汉, 孔骏镇 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1