一种针对咬尾卷积码的Viterbi解码器及解码方法技术

技术编号:12976356 阅读:271 留言:0更新日期:2016-03-04 00:03
本发明专利技术提供一种针对咬尾卷积码的Viterbi解码器及解码方法,所述Viterbi解码器包括:输入处理模块,用于量化待解码的数据;网格计算模块,包括多个蝶形运算单元,用于以并行的方式完成对量化后的待解码数据的网格计算,得到用于指示网格图中状态之间的关系的网格信息;回溯模块,用于基于所述网格信息得到逆序的解码结果;以及输出模块,用于将所述逆序的解码结果正序输出。本发明专利技术提供的Viterbi解码器面积较小且性能较高,适用于多种通信标准。

【技术实现步骤摘要】

本专利技术涉及信道编解码
,尤其涉及一种针对卷积码,尤其是咬尾卷积码的Viterbi解码器及解码方法。
技术介绍
无线通信系统中,数据在传输过程中会受到来自信道的多种类型的干扰。例如载波相同引起的同频干扰、相邻频带引起的邻频干扰、模拟器件产生的互调干扰、信道传输过程中的多普勒频移和多径衰落等各种各样的干扰。通常使用前向纠错码作为信道编码,通过冗余数据提升信号的信噪比,从而提高通信系统的传输效率。卷积码是当前数字无线通信系统中广泛采用的一类前向纠错码,形式通常为(n,k,m),其中n是编码后的码字、k是编码前的码字、m为约束长度,表示当前码字还与前m-1个码字相关。这个约束长度越大,编码性能越好,但是实现起来也就越复杂。实际上,在无线通信中使用的卷积码约束长度在5~9之间。Viterbi算法是1967年提出的针对卷积码的一种概率解码方法,属于前后算法的一种。Viterbi解码器的工作流程一般为:首先,正向处理输入数据,经网格计算得到网格信息;然后基于网格信息逆向回溯,得到逆序的结果;最后将结果正序输出,完成解码计算。其中,在执行网格计算时,通过计算网格图中的路径的度量值来进行路径选择,以得到网格信息。现有的Viterbi解码器主要由计算实际接收数据与各个编码输出路径间差异(即路径的度量值)的分支度量计算模块、计算较小转移路径的运算模块、回溯并保存路径信息的幸存路径管理模块等组成。现有的Viterbi解码器能够以较少的运算提供较好的性能,但随着m值的增高,解码器的器件面积会随之增大,因而不适用于应用较大m值(如(3,1,9)等)的信道。
技术实现思路
为解决上述现有技术中存在的问题,根据本专利技术的一个实施例,提供一种针对咬尾卷积码的Viterbi解码器,包括:输入处理模块,用于量化待解码的数据;网格计算模块,包括多个蝶形运算单元,用于以并行的方式完成对量化后的待解码数据的网格计算,得到用于指示网格图中状态之间的关系的网格信息;回溯模块,用于基于所述网格信息得到逆序的解码结果;以及输出模块,用于将所述逆序的解码结果正序输出。在一个实施例中,上述Viterbi解码器还可以包括:存储控制模块,用于控制所述Viterbi解码器中各个模块的操作。在一个实施例中,所述输入处理模块还用于在量化待解码的数据后,将量化后的码块尾比特输出至所述网格计算模块以执行网格计算,并且将量化后的码块存储至存储器。在一个实施例中,在完成对量化后的码块尾比特的网格计算后,存储在所述存储器中的量化后的码块被输出至所述网格计算模块以执行网格计算。在一个实施例中,所述网格计算模块在收到来自所述输入处理模块的量化后的码块尾比特后,利用所述多个蝶形运算单元并行地执行网格计算,以更新存储在所述网格计算模块中的路径度量值;所述网格计算模块在收到来自所述存储器的量化后的码块后,利用所述多个蝶形运算单元并行地执行网格计算,以更新存储在所述网格计算模块中的路径度量值并且得到网格信息。在一个实施例中,所述网格计算模块在完成对量化后的码块的网格计算后,比较更新后的路径度量值,将最大的路径度量值所对应的状态作为回溯的初始状态。在一个实施例中,所述回溯模块根据所述回溯的初始状态,遍历所述网格信息得到逆序的解码结果。在一个实施例中,所述存储器位于所述Viterbi解码器的外部。根据本专利技术的一个实施例,还提供一种基于上述Viterbi解码器的Viterbi解码方法,包括:步骤1)、所述输入处理模块对待解码的数据执行量化处理;步骤2)、所述网格计算模块对量化后的码块尾比特执行网格计算,并且更新路径度量值;步骤3)、所述网格计算模块对量化后的码块执行网格计算、更新路径度量值,并且得到网格信息;步骤4)、所述回溯模块基于所述网格信息得到逆序的解码结果,并且所述输出模块将所述逆序的解码结果正序输出。在一个实施例中,步骤3)还包括:在完成对量化后的码块的网格计算后,所述网格计算模块比较更新后的路径度量值,将最大的路径度量值所对应的状态作为回溯的初始状态。本专利技术提供了一种高性能,同时具有较小面积的Viterbi解码器。其中的网格计算模块使用全并行方式,保证了解码速度;该Viterbi解码器对于解码m值较大的卷积码,有较高的增益性能,适用于较多种类的信道,可以应用于多种通信标准。此外,该Viterbi解码器可采用外部存储器,从而进一步减小了器件面积。附图说明图1是根据本专利技术一个实施例的针对咬尾卷积码的Viterbi解码器的框图;图2是根据本专利技术一个实施例利用图1的Viterbi解码器进行解码的方法流程图;图3是针对示例的(2,1,3)卷积码得到的状态转移网络示意图。具体实施方式下面结合附图和具体实施方式对本专利技术加以说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术。根据本专利技术的一个实施例,提供一种针对咬尾卷积码的Viterbi解码器(下文简称为Viterbi解码器或解码器),包括存储控制模块、输入处理模块、网格计算模块、回溯模块和输出模块。概括而言,存储控制模块用于控制Viterbi解码器的解码过程,输入处理模块用于处理待解码的输入数据,网格计算模块用于以并行的方式完成网格计算,得到网格信息,回溯模块用于根据网格信息而得到逆序的解码结果,而输出模块用于将逆序的解码后的数据正序输出。下文将结合图1详细描述本专利技术提供的Viterbi解码器。该Viterbi解码器具有两种模式——工作模式和空闲模式。1.存储控制模块存储控制模块包括对其他模块执行控制的存储控制逻辑、与存储器通信的存储器接口以及控制Viterbi解码器模式(包括工作模式和空闲模式)的解码器状态机。存储控制模块接收从外部输入的指示解码的控制信号,将Viterbi解码器由空闲模式转换为工作模式,接收并配置码率、码块长度和尾比特长度等控制信息,以及相应开启输入处理模块、网格计算模块、回溯模块和输出模块。在解码过程中,由存储控制模块指定数据的输入输出时序并且控制解码器中各模块的操作:存储控制模块控制输入处理模块对待解码的输入数据进行量化处理;并控制输入处理模块将量化后的部分数据输出至外部存储器(例如通过存储控制模块本身,经由存储器接口)以及将另一部分数据输出至网格计算模块以执行网格计算;在后者的网格计算完成后,存储本文档来自技高网
...
一种<a href="http://www.xjishu.com/zhuanli/61/CN105375934.html" title="一种针对咬尾卷积码的Viterbi解码器及解码方法原文来自X技术">针对咬尾卷积码的Viterbi解码器及解码方法</a>

