将以卷积码编码的信号加以解码的方法和装置 【技术领域】
本发明涉及将信号加以解码的方法和装置,特别是涉及将以卷积码编码的信号加以解码的方法和装置。
背景技术
利用维特比(viterbi)解码器对于被以卷积方式编码以便进行前向误差校正的信号或数据流进行解码,已经是众所周知地。在卷积编码器中,所产生的输出码元由多个输出比特组成。可选择的是,其中一个输出比特应该与当前输入比特相同。所产生的其他输出比特则与当前输入比特和先前的连续多个输入比特中的至少一个比特相关。卷积编码器可以看作是一种状态机,其中响应输入比特而产生的编码输出与该状态机的当前状态和该输入比特本身相关。对于一个二进制原始信号来说,对于任何状态机的给定状态,只有对两个新状态的两种变化是有效的,这两个种变化例如与输入比特是0或1相关。给定所接收码元的序列,则通过确定最可能的状态序列,就可以用维特比算法来解码一个以卷积方式编码的信号(该信号可能包含由于信道而产生的噪声)。
可能有这样一种情况:某些输入至卷积编码器的比特的实际值是可以提前知道的。例如,由于在数据流中存在重复的较高级系统同步标志,就可能产生这类比特。已经有一些方法可用于在带有噪声的卷积编码流输入至维特比解码器之前从该卷积编码流中找到这些标志,但是这些方法不属于在本发明的范围。我们在此所涉及的是将已知的或可确定的比特作为固定的比特。根据原有技术原理的维特比解码器是不能利用这一信息的。
【发明内容】
本发明的一个目的是至少弥补原有技术的前述缺陷。
根据本发明的第一方面,提供了一种解码接收到的信号的方法,其中该接收到的信号是由卷积编码器从原始信号编码的,该原始信号在其中的预定比特位置具有至少一个预定比特,所述方法是通过由该接收到的信号确定与该编码器的预定的生成多项式相符的最大可能状态序列、并借助于在该预定比特位置的至少一个预定比特来实施的。所述方法包括以下步骤:(a)对每一个表示原始信号中的一个比特的接收到的被编码码元,对应于每一个可能的当前状态,对表示所接收被编码码元之间差别、表示从编码器的先前状态至当前状态的转换、和相应于从先前状态到当前状态的预定的可选择的被允许转换的预期码元的误差系数求和,而令该误差系数表述成各个所述先前状态之和,从而对所有可能的状态,构成对应于新的多个状态序列中的每一个状态序列的经过更新的这类误差系数之和;(b)如果该比特是一预定比特,则对每一状态选择终止于出自上述新的多个状态序列中的状态的最可能的状态序列,同时选择对应于所述预定比特的相应更新的误差系数之和,从而在对应于原始信号中的预定比特位置的被编码信号中的比特位置处,低估任何与该处于预定比特位置的预定比特不符的状态;(c)如果该比特不是一预定比特,则对每一状态比较各所述经过更新的误差系数之和,并选择出一个表示接收到的被编码码元与预期码元之间较少总体误差的经过更新的误差系数之和,而且选择终止于出自上述新的多个状态序列中的状态的相应最可能的状态序列;(d)通过对每一状态或者一任选状态比较最可能的状态序列的经过更新的误差系数之和,而确定对应于原始信号中的比特的最佳当前状态;以及(e)从而通过从上述最佳当前状态追溯,确定产生于先前的预定的多个码元上的最可能的最早转换及最早状态,进而发现并输出最可能等于在原始信号中的该码元的比特。
为方便起见,处于预定比特位置的至少一个预定比特是同步比特。
根据本发明的第二方面,提供了一种用于解码接收到的信号的解码器,其中该接收到的信号是由卷积编码器从原始信号编码的,该原始信号在其中的预定比特位置具有至少一个预定比特,所述解码器包括:接收装置,用于接收被编码信号的被编码码元;求和装置,用于对每一个表示原始信号中的一个比特的接收到的被编码码元、和对卷积编码器的每一个可能的当前状态、和表示接收到的被编码码元之间差别及表示从编码器的先前状态至当前状态的转换以及相应于从先前状态到当前状态的预定的可选择的被允许转换的预期码元的误差系数求和,令该误差系数表述成各个所述先前状态之和,从而对所有可能的状态,构成对应于新的多个状态序列中的每一个状态序列的经过更新的这类误差系数之和;比较和选择装置,用于对每一状态进行以下选择:如果该比特是一预定比特,则选择终止于出自上述新的多个状态序列中的状态的最可能的状态序列,同时选择对应于所述预定比特的相应更新的误差系数之和,从而在对应于原始信号中的预定比特位置的被编码信号中的比特位置处,低估任何与该处于预定比特位置的预定比特不符的状态;而如果该比特不是一预定比特,则比较各所述经过更新的误差系数之和,并选择出一个表示接收到的被编码码元与预期码元之间较少总体误差的经过更新的误差系数之和,而且选择终止于出自上述新的多个状态序列中的状态的相应最可能的状态序列;处理装置,用于通过对每一状态或者一任选状态,比较最可能的状态序列的经过更新的误差系数之和,而确定对应于原始信号中的比特的最佳当前状态,并进而通过从上述最佳当前状态追溯,确定产生于先前的预定的多个码元上的最可能的最早转换及最早状态,从而发现最可能等于在原始信号中的该码元的比特;以及传送装置,用于输出上述最可能等于在原始信号中的该码元的比特。
优选的是,所述解码器被配置成可产生对应于卷积编码器的维特比状态格栅结构,并可用以确定穿过该维特比状态格栅结构的被编码信号的转换路径的误差系数。
有利的是,所述解码器包含同步识别装置,用于识别被编码信号中的同步比特,以便所述比较和选择装置利用该同步比特作为在预定比特位置的至少一个预定比特。
根据本发明的第三方面,提供了一种计算机程序,该计算机程序包含编码手段,从而当该程序运行于一个或多个计算机上的时候,可执行上述方法的所有步骤。
【附图说明】
以下将结合附图说明本发明,在附图中:
图1是一个适用于本发明的卷积编码器的示意图;
图2是有助于理解本发明的编码器状态的格栅结构示意图,该图展示出单独一组编码器状态的转换;
图3是有助于理解本发明的编码器状态的格栅结构示意图,该图展示出多组编码器状态的转换,其中没有已知比特;
图4A和图4B是适用于本发明的编码器状态的格栅结构示意图,展示出经过变化的多组编码器状态的转换,其中没有已知比特;
图4A和图4B是适用于本发明的编码器状态的格栅结构示意图,展示出经过变化的多组编码器状态的转换,其中没有已知比特;
图5A和图5B是适用于本发明的编码器状态的格栅结构示意图,展示出经过变化的多组编码器状态的转换,其中有两个不连续的比特是已知的;
图6A、图6B和图6C是适用于本发明的编码器状态的格栅结构示意图,展示出经过变化的多组编码器状态的转换,其中有两个连续的比特是已知的;
图7是一个以原有技术进行维特比解码时所使用的相加、比较和选择处理的流程图;
图8是图7所示相加、比较和选择处理依据本发明做了改动后的流程图;
图9是一种已知的维特比解码器的相加-比较-选择模块的输入及输出示意图;
图10是一种根据本发明原理得到改进的维特比解码器的相加-比较-选择模块的输入及输出示意图。
在附图中,相同的附图标记表示相同的部分。
【具体实施方式】
已知的卷积编码器可以依据其比率及其约束长度来定义,其中该比率即输入比特与输出码元的比例,而该约束长度即与每个输出码元相关的输入码元的数量。编码器的输出与预定的生成多项式的系数相关,该生成多项式确定哪一系列的连续输入比特被相加以形成相应的输出码元。
图1示出了一个已知的1/2比率卷积编码器10,也就是该编码器对每一输入比特有两个输出码元,其约束长度为3。解码器的输入11接至第一存储单元12的输入,并且分别接至第一模2(modulo-2)加法器13和第二模2加法器14的第一输入。第一存储单元12的输出接至第二存储单元15的输入以及第一模2加法器13的第二输入。第二存储单元15的输出接至第一模2加法器13的第三输入,并接至第二模2加法器14的第二输入。第一模2加法器的输出接至编码器的第一输出16,并且第二模2加法器的输出接至编码器的第二输出17。输出比特交替地从第一输出16和第二输出17读取,从而形成一个两比特输出码元,该两比特输出码元通过上述关系与当前的一比特输入及两个先前的输入比特相关。
第一存储单元12包含一个输入比特d1,其直接在当前输入比特之前被接收,而第二存储单元15包含一个输入比特d2,其直接在输入比特d1之前被接收。由于对编码器的第一输出16,比特输出是通过将输入比特与两个分别存储在第一存储单元12和第二存储单元15中的直接在其之前的输入d1、d2相加而得到的,因此第一输出具有一个多项式系数111;并且由于对编码器的第二输出17,其比特输出是通过将该当前输入比特与存储在第二存储单元15中的先前的输入d2相加得到的,而不是与直接在其之前的输入比特d1相加得到的,因此该第二输出具有多项式系数101。
编码器10的状态在任何时刻均可用第一和第二存储单元12、15的内容d1、d2来表示。因此,如果d1=1并且d2=1,则将编码器10的状态称为等于11。在所述情况下编码器所具有约束长度为3,因此该编码器有四种可能的状态:11,10,01和00。只存在两种从一种状态到另一种状态的可能转换,这取决于输入是0还是1。图2给出了一个可能的状态转换的格栅结构示意图,其中状态转换取决于初始状态和所接收到的输入比特。因此举例来说,在d1=1而d2=1时,编码器处在等于11的状态21,并且如果输入比特是1,则第一存储单元的内容就被移送到第二存储单元而使d1保持为1;且该输入比特被移送到第一存储单元而使d2保持为1,编码器经历了转变211,从等于11的状态21转变到等于11的状态31。而如果输入比特是0,则编码器经历转变212,从等于11的状态21转变到等于01的状态31。图3与图2类似,但是被扩展用来表示对应于接收六个连续输出码元的可能状态转换,可用这些转换表示已知的维特比解码过程。
维特比编码器循环操作,如下所述。在每一时刻每个状态都具有一指针,指向终止于本状态的处于状态最佳序列或路径中的前一状态。每个状态还具有关联的路径尺度(metric),该关联路径尺度表示:假定该编码器经过终止于该状态的最可能的路径时,所有接收到的码元直到当前码元的概率。根据贝叶斯法则,假定所有接收到的码元乘以若干难于计算(并且是可忽略的)的常数,则上述概率即等于终止于这一状态的最佳路径的概率。方便的(而且也是惯用的)做法是利用一种对数记数,从而以尺度上的相加代替概率的相乘。
参考图9,该图展示出一种已知的相加-比较-选择(ACS)模块在下一个时刻即当接收到新码元时的输入及输出信号,此时采用ACS模块90操作,计算出一组新的路径尺度,每一路径尺度对应于一个状态。对于每一个新状态,所述ACS操作假定从先前的状态转换到该状态,与接收到的码元和预期的码元相关,通过使与该状态关联的尺度91、92与计分(score)93、94相加,而产生对应于两种可能的先前状态中的每种状态的结果。所述ACS操作随后将这些结果进行比较并选出最佳结果,将这一判定的结果作为到达这一状态的最佳路径中的转换、并作为新的尺度95加以存储。一旦计算出所有新的尺度而且不必再存储旧的尺度,即可处理下一个接收到的码元。这意味着不得不对每一个码元执行上述ACS操作,以便对每一个状态计算路径尺度,并且判定到达该状态的最佳路径中的最佳的先前状态。
这种ACS处理展示于流程图图7。接收到一个码元时,在步骤71将符合假设的唯一的先前状态的路径尺度与一计分相加而计算计分_0,其中上述假设是该编码器的输入比特为0,而上述用于相加的计分则是基于在给出所设先前状态时、接收到的码元与所预期的码元之间的负值的平方的欧几里得距离。同样以相同方式假定编码器的相应输入比特为1,在步骤71计算计分1。在步骤73将以上两个计分进行比较,如果计分_1大于计分_0,在步骤74将对应于该状态的计分设定为计分_1,并且假定最初的输入比特为1而设定对该先前状态的转换路径。另一方面,如果计分_0大于计分_1,则在步骤75将对应于该状态的计分设定为计分_0,并且假定最初的输入比特为0而设定对该先前状态的转换路径。本算法的特点是:如果追溯路径足够的远,则所有的路径都将汇集到同一状态。为了由维特比解码器确定与特定码元相关的输出比特,必须等待,直到码元受到处理为止,然后再返回在格栅结构中寻找出所汇集的路径。而由于沿这一路径进行转换,即可简单地确定被解码的比特。
对于一个真正的解码器,必须对追溯的长度施加一定限制;典型的做法是在确定状态从而也是使确定输出比特之前所接收到的约束长度乘以5倍和10倍。更为常见的则是通过选择一个最佳状态并追溯至路径存储器所允许的最大限度找出该路径中的第一个转换来实现上述目的。优选的是最佳状态是具有最佳计分的状态,但为简单起见也可以是任意状态(例如全部为0)。为进行连续操作,这种对最佳路径中的最早转换的追溯操作对于每一个输入码元执行一次。
该解码算法可以在一个已知状态下开始,或者在所有状态概率相等的情况下开始。
在某些信号或数据流中,有一些诸如像同步比特这样的输入比特是已知的,或者是可以由被编码信号识别或确定的。在本发明的解码方法中,利用这样的固定比特信息来取代选择操作,也就是说根据固定比特选择最佳先前状态。对应于这一判定而设定对该状态的计分。在一个优选实施例中,将固定比特选择为该先前状态中的最后一个比特(即以下示例中的d2)。
参见图10,其展示出根据本发明原理得到改进的ACS模块100的输入及输出信号,其中同样输入到该ADC模块的第一信号101表示已知的比特,而第二信号102表示该已知比特的值。通过检验第一信号是否携载信息“本比特是固定的”,并且当结果为“是”时使得第二信号携载信息“本比特具有值x”从而驱动ADC模块100,就可以简单地确定是否一个比特为已知的。这种根据本发明原理得到改进的ACS处理示于图8。与未经改进的ACS处理相同,该经过改进的ACS处理在步骤71和72计算计分_0和计分_1,而在步骤81确定是否原始的比特为一个固定比特。如上所述,这类确定包含读取表示是否该比特固定的相应信号,若该比特固定,则读取比特值。而如果原始比特不是固定比特,则改进的处理与处理未经改进的ACS处理相同,在步骤73比较两种计分,并在步骤74或步骤75相应地设定状态和转换路径。但若在步骤81确定该原始比特确为一固定比特,则改进的处理在步骤81确定该固定比特是0还是1。如果固定比特是1,则在步骤74将对应于该状态的计分设定为计分_1,并在已知原始输入比特为1的条件下设定对该先前状态的转换路径。另一方面,如果固定比特是0,则在步骤75将对应于该状态的计分设定为计分_0,并在已知原始输入比特为0的条件下设定对该先前状态的转换路径。
作为示例,考虑在时间步2的第二个转换之后已知d2=0的情况。参看图3和图4A,已知在所示格栅结构中第三列(表示在时间步2之后的状态)的状态41、43分别等于11(即d1=1,d2=1)和01(即d1=0,d2=1),因为它们含有d2=1所以不是有效的,因此在比较穿过格栅结构的各路径时,可将这些状态和任何导致这些状态的操作311、321、312、322或从这些状态出发的操作411、412、431、432均有效地除去或者低估(discount)。类似地如图4B所示,与图3相比,图3中作为示例所显示的第二列内(表示在时间步1之后的状态)分别等于11和10的状态31、32不再有任何由这些状态出发的转换,因此这些状态及导致这些状态的任何操作211、221、231、241均可被有效地除去或低估,从而减少了需加以比较的穿过格栅结构的路径数量,并增加了用以解码相关比特的置信度。
在实践中,固定比特废弃(override)效果在于ACS模块自身。自动进行遍历格栅结构的搜索的实施方案源自于维特比算法的特点,它无需真正地除去或者低估状态,因为这样作从计算角度看是昂贵的。与图3相比较而参考图4A,通过局限于在时间步3之后对图示四个状态中的每个状态进行判定,就简单地将等于01的状态43和等于11的状态排除在考虑范围之外。此后维特比算法会自行除去状态31和32的路径,而不必进行昂贵的格栅结构删除操作。
图5A和图5B用以说明两个不连续的已知比特的作用。除了如以上示例的说明,由于在第二转换后d2=0,图3所示第二和第三列中的状态31、32、41、43在时间步1、2之后被有效地排除在考虑范围之外,如果已知在第六列中d2=1,则分别等于10和00的状态72、74及其相应的导致该状态的转换631、641、632、642以及由该状态出发的转换721、722、741、742就可以有效地不予处理,如图5A与图3比较所示。而且在前一列中分别等于01和00的状态63、64已经不再有源自于它们的操作,这些状态连同导致它们的转换512、522、532、542也可有效地不予处理,如图5B与图3比较所示。
图6A、6B、6C用以说明两个连续的已知比特的作用。除了如以上两个示例的说明,由于在第二转换后d2=0,图3所示第二和第三列中的状态31、32、41、43被有效地排除在考虑范围之外,如果已知在第三转换之后d2=1,则分别等于10和00的状态52、54及其相应的其余转换441、521、522、642就可以不予处理,如图6B所示;而且如图6C所示,处于前面一列中等于00的状态44(该状态已不再有由此出发的有效转换)、连同导致状态44的转换332、342也可以有效地不予处理。
如以上就图4所示情况进行的说明,在图5和图6所示任一种情况中都不必实际除去或低估状态。
尽管本发明是以约束长度为3、比率1/2的非递归(non-recursive)、非系统(non-systematic)型编码器来说明的,应理解本发明并不受限于某一特定的比率、穿孔模式(puncturing pattern)或约束长度。本发明同样可应用于系统型卷积码和/或递归码。而且,尽管本发明利用维特比格栅结构加以说明,但应理解维特比格栅结构仅仅是一种说明维特比解码器操作的直观手段,并不能限制本发明的广泛可应用性。
本发明具有以下优点:
i)固定比特总能被解码器解码而没有差错。
ii)与固定比特接近的比特被正确解码的可能性得到提高,这是因为已知比特的位置对于有效判定、亦即通过维特比解码器进行搜索的转换路径的限制。
iii)通常由维特比解码器产生的长错误突发、甚至是在时间上不相关的输入噪声由于固定比特的存在而被减少。如果固定比特成组发生,长于编码器的储存波形深度(memory depth),则连续的固定比特导致固定状态。错误突发不会通过这种固定状态传播。
以上ii)和iii)的效果是与维特比解码器不能利用固定比特信息时的情况相比,出自该解码器的非固定比特输出中的误码率减少。