基于维特比算法的fm0编码的解码方法

文档序号:7864258阅读:875来源:国知局
专利名称:基于维特比算法的fm0编码的解码方法
技术领域
本发明涉及无线数字通信中的信号解码,特别是一种基于维特比算法的FMO编码的解码方法。
背景技术
维特比算法是一种基于最大似然估计法实现噪声信道中信号解码的方法。自1967年提出以来,获得了长足的发展,现已广泛地应用在了个人移动通信、网络调制解码器、卫星通信和家庭无线网络等现代通信系统中。尽管对于不同的编码种类,维特比算法的实现方法各有差异,但是,维特比算法在不同编码种类中实现时的核心思想是一致的。使用维特比算法的解码器根据先验的编码规则得到各个状态下前向(时间上从前至后)路径的累积度量,判断状态的跳转关系,再根据累积度量的大小,以及编码中确定的冗余信息,进行反向(时间上从后往前)回溯,从而译出编码信息。简言之,维特比算法的核心是利用确定的编码规则,进行前向累加比较选择和反向回溯。这种前后向互相配合的解码方式,可以在特定的信噪比条件下,提供较好的误码率特性。FMO编码是数字通信领域中,一种较为常见的信号编码方式。因其编码规则简单、对称,编解码电路的硬件开销较小,因而被广泛应用在了各类低功耗号的无线通信系统中,例如射频识别(Radio Frequency Identification,简称 RFID)和近场通信(Near FieldCommunication,简称NFC)等。近年来,随着这些无线通信系统逐渐应用到仓储、运输、零售、门禁和小额电子支付等领域,FMO编码已经遍及了现代生活的各个角落。参考图I 是 FMO 编码的编码规则。其中,S1 (101)、S2 (102), S3 (103), S4 (104)是FMO编码中的4种码元符号(或称为4种状态)。每一个符号的周期时间为T,幅度为±1。对于一个周期为T的输入编码信号,逻辑“O”所对应的状态为S2 (102)和S3 (103),逻辑“I”所对应的状态为SI (101)和S4 (104)。这4种状态间的跳转规则(105)如下I)当前的状态为SI (101)时,若下一个编码信号为逻辑“0”,则下一个状态跳转到S3 (103);若下一个编码信号为逻辑“1”,则下一个状态跳转到S4 (104)。2)当前的状态为S2 (102)时,若下一个编码信号为逻辑“0”,则下一个状态保持
52(102)不变;若下一个编码信号为逻辑“1”,则下一个状态跳转到SI (101)。3)当前的状态为S3 (103)时,若下一个编码信号为逻辑“0”,则下一个状态保持
53(103)不变;若下一个编码信号为逻辑“1”,则下一个状态跳转到S4 (104)。4)当前的状态为S4 (104)时,若下一个编码信号为逻辑“0”,则下一个状态跳转到S2 (102);若下一个编码信号为逻辑“1”,则下一个状态跳转到SI (101)。目前,FMO编码的解码电路通常使用码元相关算法来实现。这一算法通过比较输入信号同各个码元符号之间的相似度,判断输入信号对应的编码值。采用码元相关算法的解码电路硬件开销较小,适合于低成本的便携式无线通信设备。然而,由于相关算法在解码的过程中,难以完整地利用FMO编码在4种状态间跳转时两两对称的编码规则,解码效率存
3在提闻的空间。

