一种尾码可配置的Viterbi解码方法及解码器的制造方法

文档序号:9600444阅读:548来源:国知局
一种尾码可配置的Viterbi解码方法及解码器的制造方法
【技术领域】
[0001]本发明涉及信道编解码技术领域,尤其涉及一种尾码可配置的Viterbi解码方法及解码器。
【背景技术】
[0002]在无线通信系统中,数据传输过程中会受到来自信道的多种类型的干扰。通常使用前向纠错码作为信道编码,其通过冗余数据提升信号的信噪比,从而提高通信系统的传输效率。卷积码是目前广泛采用的一类前向纠错码,如形式为(n,k,m)的卷积码,其中η是编码后的码字,k是编码前的码字,m为约束长度,表示当前码字除了与本次编码码字相关以外,还与前m-1个码字相关。
[0003]Viterbi解码作为常用的卷积码解码方法,其是一种基于码的网格(trellis)图的最大似然译码算法。图1示出了网格图的一个例子,其中节点SO、Sl、S2、S3表示状态,图上方的0-7表示时刻。解码的任务是在网格图中选择一条路径,使该路径对应的解码序列与接收到的序列之间的距离最小,其中以路径度量值来衡量该距离。
[0004]然而,通常卷积码编码器在开始工作时要经过初始化处理,将编码器中的寄存器单元清零,在编码结束时,还要使用尾比特进行归零的结尾操作,传输数据以一串0比特结尾,强制编码器回到0状态,这种尾码处理方式称为零尾编码方式(简称零尾,zero-tail)。对于零尾编码方式,解码器能够从已知的状态开始解码,所需要的硬件实现较简单,但是增加了编码开销、占用了额外的带宽资源。咬尾处理方式是指在编码器开始工作时进行特殊的初始化,其中将输入码块的最后m个比特依次输入编码器的寄存器中,当编码结束时,编码器的结束状态与初始状态相同,这种编码方法称为咬尾编码方式(简称咬尾,tail-biting)。对于咬尾编码方式,译码时由于编码器的初始状态和结尾状态是未知的,在译码时会增加译码复杂度,咬尾编码方式的优点是不影响编码率,并且不影响卷积码的错误校验属性。
[0005]现有Viterbi解码器通常根据应用场景的不同,选择零尾或者咬尾中的一种来实现。然而,这种择一的方式不能满多模通信的需求。

【发明内容】