【技术保护点】
一种针对咬尾卷积码的Viterbi解码器,包括:输入处理模块,用于量化待解码的数据;网格计算模块,包括多个蝶形运算单元,用于以并行的方式完成对量化后的待解码数据的网格计算,得到用于指示网格图中状态之间的关系的网格信息;回溯模块,用于基于所述网格信息得到逆序的解码结果;以及输出模块,用于将所述逆序的解码结果正序输出。

【技术特征摘要】
1.一种针对咬尾卷积码的Viterbi解码器,包括:
输入处理模块,用于量化待解码的数据;
网格计算模块,包括多个蝶形运算单元,用于以并行的方式完成对量
化后的待解码数据的网格计算,得到用于指示网格图中状态之间的关系的
网格信息;
回溯模块,用于基于所述网格信息得到逆序的解码结果;以及
输出模块,用于将所述逆序的解码结果正序输出。
2.根据权利要求1所述的Viterbi解码器,还包括:
存储控制模块,用于控制所述Viterbi解码器中各个模块的操作。
3.根据权利要求1或2所述的Viterbi解码器,其中,所述输入处理
模块还用于在量化待解码的数据后,将量化后的码块尾比特输出至所述网
格计算模块以执行网格计算,并且将量化后的码块存储至存储器。
4.根据权利要求3所述的Viterbi解码器,其中,在完成对量化后的
码块尾比特的网格计算后,存储在所述存储器中的量化后的码块被输出至
所述网格计算模块以执行网格计算。
5.根据权利要求4所述的Viterbi解码器,其中:
所述网格计算模块在收到来自所述输入处理模块的量化后的码块尾
比特后,利用所述多个蝶形运算单元并行地执行网格计算,以更新存储在
所述网格计算模块中的路径度量值;
所述网格计算模块在收到来自所述存储器的量化后的码块后,利用所
述多个蝶形运算单元并行地执行...

【专利技术属性】
技术研发人员:韩冬董晶杨行孙刚苏泳涛石晶林
申请(专利权)人:中国科学院计算技术研究所
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1