发明内容
本发明所要解决的技术问题是为使用FMO编码的无线通信系统提供一种基于维特比算法的FMO编码的解码方法,该解码方法是一种硬件可实现且性能较优的解码算法。能在解码电路输入信号受到噪声干扰的条件下,降低解码的误码率,获得较好的通信成功率。实现这一目的的核心方法是根据FMO编码已知的特殊状态跳转规则,应用维特比算法前向累加比较选择和反向回溯的核心思想,译出输入的编码信号。本发明具体的技术解决方案如下一种基于维特比算法的FMO编码的解码方法,其特点在于,该解码方法包括下列步骤①对解码电路的输入信号形成分支度量解码电路对源码进行采样获得相应的输入信号的按比特顺序依次与FMO编码的四种状态的码兀符号SI (1,1)、S2 (I, — 1)、S3 ( 一1,1)、S4 (- 1,一 I)进行逐次相乘后相加构成输入信号依信号比特顺序的分支度量表;②计算累积度量根据FMO编码特定的状态跳转规则,将解码电路连续的输入信号当前比特所对应的某一状态(SI、S2、S3、S4)的可能的前态的分支度量进行比较,选择具有较大分支度量的前态的分支度量与该状态当前比特下的分支度量进行相加得到所述的当前比特该状态的累积度量,形成累积度量表;③记录状态跳转关系根据累积度量,比较前一比特下符合FMO编码状态跳转规则的两种累积度量的结果,选择其中较大的一个累积度量,作为当前比特当前状态的跳转前态;当两种累积度量结果相等时,任选一个作当前比特当前状态的跳转前态,形成状态跳转关系记录表;④回溯解码根据设定的回溯深度D,在完成解码电路连续的输入信号的第X比特的形成分支度量、计算累积度量、记录状态跳转关系后,从第X比特的最大似然解码状态,根据连续D比特的状态跳转关系,选择第Χ-D+l比特中记录的跳转前态所对应的编码值,作为第X-D比特的解码值。所述的输入信号是FMO编码的数字信号,或在FMO编码信号基础上增加冗余前导比特的数字信号,或在FMO编码信号基础上增加冗余收尾比特的数字信号,或在FMO编码信号基础上同时增加冗余前导比特和冗余收尾比特的数字信号,或将FMO编码信号作为整体信号的一部分,而其余部分不使用FMO编码的数字信号。所述的输入信号采样,对于一个比特的输入信号,其采样次数为2次或2~欠,其中N为大于I的正整数。所述的前一比特下符合FMO编码状态跳转规则的两种状态的累积度量,当所计算的输入比特为连续输入码流的首比特时,在不存在前导冗余比特的情况下,首比特4个状态前一比特的累积度量全为“0”,或4个其它相等的数值。所述的第X比特的最大似然解码状态,是第X比特4个累积度量中数值最大的一个所对应的状态,或第X比特4个累积度量中数值最大的几个状态中任意一个所对应的状态。
所述的回溯深度D为大于或等于I的正整数。当所述的回溯深度D和第X比特之和大于全部源码长度时,通过减少回溯深度的方式进行解码,或通过硬判决的方式进行解码,或通过增加全O冗余输入信号的方式进行解码。


