具有按位片顺序实现的路径量度更新的维特比解码的制作方法

文档序号:6782293阅读:218来源:国知局
专利名称:具有按位片顺序实现的路径量度更新的维特比解码的制作方法
技术领域
本发明涉及用于对编码数据流进行解码的一种系统和方法。
先有技术说明经由硬盘的磁头等通过诸如无线电、红外线等媒体传送数据时,经常会引起误码。相应地,人们已经知道,在传输前对数据进行编码,以便在传送原始数据前将冗余添加到原始数据。随后,在接收数据流时使用合适的解码器对编码的数据流进行解码。当然,编码时添加的冗余越多,需要传送的比特就越多,并且相应地,需要在添加的冗余量与由于添加冗余而实现的误码复原量之间进行平衡。
一种常见的编码技术常称为卷积编码,它产生包括多个代码的编码数据流。当编码器接收要编码的输入时,例如接收数据比特时,编码器便接收输入以及编码器接收的多次先前输入来生成代码。称为“约束长度”的术语用于表示卷积编码器为生成输出代码而使用的输入次数。例如,如果约束长度“k”为7,这表示卷积编码器生成的输出代码依赖于当前输入加上先前的6次输入。相应地,可以明白,对于每次输入,编码器可能有2k-1个先前状态。
上述类型的编码例如在硬盘驱动器、移动电话和数字音频广播(DAB)无线电中有多种用途。一个涉及DAB的标准示例是1997年5月发布的题为“无线电广播系统;向移动、便携和固定接收机发送的数字音频广播(DAB)”的ETSI(欧洲电信标准协会)ETS 300401标准(第二版)。在DAB无线电中,编码器的约束长度k为7,因此,对于每个输入比特,编码器可能有64种状态(按6个先前输入比特)。
在原始数据比特序列已被编码形成编码数据流时,可以明白,在接收端需要提供一种技术用于对数据流进行解码,并使用数据流中的冗余以试图纠正接收信息中的任何错误。常用于执行这种解码的一种算法是维特比算法,该算法一般用于对卷积编码数据流进行解码。McGraw-Hill公司出版的John G.Proakis编写的文献“数字通信”(第三版)中对维特比算法进行了全面的描述。
按照维特比技术,生成诸如