[0006]为解决上述现有技术中存在的问题,根据本发明的一个实施例,提供一种尾码可配置的Viterbi解码方法,包括:
[0007]步骤1)、量化待解码的数据,其中,针对咬尾编码方式在量化后的码块前加入从该量化后的码块尾部截取的数据;
[0008]步骤2)、对步骤1)得到的数据进行网格计算处理,形成状态网格信息,其中,所述状态网格信息用于指示网格图中的状态之间的关系;
[0009]步骤3)、根据所述状态网格信息,从回溯的起始状态开始进行回溯处理得到逆序的解码结果,并且将所述逆序的解码结果正序输出。
[0010]上述方法中,在步骤1)中量化待解码的数据包括:将每个数据量化为成对的整数型数据,分别表示该数据与0和1的距离。
[0011 ] 上述方法中,步骤2)包括:
[0012]步骤21)、对步骤1)得到的数据中的每对整数型数据进行加比选操作,得到网格图中对应状态下的路径度量值以及该状态与其他状态的关系;
[0013]步骤22)、根据步骤21)的结果,更新网格图的路径度量值并且形成状态网格信息。
[0014]上述方法中,步骤21)包括:对于每对整数型数据所对应的状态,计算其两个分支度量值,将所述两个分支度量值分别与该状态之前的状态下的路径度量值相加,选择其中较大的值作为该状态下的路径度量值。
[0015]上述方法中,步骤3)还包括:确定回溯的起始状态。其中,对于零尾编码方式,回溯的起始状态为零状态;对于咬尾编码方式,比较网格图中每个状态下的路径度量值,取最大值对应的状态作为回溯的起始状态。
[0016]上述方法中,步骤1)之前还包括:确定码率、码块长度和尾比特编码方式。
[0017]根据本发明的一个实施例,还提供一种尾码可配置的Viterbi解码器,包括:
[0018]输入处理模块,用于量化待解码的数据,其中,针对咬尾编码方式在量化后的码块前加入从该量化后的码块尾部截取的数据;
[0019]网格计算模块,用于对所述输入处理模块得到的数据进行网格计算处理,形成状态网格信息,其中,所述状态网格信息用于指示网格图中的状态之间的关系;
[0020]回溯模块,用于根据所述状态网格信息,从回溯的起始状态开始进行回溯处理得到逆序的解码结果;
[0021]输出模块,用于将所述逆序的解码结果正序输出。
[0022]上述Viterbi解码器还可以包括:
[0023]存储控制模块,用于控制所述Viterbi解码器中各个模块的操作以及存储所述状态网格?目息。
[0024]上述Viterbi解码器中,所述网格计算模块还用于确定回溯的起始状态。
[0025]本发明的有益效果如下:
[0026]1.本发明提供的解码方法及解码器能够针对咬尾和零尾卷积码进行Viterbi解码,同时能够快速有效地完成规定计算,适用于多种通信标准(如GMR,LTE,GSM等)和场景;
[0027]2.本发明提供的解码器在实现时没有使用额外的存储空间,不会占用过多额外资源。
【附图说明】
[0028]图1是示例的网格(trellis)图;
[0029]图2是根据本发明一个实施例的尾码可配置的Viterbi解码方法的流程图;
[0030]图3是根据本发明一个实施例的尾码可配置的Viterbi解码器的框图。
【具体实施方式】
[0031]下面结合附图和【具体实施方式】对本发明加以说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
[0032]根据本发明的一个实施例,提供一种尾码可配置的Viterbi解码方法。
[0033]概括而言,该方法包括:1.量化待解码的数据,其中,针对咬尾编码方式在量化后的码块前加入从该量化后的码块尾部截取的数据;2.对上一步得到的数据进行网格计算处理,形成状态网格信息;3.根据状态网格信息,从起始状态开始进行回溯处理得到逆序的解码结果;以及,4.将逆序的解码结果正序输出。
[0034]以下结合图2详细描述该尾码可配置的Viterbi解码方法。
[0035]第一步:参数配置
[0036]本步骤包括确定和配置参数,所述参数包括码率、码块长度和尾比特编码方式等。其中,尾比特编码方式包括零尾和咬尾两种编码方式。
[0037]第二步:输入数据预处理
[0038]概括而言,本步骤包括对输入的待解码数据进行量化处理。例如,对以对数似然比(LLR)的形式输入的待解码数据进行软判决操作,在量化后,每个输入数据变为两个整数型数据,分别表示该数据与0的距离和该数据与1的距离,量化后的数据用于下文描述的网格计算。
[0039]在一个实施例中,输入数据预处理包括以下子步骤:
[0040]1)缓存输入的待解码数据。
[0041 ] 2)输入数据软判决:将输入的每个数据(如LLR形式的输入数据)量化为两个整数型数据,一个表示该数据和0的距离,另一个表示该数据和1的距离。
[0042]3)输出量化后的成对的整数数据。
[0043]其中,对于不同的尾比特编码方式,输出的量化后的数据不同:对于零尾编码方式,正序输出量化后的码块数据;而对于咬尾编码方式,首先输出量化后的码块尾部的部分比特,然后正序输出该量化后的码块数据,即在量化后的码块前加入从该量化后的码块尾部截取的数据。
[0044]第三步:对一步中得到的数据执行网格■计算
[0045]在一个实施例中,本步骤包括如下子步骤:
[0046]1)接收在第二步得到的数据。
[0047]2)对每一对整数数据,计算网格图中对应状态下的路径度量(path metric)值以及该状态与其他状态的关系(例如得到该状态的前一状态)。
[0048]具体地,对于每一对整数数据所对应的状态,计算两个分支度量(branch metric)值,将这两个分支度量值与之前状态的路径度量值相加,比较并选出较大的值作为该状态下的路径度量值。
[0049]参见上文中输入数据预处理后的输出数据,应理解,在同样的码长下,对于不同的尾比特编码方式,网格计算过程中所计算的数据不同。其中,对于零尾编码方式,对码块数据进行网格计算;而对于咬尾编码方式,在处理码块之前还会处理额外的数据,这些数据为该码块的尾比特,是从该码块的尾部截取的数据。
[0050]3)根据上一步得到网格计算结果,更新路径度量值,并且根据状态之间的关系形成状态网格?目息。
[0051]4)确定回溯处理的起始状态。
[0052]其中,在咬尾编码方式下,比较网格图中各个状态下的路径度量值,取最大值所对应的状态,作为回溯处理的起始状态(或回溯的起始状态)。而零尾编码方式不需要比较网格图中各个状态的路径度量值,这是因为零尾配置的回溯是从零状态开始的。
[0053]第四步:回搠处理
[0054]概括而言,本步骤用于完成Viterbi算法中的回溯(traceback)操作,其中通过遍历状态网格信息,得到状态转移序列,从而由这个状态转移序列得到逆序的解码结果。
[0055]在一个实施例
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1