图I是FMO编码的波形映射和状态跳转示意图;图2是无前导和收尾冗余信息时,6比特连续信号的源码、及其对应的FMO编码波形、解码电路输入和FMO编码4个状态下的分支度量示意图;图3是无前导和收尾冗余信息时,6比特连续信号的源码、及其对应的FMO编码波形、解码电路输入、FMO编码4个状态下的分支度量、累积度量示意图;图4是无前导和收尾冗余信息时,6比特连续信号的源码、及其对应的FMO编码波形、解码电路输入、FMO编码4个状态下的累积度量、状态跳转关系示意图;图5是无前导和收尾冗余信息时,6比特连续信号的源码、及其对应的FMO编码波形、解码电路输入、FMO编码4个状态下的累积度量、状态跳转关系、解码结果示意图;图6是以存在噪声条件下的信号输入为例,本发明具体实施方式
的介绍示意图。
具体实施例方式下面结合实施例和附图对本发明作进一步说明,但不应以此限制本发明的保护范围。一种基于维特比算法的FMO编码的解码方法,特点在于该解码方法包括以下四个步骤I)形成分支度量所述分支度量指的是解码电路连续的输入信号同码元符号之间的相似程度。所述相似程度以解码电路的输入信号同码元符号本身进行乘加所得的数值大小予以表征。所述输入信号来自于对源码所对应的编码波形的采样。所述的乘加操作是,将同一比特内的解码电路的输入信号,逐位与码元符号对应的逻辑值相乘,再对乘积进行求和。由于FMO编码总共有4种状态,任意一比特源码信号都会产生4个分支度量,分别对应到这4种状态中。可选的,一比特源码所对应的编码波形被采样的次数可以为2次,也可以为2N次,其中N>1的正整数。可选的,各次采样的结果在进行乘加操作时,其权重可以相同,也可以不同。如图2所示,对于连续6比特的源码(201),它可以有图中给出的FMO编码波形(202)。该编码波形(202)经采样次数为2的量化后,可以得到连续12个解码电路的输入信号(203)。解码电路通过将这连续的12个输入信号同4种码元符号进行乘加操作,得到SI、S2、S3、S4这4个状态下各自的分支度量(204、205、206、207)。以第I比特在SI状态的分支度量计算为例,其输入信号为-1,1(2031),而SI状态对应的码元符号为1,I。乘加操作的结果为(_1X1) + (1X1)=0,因此,SI状态第I比特的分支度量为0(2041)。同理,第2比特的输入信号为-I,-I (2032),其与SI码元符号进行乘加操作的结果为(-1 Xl) + (_1 X I) =-2,因此,SI状态第2比特的分支度量为-2 (2042)。依此类推,可以得到4种状态下,总计4路 24 个分支度量(204、205、206、207)。2)计算累积度量;所述累积度量指的是根据FMO编码特定的状态跳转规则,将解码电路连续的输入信号所对应的分支度量有选择地相加所得的累加值。由于FMO编码总共有4种状态,累积度量亦有4路。所述有选择地相加是,对某一特定状态可能的前态的累积度量进行比较,选择其中较大的一个与该状态当前比特下的分支度量进行相加。FMO编码的特殊编码规则决定任意一个状态的前态,只可能是全部4种状态中的两种。适用于FMO编码的累积度量计算,仅需对这两个状态在前一比特下的累积度量进行比较。可选的,当前比特某一状态所对应的两个可能的前态的累积度量相等,则可以选择任意一个作为被加数,与当前比特的分支度量相加,而不影响当前比特下的累积度量值。可选的,解码电路连续输入信号的第I比特,其前态的累积度量可以根据编码中是否插入确定的冗余前导信息决定。如图3所示,对于没有确定冗余前导信息的连续6比特输入信号,SI、S2、S3、S4这4个状态在第I比特时的分支度量(2041、2051、2061、2071)即为这4个状态在第I比特时的累积度量(3011、3021、3031、3041)。自第2比特起,各状态的累积度量开始具有特定的前比特累积度量值。以下以第2比特在SI状态的累积度量(3012)计算为例,说明累积度量的计算方法。根据FMO编码规则,SI状态可能的前态只有S2和S4两种。解码电路比较S2和S4两种状态在第I比特时的累积度量-2 (3021)和O (3041)。由于O (3041)>_2(3021),所以,第2比特在SI状态的累积度量(3012)等于第I比特在S4状态的累积度量O(3041)同第2比特在SI状态的分支度量-2 (2042)相加的结果-2。依此类推,可以得到4种状态下的所有累积度量值(301、302、303、304)。3)记录状态跳转关系;所述状态跳转关系指的是,某一个比特的4个编码状态,各自是由前一个比特时的哪一个状态跳转而来。状态跳转关系由累积度量计算时的比较结果决定。解码电路在计算当前比特某一编码状态的累积度量时,都需要比较其前一个比特可能的两个状态的累积度量,根据最大似然法则,解码电路选择前一比特这两个可能的状态中累积度量较大的一个作为该状态当前比特的跳转前态,并将其记录下来。可选的,所述当前比特某一状态所对应的两个可能的前态的累积度量相等,则可以选择这两个状态中的任意一个作为当前比特该状态的跳转前态,并将其记录下来。可选的,解码电路连续输入信号的第I比特,其前态的跳转关系可以根据编码中是否插入确定的冗余前导信息决定。如图4所示,对于没有确定冗余前导信息的连续6比特输入信号,除第I比特外,其后的每一比特都对应了 4个状态跳转关系的记录值(401、402、403、404)。自第2比特起,各状态开始记录跳转的前态。以下第2比特SI状态的状态跳转关系(4021)为例,说明状态跳转关系的记录方法。根据FMO编码规则,SI状态可能的前态只有S2和S4两种。解码电路比较S2和S4两种状态在第I比特时的累积度量-2 (3021)和O (3041)。由于O (3041)>-2 (3021),所以,记录S4为第2比特SI状态的跳转前态(4012)。依此类推,可以得到4种状态下的所有状态跳转关系(401、402、403、404 )。
4)回溯解码所述回溯解码指的是,解码电路根据回溯深度D,在完成第X比特的累积度量计算和状态跳转关系记录后,从第X比特最大似然解码状态起,按照状态跳转关系的记录,译出第(X-D)比特的源码值。所述回溯深度D指的是解码电路向前回溯解码的比特数。可选的,解码电路连续输入信号之后,可以插入确定的冗余收尾信息,也可以不插入冗余收尾信息。对于能够使用已插入的确定冗余收尾信息进行回溯解码的源码,所述当前比特的最大似然解码状态,指的是冗余收尾信息所对应的状态。对于无法使用已插入的确定冗余收尾信息进行回溯解码,或没有插入确定冗余收尾信息的源码,所述当前比特的最大似然解码状态,指的是当前比特的累积度量中数值最大的状态。可选的,对于无法使用已插入的确定冗余收尾信息进行回溯解码,或没有插入确定冗余收尾信息的源码,当前比特的累积度量中具有多个相等的最大值,可选择其中的任意一个作为当前比特的最大似然解码状态。可选的,对于没有确定冗余收尾信息的末尾比特Y,可直接以其最大似然解码状态为解码结果,也可以通过将累积度量和状态跳转关系的深度增加D比特,在计算最后D比特的累积度量时,使用O作为所有状态的分支度量,再在第(Y+D)比特时,译出第Y比特的解码值。可选的,对于没有确定冗余收尾信息的末尾比特前Z比特(其中Z为整数且小于D),可以通过缩短回溯深度,使用末尾比特Y的最大似然解码状态回溯出第(Y-Z)比特的解码结果,也可以通过将累积度量和状态跳转关系的深度增加D比特,在计算最后D比特的累积度量时,使用O作为所有状态的分支度量,再在第(Z+D)比特时,译出第Z比特的解码值。如图5所示,对于没有确定冗余收尾信息的6比特连续输入信号,以下以回溯深度D=2为例,说明回溯解码的方法。由于回溯深度为D=2,则在第3比特时,可以译出第I比特的源码。由于第3比特并非确定的冗余收尾比特,它的最大似然解码状态为第3比特累积度量值最大的状态S2 (3023),根据状态跳转关系记录表(401、402、403、404),第3比特S2状态对应的前态为S4(4022),向前回溯I比特,第2比特的S4状态对应的前态为S3(4042),再向前回溯I比特,S3对应的编码信息为O。由此可得,第I比特的解码结果为O (5011)。依此类推,可以在第4、第5、第6比特时得到第2、第3、第4比特的解码结果(5012、5013、5014)。由于没有冗余收尾信息,在第6比特时,除了译出第4比特外,还将以I比特回溯和直接最大似然状态判决的方式得到第5比特和第6比特的解码结果(5015、5016)。如图5所示,第6比特的4个累积度量的最大值出现在S3状态上(3036),而第6比特S3状态所记录的跳转前态为SI,由于SI对应的编码信息为1,S3状态对应的编码信息为0,第5比特的解码结果为I (5015),第6比特的解码结果为O (5016)。参考图6,以下以一个存在噪声干扰条件下,具有I比特确定冗余前导信息、I比特确定冗余收尾信息,回溯深度为3,总计长度为6比特的连续输入信号码流为例,介绍本发明的具体实施方式
。如图6所示,该实例中,FMO编码的6比特源码为010110 (601)。在对这一串源码进行编码时,增加了 I比特的冗余前导状态S4 (602)和I比特的冗余收尾状态S3 (603),从而形成了完整的编码波形(604)。由于受到了噪声的干扰,采样得到的解码电路输入码流(605)中存在错误。其中,I个采样位成为了模糊信号(-1,O) (606),I个采样位成为了错误信号(_1,-1) (607)。根据这一串被噪声干扰后的解码电路输入信号与S1、S2、S3、S4这四个状态的相关性,可以得到解码电路输入信号各比特的分支度量(608 )。在这一组分支度量中,由于冗余前导比特(602)和冗余收尾比特(603)都是确定状态,它们的分支度量记作一个远大于其余分支度量的数值10 (609、610)。通过前向的累加、比较、选择操作,可以根据FMO编码的编码规则得到对应于上述分支度量(608)的累积度量(611),以及状态跳转关系记录表(612)。由于图6所示实例中使用的回溯深度为3,解码电路在其接收到第4比特的时候获得第I比特的解码值。比较第4比特的累积度量值可知,其最大似然解码状态为S4,它记录的跳转前态为S3 (615);而第3比特的S3状态记录的跳转前态为SI (614);第2比特的SI状态记录的跳转前态为S2 (613),因为S2对应的编码值为0,所以可知第I比特的解码结果为O (619)。同理,第2比特的解码结果在获得第5比特的最大似然解码状态SI时译出第5比特的SI状态记录的跳转前态为S4 (616),第4比特的S4状态记录的跳转前态为S3 (615),第3比特的S3状态记录的跳转前态为SI (614),因为SI对应的编码值为1,所以可知第2比特的解码结果为1(620)。同理,第3比特的解码结果在获得第6比特的最大似然解码状态S3时译出第6比特的S3状态记录的跳转前态为SI (617),第5比特的SI状态记录的跳转前态为S4 (616),第4比特的S4状态记录的跳转前态为S3 (615),因为S3对应的编码值为0,所以可知第3比特的解码结果为O (621)。同理,第4比特的解码结果在获得冗余收尾比特的最大似然解码状态S3时译出冗余收尾比特的S3状态记录的跳转前态为S3 (618),第6比特的S3状态记录的跳转前态为SI (617),第5比特的SI状态记录的跳转前态为S4 (616),因为S4对应的编码值为1,所以可知第4比特的解码结果为I (622)。第5比特的解码结果在获得冗余收尾比特的最大似然解码状态S3时,通过减小I比特的回溯深度译出冗余收尾比特的S3状态记录的跳转前态为S3 (618),第6比特的
S3状态记录的跳转前态为SI (617),因为SI对应的编码值为1,所以可知第5比特的解码结果为I (623)。第6比特的解码结果在获得冗余收尾比特的最大似然解码状态S3时,通过减小2比特的回溯深度译出冗余收尾比特的S3状态记录的跳转前态为S3 (618),因为SI对应的编码值为0,所以可知第6比特的解码结果为O (624)。由此可得,完整的6比特的解码结果为010110 (619 624),与源码(601)—致。虽然本发明已通过较佳实施例说明如上,但这一较佳实施例并非用以限定本发明。本领域的技术人员,在不脱离本发明的精神和范围内,应有能力对该较佳实施例做出各种改正和补充,因此,本发明的保护范围以权利要求书的范围为准。
权利要求
1.一种基于维特比算法的FMO编码的解码方法,其特征在于,该解码方法包括下列步骤 ①对解码电路的输入信号形成分支度量解码电路对源码进行采样获得相应的输入信号的按比特顺序依次与FMO编码的四种状态的码兀符号SI (1,1)、S2 (I, — 1)、S3 (— I,1)、S4 (- 1,一 I)进行逐次相乘后相加构成输入信号依信号比特顺序的分支度量表; ②计算累积度量根据FMO编码特定的状态跳转规则,将解码电路连续的输入信号当前比特所对应的某一状态(SI、S2、S3、S4)的可能的前态的分支度量进行比较,选择具有较大分支度量的前态的分支度量与该状态当前比特下的分支度量进行相加得到所述的当前比特该状态的累积度量,形成累积度量表; ③记录状态跳转关系根据累积度量,比较前一比特下符合FMO编码状态跳转规则的两种累积度量的结果,选择其中较大的一个累积度量,作为当前比特当前状态的跳转前态;当两种累积度量结果相等时,任选一个作当前比特当前状态的跳转前态,形成状态跳转关系记录表; ④回溯解码根据设定的回溯深度D,在完成解码电路连续的输入信号的第X比特的形成分支度量、计算累积度量、记录状态跳转关系后,从第X比特的最大似然解码状态,根据连续D比特的状态跳转关系,选择第Χ-D+l比特中记录的跳转前态所对应的编码值,作为第X-D比特的解码值。
2.根据权利要求I所述的基于维特比算法的FMO编码的解码方法,其特征在于,所述的输入信号是FMO编码的数字信号,或在FMO编码信号基础上增加冗余前导比特的数字信号,或在FMO编码信号基础上增加冗余收尾比特的数字信号,或在FMO编码信号基础上同时增加冗余前导比特和冗余收尾比特的数字信号,或将FMO编码信号作为整体信号的一部分,而其余部分不使用FMO编码的数字信号。
3.根据权利要求I所述的基于维特比算法的FMO编码的解码方法,其特征在于,所述的输入信号采样,对于一个比特的输入信号,其采样次数为2次或2N次,其中N为大于I的正整数。
4.根据权利要求I所述的基于维特比算法的FMO编码的解码方法,其特征在于,所述的前一比特下符合FMO编码状态跳转规则的两种状态的累积度量,当所计算的输入比特为连续输入码流的首比特时,在不存在前导冗余比特的情况下,首比特4个状态前一比特的累积度量全为“0”,或4个其它相等的数值。
5.根据权利要求I所述的基于维特比算法的FMO编码的解码方法,其特征在于,所述的第X比特的最大似然解码状态,是第X比特4个累积度量中数值最大的一个所对应的状态,或第X比特4个累积度量中数值最大的几个状态中任意一个所对应的状态。
6.根据权利要求I所述的基于维特比算法的FMO编码的解码方法,其特征在于,所述的回溯深度D为大于或等于I的正整数。
7.根据权利要求I至6任一项所述的基于维特比算法的FMO编码的解码方法,其特征在于,当所述的回溯深度D和第X比特之和大于全部源码长度时,通过减少回溯深度的方式进行解码,或通过硬判决的方式进行解码,或通过增加全O冗余输入信号的方式进行解码。
全文摘要
一种基于维特比算法的FM0编码的解码方法,包括对解码电路的输入信号形成分支度量;计算累积度量;记录状态跳转关系;回溯解码四个步骤,为使用FM0编码的无线通信系统提供一种硬件可实现且性能较优的解码算法,在存在噪声的情况下,提供较高的系统通信成功率。
文档编号H04L1/00GK102932105SQ20121042799
公开日2013年2月13日 申请日期2012年10月31日 优先权日2012年10月31日
发明者车文毅 申请人:上海坤锐电子科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1