图1所示的表,2k-1种状态中的每一个状态都有一个条目,并且在接收到编码数据流中的每个代码时表都会被更新。因此,如图1所示,每个条目都具有标识状态的字段20、标识与所述状态相关联的“量度”或记分(score)的字段30、以及给出预定数量比特的指示的路径历史40,在假定相关联状态是最可能的状态的条件下,所述预定数量比特被认为是原始数据序列中的比特。
当每个代码被接收时,每个状态的量度30必须被更新,并且具有“最佳”量度的状态(例如,视实现而定,一般是具有最低或最高值的)被选定为具有正确路径。相应地,所述状态路径历史40中最早的比特随后作为该级的正确输出比特被输出。
为指明一般是如何对每种状态更新量度,参考图2,该图表示新状态是如何与先前状态相关。可以明白,假定某特定状态正确,则在编码器接收到新比特时,该新比特将为逻辑0值或逻辑1值,并且相应地,对于编码器用来生成代码输出的数据有两种可能性。由于存在信号恶化的可能性,可以明白,在解码器接收到代码时,对于表10中的每种状态,必需确定该状态表示与新输入比特一起用于生成代码的k-1个先前输入比特的可能性。
参照图2,此图说明假定约束长度k为4时的可能状态,并且相应地三个先前输入比特与新输入比特一起用于生成代码。在图的左手侧,可以看到三个先前比特的所有8种可能状态均被表示。考虑原状态为001的示例,可以明白,编码器生成的代码所依据的数据可为0010或0011,即新比特可以为0或1。如果比特实际上是0010或0011,则解码器知道编码器生成的代码将是什么,并且相应地将那些代码与接收的代码相比较,以确定用于生成传送代码的比特实际上为0010或0011的可能性。此比较产生更新值(常称为汉明距离),该值可用于生成状态的更新记分。
同样从图2中可以明白,虽然代码一经处理后,表10中仍具有相同的状态组,但这些状态与原状态相关的方式却很复杂。例如,新状态010可能从先前状态001或101中产生,两种情况下,接收的新比特均为0。因此,根据将接收的代码分别与预计为0010和1010的代码进行的比较,可生成每种可能性的汉明距离。随后,检索与原状态001相关联的量度,并且将对应的汉明距离添加到该量度,从而产生可能的更新量度。对与状态101相关联的量度重复此过程,由此现在算得新状态010的两个可能的量度。对两个可能的量度中被认为最佳的那个量度(例如,如果汉明距离被定义为随两个代码之间的匹配变坏而增加时,具有最小值的那个量度)进行选择并且用作状态010的新量度。此外,相关比特被添加到相关路径历史中。例如,如果认为状态010从状态001中产生,则可以看到逻辑0值将添加到001的路径历史中。随后,此路径历史作为该状态的新路径历史被复制到状态010。另一方面,如果认为状态010从状态101中产生,则可以看到逻辑1值将被添加到状态101的路径历史中,并且此路径历史随后作为该状态的新路径历史被复制到状态010。
对表10中的每种状态都执行上述过程,最终结果是更新了每个量度30和路径历史。另外,如果路径历史已满,则在与具有最佳量度的状态相关联的路径历史中最早的比特会在此时被视为原始数据序列中的正确比特被输出。
如果上述说明成立,可以明白,对于每种状态更新,需要将两个量度(经常是从不同状态到正更新状态的量度)添加到两个汉明距离(它们依赖于接收的代码),并且选择两个距离中较小的距离(假定较小距离为更佳)并随后将其存储,与正更新的状态相关联。稍后,在需要解码器的输出比特时,比较所有量度,并且认为具有最佳量度的状态与最接近原始数据的路径相关联。
从上述说明中可以明白,如上所述,由于每种状态更新都需要将两个量度添加到两个汉明距离,将两个结果进行比较,并选择其中之一,因而确定每种状态更新需要执行大量的处理。随后需要对表10中的每种状态重复进行此过程。
因此,本发明的一个目的是为更新每种状态的量度提供改进的技术。
发明概述从第一方面来看,本发明提供了一种对表示原始数据比特序列的编码数据流进行解码的方法,其中编码数据流包括多个代码,每个代码依赖于当前数据比特和原始序列中第一预定数量的先前数据比特。该方法包括以下步骤(a)对于第一预定数量的先前数据比特的多种可能状态中的每种状态,提供一个记分,该记分指出对应状态表示第一预定数量的先前数据比特的可能性;(b)以初始排序安排记分;(c)接收代码;(d)给定接收代码中当前数据比特的两个可能值中的每个值,根据接收代码,为每种状态确定两个更新值,所述两个更新值指出所述状态表示第一预定数量的比特的可能性;(e)存储第一多个记分位片以共同表示按所述步骤(b)排列的记分,每个记分位片包含各自记分的一个预定比特;(f)对记分进行重新排序,并存储第二多个记分位片,以共同表示重新排序的记分,每个记分位片包含各自重新排序的记分的一个预定比特;(g)从更新值为第一多个记分位片生成第一多个更新位片,并且为第二多个记分位片生成第二多个更新位片,每个更新位片表示所述更新值的预定比特中的一个预定比特;(h)从第一多个记分位片和第一多个更新位片来生成第一候选多个更新记分位片,并且从第二多个记分位片和第二多个更新位片来生成第二候选多个更新记分位片;(i)对于位片表示的每个记分,通过应用预定准则从第一候选或第二候选多个更新记分位片中选择所述记分的比特,来生成多个更新记分位片;由此所有记分被同时更新。
本发明不是每次更新一种状态的记分,而是使所有状态的记分同时被更新。在常规先有技术方法中,每个记分存储在单独的字中,但按照本发明,通过将计算中所需的相关值进行“比特切片(bitslicing)”,实现了记分的同时更新。因此,按照本发明的优选实施例,每个状态的记分的最低有效位被结合在单个字中(视状态的数量而定,该字可包括多个机器字,例如多个32比特机器字),所有状态的记分的其次最高有效位被结合在另一字中,等等。因此,就每个记分要求具有8比特精度的示例而言,一般要提供8个位片来保持所有记分。参照下面的两个表格以示例来描述所述比特切片技术,其中,表1说明记分a、b、c、d、…z存储在单独的字中的常规技术,而表2示出优选实施例的比特切片技术,其中每个字(“位片”)包含每个记分的一个预定比特
表1
表2按照本发明,第一多个记分位片按初始记分排序来存储。然而,如前面参照图2所述,有两种可能的路由用来更新任何特定状态。按照本发明,此问题的解决是通过对记分进行重新排序并存储第二多个记分位片以共同表示重新排序的记分,这样,随后存储两个单独的多个记分位片。
此外,按照本发明,更新值(例如汉明距离)也作为位片存储,带有为第一多个记分位片生成的第一多个更新位片和为第二多个记分位片生成的第二多个更新位片。
随后,从第一多个记分位片和第一多个更新位片来生成第一候选多个更新记分位片,并且同样地,从第二多个记分位片和第二多个更新位片来生成第二候选多个更新记分位片。在优选实施例中,通过将对应的多个记分位片和对应的多个更新位片加在一起,来生成了这些候选多个更新记分位片。
按照本发明,随后采用最终步骤,它应用预定准则来为每个单独的记分确定是否应从第一候选多个更新记分位片或第二候选多个更新记分位片中选择该记分。这导致最终多个更新记分位片的生成,所述最终多个更新记分位片反应了所有更新记分,由此可以看到所有记分被同时更新。
在优选实施例中,本发明的方法用软件来实现,并且由于同时更新所有记分,它大大提高潜在速度,优于已知的先有技术。
在优选实施例中,从编码数据流一收到另一代码,多个更新记分位片就被作为第一多个记分位片来对待,并重复步骤(f)到(i),在步骤(g)中使用的更新值基于所述另一代码。
在已知的先有技术系统中,如前面参照图2所述的那样,量度不被回写到读出它们的相同状态,并且实际上一些量度可以重复。为此,传统的先有技术使用两组量度和路径历史。一组用于写入,而另一组用于读取。一旦更新了所有状态,则它们被交换。在这些先有技术中,状态的位置保持相同,而量度发生变化。对于特定状态n和N状态维特比量度[n*2]来自量度[n]或量度[n+N/2]。
量度[n*2+1]来自量度[n]或量度[n+N/2]。
例如,这可以看作是图2示例的情况,其中N为8,并且n从0到7变化。
因此,由于在每次更新结束时,每个位片中的所有比特均需要来回变化,因而将记分存储为多个位片似乎会导致许多复杂情况。然而,按照本发明的优选实施例,对于每次迭代,多个更新记分位片被作为第一多个记分位片来对待,而无需重新排列每个位片中的比特,并且记分仅被重新排序以形成第二多个记分位片。在这样的优选实施例中,可以发现,假定每个代码依赖于k个比特,则虽然在步骤(f)到(i)的每次迭代期间由多个更新记分位片中包含的各个记分所表示的状态改变,但在步骤(f)到(i)的k-1次迭代之后,记分回到初始排序。因此,通过此方法,而不是象已知的先有技术的情况那样将状态保持在相同位置,至少一组量度保持在相同位置,并且在每次迭代期间量度表示的标称状态(nominal state)改变。然而,在相对少的迭代次数中,记分回到初始排序。
在优选实施例中,对于k-1次迭代中的每次迭代,保持各个记分表示的状态的记录。因此,知道执行的哪一次迭代,便可确定任何特定记分相关联的状态。
在优选实施例中,步骤(f)中对记分的重新排序依赖于特定的迭代。然而,由于在优选实施例中,未发生第一多个记分位片的重新排序,因此,可以发现,对记分进行重新排序以形成第二多个记分位片只涉及量度的线性重新排序,而不涉及前面参照图2所述的复杂扇出变化(fanning out movement)。因此,可以发现,在本发明的优选实施例中,执行重新排序所需的操作次数大大少于相对于已知的先有技术指出的复杂重新排序所需的操作次数。
在优选实施例中,在对编码数据流进行解码之前执行步骤(d),以便为k-1次迭代中的每次迭代生成更新位片的查找表,由此在所述步骤(g)中,根据接收代码、迭代及更新位片是否用于第一或第二多个记分位片的指示,从查找表读取更新位片。由于在优选实施例中,记分在k-1次迭代后回到初始排序,于是很明显,对于更新位片,只存在有限数量的可能性。因此,有可能生成提供所有可能更新位片的查找表,从而无需在解码过程中生成那些更新位片。查找表的大小将依赖于可能的接收代码的数量、迭代的次数、以及表示更新值所需的位片数量。然而,对于诸如DAB无线电的实际示例,可以发现查找表具有相当适度的大小。例如,就DAB无线电而言,k=7,因此迭代的次数为6。此外,代码的长度是4个比特,于是发现,更新值可由三个比特表示,因此只需要三个位片。这导致对于更新过程中使用的第一和第二多个记分位片的其中每一多个记分位片,查找表中需要存储288个更新位片(16个代码×6级×3个位片),或合计576个更新位片。
在优选实施例中,步骤(i)包括从第一候选多个更新记分位片减去第二候选多个更新记分位片以形成路径历史位片的步骤,选择由多个更新记分位片所表示的特定记分的比特,其依赖于路径历史位片中对应位置上的比特值。在优选实施例中,路径历史位片包含出所述相减的进位输出值(carry out values)。因此,如果第一多个更新记分位片由MA表示,而第二候选多个更新记分位片由MB表示,则路径历史位片中特定位置上的0值将指出MA中的对应记分大于MB中的对应记分,而逻辑1值则指出MB中的对应记分大于MA中的对应记分。因此,根据路径历史位片中的值,可以明白,可以确定在步骤(i)生成的最终多个更新记分位片中要使用哪个记分。
在优选实施例中,路径历史位片被添加到包括多个路径历史位片的路径历史中,路径历史被用于为任何特定状态确定第二预定数量的比特,所述第二预定数量的比特被认为是在第一预定数量之前的原始序列中的比特。在此类实施例中,可以明白,在此级无需参照先前路径历史位片,并且相应地,路径历史位片可以只添加到路径历史,而无需在那时读取任何先前路径历史位片。这是特别有效的更新路径历史的方式。
可以明白,因为各个路径历史在每次迭代期间未变化,并且允许状态来回变化(因为多个记分位片中的至少一个未被重新排序),于是追溯任一特定状态的路径历史似乎麻烦。然而,在优选实施例中,每个路径历史位片与所述k-1次迭代之一相关联,由此可以参照所述记录为任一特定状态确定第二预定数量的比特。因此,显然,可得到必要的信息以允许进行追溯。此外发现,在优选实施例中,如果允许路径历史比其本来可能的长度长,则追溯可以延迟,直至大量的比特输出,这样,每个输出比特的追溯开销变得更低。重要的是要指出,在本发明优选实施例中,由于只通过添加新路径历史位片来更新路径历史,而无需在所述级读取路径历史,因此,更新路径历史的性能不受路径历史额外长度的影响。
因此,在优选实施例中,在预定间隔内,记分被比较,以便选择最符合预定准则的记分,对应于所述记分的状态被确定,并且用于所述状态的多个所述第二预定数量的比特被确定并作为原始数据比特序列的解码部分被输出。
从第二个方面来看,本发明提供一种用于对表示原始数据比特序列的编码数据流进行解码的系统,其中编码数据流包括多个代码,每个代码依赖于当前数据比特和原始序列中第一预定数量的先前数据比特。所述系统包括记分生成器,对于第一预定数量的先前数据比特的多种可能状态中的每种状态,提供一个记分,该记分指出对应状态表示第一预定数量的先前数据比特的可能性;分类器,以初始排序安排记分;更新值生成器,它对收到代码作出响应,给定接收代码中当前数据比特的两个可能值的每个值,更新值生成器根据接收代码,为每种状态确定两个更新值,所述两个更新值指出所述状态表示第一预定数量的比特的可能性;记分生成器被安排成将初始排序的记分共同表示为第一多个记分位片,每个记分位片包含各自的记分的一个预定比特;分类器被安排成对记分进行重新排序,并且记分生成器被安排成将重新排序的记分共同表示为第二多个记分位片,每个记分位片包含各自的重新排序的记分的一个预定比特;更新值生成器被安排成从更新值为第一多个记分位片生成第一多个更新位片,并且为第二多个记分位片生成第二多个更新位片,每个更新位片表示所述更新值的预定比特中的一个预定比特;记分生成器被安排成从第一多个记分位片和第一多个更新位片来生成第一候选多个更新记分位片,从第二多个记分位片和第二多个更新位片来生成第二候选多个更新记分位片,并且对于位片表示的每个记分,通过应用预定准则从第一候选或第二候选多个更新记分位片选择所述记分的比特,来生成多个更新记分位片,由此所有记分被同时更新。
从第三个方面来看,本发明提供一种可用于配置计算机处理部件执行如本发明第一方面所述的方法的计算机程序。可以明白,术语“计算机处理部件”意思是包括任何可执行计算机程序的计算装置,因此,例如可以是常规微处理器、专用逻辑部件等。
从第四个方面来看,本发明提供一种载体媒体,它包含按照本发明第三方面的计算机程序。载体媒体可以是存储装置,例如CD-ROM、软盘、RAM、ROM等。另一方面,载体媒体可以是可传送计算机程序的任何其它媒体,例如通过因特网便于计算机程序电子分布的电信基础设施。
附图简述现将参照如附图所示的优选实施例,仅以示例方式进一步描述本发明,附图中图1说明按照维特比解码技术的已知实现来为可能的状态生成的表;图2是说明按照已知先有技术的在更新操作期间量度如何变化的视图;图3是说明按照本发明优选实施例的在更新操作期间量度和状态如何变化的视图;图4是说明可应用本发明优选实施例技术的DAB接收机的基本部件的方框图;图5是示意性说明按照本发明优选实施例的图4的解码器中的功能部件的方框图;以及图6和7是说明按照本发明优选实施例的图4的解码器中执行的过程的流程图。
优选实施例说明对于一般先有技术方法,每次更新每个维特比状态的一个量度,与此不同的是,本发明的优选实施例提供一种技术,通过该技术同时更新所有量度。如前面所述,通过将计算中所需的相关值进行“比特切片”,实现了每个状态的量度的所述同时更新。然而,从前面所述图2明显知道,要保持状态的位置相同,量度必须在复杂的扇出排列中的更新之间来回变化。这意味着在更新每个量度的状态时,每个位片中的所有比特必需来回变化。
然而,按照本发明的优选实施例,对于每次更新迭代,允许一组量度保持在相同位置,并且该量度表示的标称状态随后在从一个迭代到另一个迭代中变化。此过程在图3中有述,这象图2一样,说明假定约束长度k为4时的可能状态,因此三个先前输入比特与新输入比特一起用于生成一个传送代码。
如图2一样,图中示出三个先前比特的所有8种可能状态。在称为0级、1级和2级的每次更新迭代中,一组量度位片如水平线所示保持在相同位置。如有必要,另一组量度位片(第一组要与其相比较)将必须变化,但从图3明显知道,此变化是以不牵涉图2所示扇出的线性方式进行。已经发现,在典型的实现中,这使执行重新排序所需的操作数减少到每字长位片3个操作。
要从图3指出的重要点是,虽然在每个更新级后,由量度位片组中的任何特定量度表示的标称状态一般会改变,由量度位片表示的状态将在k-1级之后回到其原始排序。因此,在图3所示实例中,k=4,状态回到在3级之后回到其初始排序。同样,对于DAB无线电,k=7,状态将在6级之后回到其初始排序。
假设仅具有有限数量的不同级,显然,在任一特定级结束后,记录量度位片组中任一特定量度表示的状态会相对简单。特别是,对于状态n,在i级(i的值在0到k-2之间),表示状态n的量度的比特将在每个位片中的比特位置(n>>i)(比特位置开始于比特位置0),其中n>>i表示n向右旋转i比特,到比特k-2绕回(where n>>Irepresents n rotated i bits to the right with around to bit k-2.)。从图3明显知道这点,其中,如果我们考虑状态010,在0级时量度比特将在比特位置010,即比特位置2,在1级时,量度比特将在比特位置001,即比特位置1,并且在2级时,量度比特将在比特位置100,即比特位置4。在这3(即k-1)个级之后,状态010回到其初始排序(即比特位置2)。
如前面所述,在生成更新记分位片时,使用了两个不同的多个记分位片,第一多个记分位片中的比特(以下称为M)保持其原始排序,而第二多个记分位片中的比特(以下称为Mx)以图3所示的线性方式变化。在优选实施例中,Mx按如下所述算得,其中k是约束长度且i(0…k-2)是级号。
令s=(k-2)-i;shift=2^(s);mask=2^(k-1)个比特的mask,带有mask集的比特j,如果比特s是j的集合(换而言之,mask是后面跟有“shift”个1的“shift”个0的重复模式)。
则,Mx=((M<<shift)AND mask)OR((M>>shift AND NOT mask)在优选实施例中,除了以位片格式安排量度外,汉明距离还被排列成位片。假定在状态回到其初始排序之前一般仅有有限数量的级,则将仅有有限数量的可能的汉明距离位片。相应地,在优选实施例中,这些位片被预定并被存储在查找表中以供解码期间使用。下列等式说明如何从查找表获得任一特定的汉明距离位片。
汉明距离<位片>=查找表[接收代码][级][位片][M或Mx]。
如前面所述,对于DAB无线电,k=7,因此级数为6,并且代码长度为4比特。另外,汉明距离可以由3个比特表示,并且相应地,对于更新操作所需的任一特定汉明距离组,存在3个要从查找表获得的位片。根据上述等式,有576种汉明距离位片的可能性,因此这些位片可容易地存储在查找表中。
假定按照本发明的优选实施例,状态不是静态的,而是在级间变化,则这似乎大大增加了从路径历史读出比特所需的追溯过程的复杂性。然而,在优选实施例中,路径历史也存储为位片,并且由于不需要载入路径历史以进行更新,这大大减少了路径历史更新开销。而新路径历史位片仅被写入历史缓冲器末端。然而,因为路径历史未随级间状态的变化而变化,于是存在执行追溯牵涉到的某种额外的复杂性。然而,在优选实施例中,通过提供稍微更大的历史缓冲器、延迟追溯、并且随后产生作为单个追溯过程结果的多个输出比特,稍稍降低了复杂性。如果允许路径历史变得更长,则可能延迟追溯直至有大量要输出的比特,这样,每个输出比特的追溯开销变得更低。由于在优选实施例中,路径历史作为位片序列被处理,并且每个路径历史位片仅被添加到历史缓冲器末端,而无需在该级装在在路径历史中,因此,更新路径的性能不受路径历史额外长度的影响。
提供对优选实施例技术的概括描述后,现在将参照图4和图5,更详细地讨论DAB无线电接收机中该技术的实现。图4是说明DAB接收机中的基本功能块的方框图。卷积编码的射频信号在天线105被接收,并经过解调器和数字化转换器电路100以便对该信号进行解调,并提供模数转换。本领域的技术人员将明白,此电路是众所周知,并且相应地在此不做进一步描述。数字化信号随后被传送到解码器110,在该解码器中进行本发明优选实施例的解码过程,产生输出到无线电接收机电路120的数据比特序列。正如本领域的技术人员知道的那样,无线电接收机电路120可由多个众所周知的接收机电路的任一电路来提供,并且相应地在此不做进一步描述。随后,无线电接收机电路120的输出在被输出到扬声器140之前,由数模转换器130转换回模拟信号。
图5是从概念上说明按照本发明优选实施例的解码器110中的主要功能部件的方框图。存储器240表示解码器110可访问的一般存储器,用于存储记分生成器210所需的数据,并且可以采取高速缓存、RAM、DRAM等或这些存储装置的组合的形式。因此,当前记分位片、路径历史位片、及当前迭代级的指示(及因此状态当前排序指示)可存储在存储器240中。记分生成器210被安排成将记分(或量度)共同表示为第一多个记分位片。此外,分类器200被安排成对由记分生成器提供的有关迭代级的信息进行响应,以对记分进行重新排序,并且将重新排序的记分反馈给记分生成器,以便允许提供第二多个记分位片供更新过程使用。
更新值生成器220对记分生成器210进行响应以访问查找表230,以便检索汉明距离位片供记分生成器210使用。记分生成器将向更新值生成器220指出迭代级以及是否需要第一多个记分位片或第二多个记分位片的位片。根据此信息和接收代码正被解码的指示,更新值生成器220将访问查找表以获得汉明距离位片,这些位片随后被返回到记分生成器210。本领域的技术人员可以明白,查找表230物理上可驻留在存储器240内,或者可单独提供。
记分生成器210随后负责生成多个更新记分位片,并向存储器240输出路径历史位片以更新路径历史。记分生成器210也可在需要时执行追溯例程,以便从解码器输出多个比特。通过确定最佳量度(例如具有最小值的量度),并从最近路径历史位片中的对应值及迭代级的指示开始,开始进行此追溯过程。根据对从一个迭代级到另一个迭代级的状态之间相互关系(如图3中示意性说明的)的知识,记分生成器210可通过不同的路径历史位片追溯,所述相互关系一般存储在记分生成器210可访问的查找表中。所述追溯过程导致用于从解码器输出的一个或多个输出比特的识别。
在本发明的优选实施例中,分类器200、记分生成器210和更新值生成器220的功能以可在微处理器上执行的软件来实现,尽管将知道这些功能中的一个或多个以固件或硬件来实施。
现在将参照图6和图7的流程图来更详细地描述由解码器110为处理每个接收代码并相应地更新量度而执行的过程。该过程从步骤300开始,其中两个参数“STAGE(级)”和“COUNT(计数)”均设为0。随后,在步骤310中,确定是否已接收新代码。一旦接收新代码,该过程继续进行步骤320,在该步骤中更新量度。此过程将在后面参照图7进行更详细地描述。
一旦更新量度,在步骤330中将参数STAGE加1,并且随后在步骤340中确定参数STAGE是否大于或等于6(即k-1)。如果是,则该过程转到步骤350,在该步骤中重新归一化量度,其后参数STAGE在步骤360被重置为0。本领域的技术人员将明白,有多种技术可用于重新归一化量度,该过程被用来确保任一特定量度的值不会超出为每个量度的存储分配的比特数。显然,在步骤340中选择用于比较的会导致发生重新归一化的值将被选择,它依赖于实现,因此在某些实现中,可以适当选择与6不同的值。
如果在步骤340中确定参数STAGE不大于或等于6,则过程继续进行步骤370。如果从步骤340调用重新归一化过程,则过程也会从步骤360继续进行到步骤370。
在步骤370中,参数COUNT加1,并且随后在步骤380中确定COUNT是否大于或等于60。如果不是,则过程会回到步骤310以等待接收下一代码。然而,如果COUNT大于或等于60,则随后过程继续进行步骤390,在该步骤中利用前面所述的追溯过程由解码器输出预定数量的比特。一旦输出了预定数量的比特后,参数COUNT在步骤395重置为0,并且过程随后回到步骤310。
图7更详细地描述了解码器中执行的图6的步骤320中更新量度的过程。
从步骤410开始,确定第一多个汉明距离位片HA和第二多个汉明距离位片HB的汉明距离位片。如前面所述,此过程由更新值生成器功能220执行。随后,在步骤420,计算出第一候选多个更新记分位片MA。此计算牵涉到将第一多个汉明距离位片HA加到第一多个记分位片M(即,尚未重新排序的多个位片)。这是通过将特定比特位置的各个位片加在一起并将所有进位加入关于下一比特位置的位片所执行的加法来实现的。
在步骤430中,第一多个记分位片M被重新排序以产生第二多个记分位片Mx。随后,在步骤440中,通过将Mx加到HB来计算第二候选多个更新记分位片MB。
在步骤450中,从MA中减去MB以便生成进位输出位片。相应地,进位输出位片中特定位置的0值将指出MA中的对应记分大于MB中的对应记分,而逻辑1值将指出MB中的对应记分大于MA中的对应记分。
所述进位输出位片被用作所述特定更新操作的路径历史位片,并且相应地,进位输出位片在步骤460中被存储为路径历史位片,导致更新路径历史。此外,在步骤470中,通过从MA或MB的对应比特中选择每个位片中的每个比特来生成多个更新记分位片Mnew,其依赖于路径历史位片。因此,作为实例,如果假定更低的量度值表示更接近的匹配,则路径历史位片中特定位置上的0值将指出应使用MB的对应记分,而逻辑1值将指出应在Mnew中使用MA的对应记分。一旦在步骤470中创建了Mnew,则过程继续进行到步骤480,在该步骤中,Mnew被设置为等于新基本量度M以供随后的更新过程使用。过程随后继续到图6中所示的B点。
通过以上描述,可以明白,本发明优选实施例的技术提供了一种特别有效的方式,用于使所有维特比状态的量度被同时更新。如前面所述,此技术最好用可在处理器核心上执行的软件来实施。利用当前高端处理器核心,本发明优选实施例的技术使得从解码器产生所需的高比特输出率成为可能。
虽然以此描述了本发明的特定实施例,但可以明白,本发明不限于此,并且在本发明的范围内可进行许多修改和添加。例如,在不脱离本发明范围的情况下,独立权利要求书的特征可以与后面的从属权利要求的特征进行不同的组合。
权利要求
1.一种对表示原始数据比特序列的编码数据流进行解码的方法,其中所述编码数据流包括多个代码,每个代码依赖于当前数据比特和所述原始序列中第一预定数量的先前数据比特,所述方法包括以下步骤(a)为所述第一预定数量的先前数据比特的多个可能状态的每种状态提供记分(score),所述记分指出对应状态表示所述第一预定数量的先前数据比特的可能性;(b)以初始排序来安排所述记分;(c)接收代码;(d)给定所述接收代码中当前数据比特的两个可能值的每个值,根据所述接收代码来为每个状态确定指出所述状态表示所述第一预定数量的比特的可能性的两个更新值;(e)存储第一多个记分位片以共同表示如所述步骤(b)排列的所述记分,每个记分位片包含各自的所述记分的一个预定比特;(f)对所述记分进行重新排序并存储第二多个记分位片以共同表示所述重新排序的记分,每个记分位片包含各自的所述重新排序的记分的一个预定比特;(g)从所述更新值来为所述第一多个记分位片生成第一多个更新位片,并且为所述第二多个记分位片生成第二多个更新位片,每个更新位片表示所述更新值的预定比特中的一个预定比特;(h)从所述第一多个记分位片和所述第一多个更新位片来生成第一候选多个更新记分位片,并从所述第二多个记分位片和所述第二多个更新位片来生成第二候选多个更新记分位片;(i)对于所述位片表示的每个记分,通过应用预定准则从所述第一候选或所述第二候选多个更新记分位片来选择所述记分的比特,生成多个更新记分位片;由此所有所述记分被同步更新。
2.如权利要求1所述的方法,其特征在于从所述编码数据流一收到另一代码,所述多个更新记分位片就被作为所述第一多个记分位片来对待,并重复步骤(f)到(i),在步骤(g)中使用的所述更新值基于所述另一代码。
3.如权利要求2所述的方法,其特征在于每个代码依赖于k个比特,并且虽然在步骤(f)到(i)的每次迭代期间由所述多个更新记分位片中包含的各个记分表示的状态改变,但在所述步骤(f)到(i)的k-1次迭代之后,所述记分回到所述初始排序。
4.如权利要求3所述的方法,其特征在于保持所述k-1次迭代中每次迭代的所述各个记分表示的所述状态的记录。
5.如权利要求3或4所述的方法,其特征在于所述步骤(f)中所述记分的重新排序依赖于特定迭代。
6.如权利要求3到5中任何一项所述的方法,其特征在于在对所述编码数据流进行解码之前执行所述步骤(d),以便为所述k-1次迭代中的每次迭代生成更新位片的查找表,由此,在所述步骤(g)中,根据所述接收代码、所述迭代及所述更新位片是否用于所述第一或所述第二多个记分位片的指示,从查找表中读取所述更新位片。
7.如前面任一权利要求所述的方法,其特征在于所述步骤(i)包括从所述第一候选多个更新记分位片减去所述第二候选多个更新记分位片以形成路径历史位片,选择由所述多个更新记分位片表示的特定记分的比特,其依赖于所述路径历史位片中对应位置上的比特值。
8.如权利要求7所述的方法,其特征在于所述路径历史位片被加到包括多个路径历史位片的路径历史,所述路径历史被用于为任一特定状态确定第二预定数量的比特,所述第二预定数量的比特被视为在所述第一预定数量之前的所述原始序列中的比特。
9.当从属于权利要求4时如权利要求8所述的方法,其特征在于每个路径历史位片与所述k-1次迭代中的一次迭代相关联,由此参照所述记录,可为任一特定状态确定所述第二预定数量的比特。
10.如权利要求8或9所述的方法,其特征在于以预定间隔比较所述记分,以便选择最符合预定准则的记分,确定对应于该记分的状态,并且确定用于该状态的多个所述第二预定数量的比特并作为所述原始数据比特序列的解码部分被输出。
11.一种用于对表示原始数据比特序列的编码数据流进行解码的系统,其中所述编码数据流包括多个代码,每个代码依赖于当前数据比特和所述原始序列中第一预定数量的先前数据比特,所述系统包括记分生成器,用于为所述第一预定数量的先前数据比特的多个可能状态中的每个状态提供记分,所述记分指出对应状态表示所述第一预定数量的先前数据比特的可能性;分类器,用于以初始排序安排所述记分;更新值生成器,它对收到代码作出响应,给定接收代码中所述当前数据比特的两个可能值的每个值,根据所述接收代码来为每个状态确定指出所述状态表示所述第一预定数量的比特的可能性的两个更新值;所述记分生成器被安排成将所述初始排序的记分共同表示为第一多个记分位片,每个记分位片包含各自的所述记分的一个预定比特;所述分类器被安排成对所述记分进行重新排序,并且所述记分生成器被安排成将所述重新排序的记分共同表示为第二多个记分位片,每个记分位片包含各自的所述重新排序的记分的一个预定比特;所述更新值生成器被安排成从所述更新值为所述第一多个记分位片生成第一多个更新位片,并且为所述第二多个记分位片生成第二多个更新位片,每个更新位片表示所述更新值的预定比特中的一个预定比特;所述记分生成器被安排成从所述第一多个记分位片和所述第一多个更新位片来生成第一候选多个更新记分位片,从所述第二多个记分位片和所述第二多个更新位片来生成第二候选多个更新记分位片,并且对于所述位片表示的每个记分,通过应用预定准则从所述第一候选或所述第二候选多个更新记分位片选择所述记分的比特,来生成多个更新记分位片,由此所有所述记分被同时更新。
12.一种计算机程序,它可操作用来配置计算机处理单元,以便执行如权利要求1到10中任何一项权利要求所述的方法。
13.一种载体媒体,它包含如权利要求12所述的计算机程序。
全文摘要
本发明涉及适合在数字计算机上软件实现的维特比解码器的ACS操作的位片实施。第一位片被形成为单一字,它包含用于所有状态的路径量度的LSB,具有其次最高有效位的第二位片被形成,等等,直至MSB位片。以位片单位执行ACS操作的相加,以包含路径量度的LSB的相加开始。而且,利用以位片单位的相减来执行ACS操作的比较部分。这样,本发明允许所有状态的路径量度同时被更新,并且提供高于已知先有技术的速度。为进一步加快处理速度,仅使用一组路径量度。
文档编号G11B20/12GK1383619SQ0180160
公开日2002年12月4日 申请日期2001年2月2日 优先权日2000年3月8日
发明者D·H·赛梅斯, H·J·弗兰西斯 申请人:Arm有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1