一种DSP小端模式下的高速维特比译码方法及其接收机技术

技术编号:20947233 阅读:53 留言:0更新日期:2019-04-24 03:33
本发明专利技术公开了一种高速维特比译码方法及其接收机。该高速维特比译码方法根据DSP处理器的系统构架和指令特点对维特比解码方法进行了高度的优化,利用C66x系列DSP核的内置函数直接指定每一步操作所使用的汇编指令,并综合考虑了DSP的资源限制。与现有的DSP维特比译码技术相比较,本发明专利技术实现了较大的性能提升。

A High Speed Viterbi Decoding Method and Its Receiver in Small-End Mode of DSP

The invention discloses a high-speed Viterbi decoding method and a receiver. The high-speed Viterbi decoding method is highly optimized according to the system architecture and instruction characteristics of the DSP processor. The assembly instructions used in each step are directly specified by the built-in functions of the C66x series of DSP cores, and the resource constraints of the DSP are comprehensively considered. Compared with the existing DSP Viterbi decoding technology, the invention achieves greater performance improvement.

【技术实现步骤摘要】
一种DSP小端模式下的高速维特比译码方法及其接收机
本专利技术涉及一种维特比译码方法,尤其涉及一种在DSP小端模式下运行的高速维特比译码方法,同时涉及采用该高速维特比译码方法的接收机,属于无线通信

技术介绍
在无线通信系统中,由于信道传输特性不理想以及噪声的存在,会导致接收端出现接收信号的错误,因此用于纠错的信道编码是极为重要的技术环节。所谓信道编码,是在发送端对原数据添加和原数据相关的冗余信息,再在接收端根据这种相关性来检测和纠正传输过程产生的差错。卷积码是一种在无线通信系统中广泛使用的信道编码技术,20世纪70年代就应用在深空和卫星通信中。其中,(3,1,7)型卷积码由于在误码性能和译码复杂度上取得了较好的折衷,许多通信系统都采用了该型卷积码,例如LTE系统等。维特比(Viterbi)译码是卷积码的最优译码算法,在实际中得到了广泛的应用。维特比译码包括计算路径回溯和路径度量两部分。针对路径回溯问题,在专利号为ZL200910008300.3的中国专利技术专利中,华为公司提出了一种增强译码方法,用于降低在DSP里实现增强VITERBI译码算法路径回溯过程中的运算量。该增强译码方法包括如下步骤:获取从不可靠节点开始的、并且回溯长度与预定回溯长度相等的回溯路径;将所述回溯路径转换为对应的译码结果;用所述译码结果替换最大似然译码序列中与所述回溯路径对应位置的译码结果;输出替换过译码结果的译码序列。路径度量的计算需要通过加-比-选操作来完成。通常情况下,其计算量远大于路径回溯。在申请号为US19950558745的美国专利中,提出了一种专门针对维特比译码优化的DSP设备,其主要思路是设计专用的硬件结构来提高维特比译码的速度。由于使用了专用硬件,所以无法将其应用到通用型DSP上。在申请号为US20020243567的美国专利中,提出了一种改进型DSP译码方法。其主要思路是利用专用指令如vmshl、vitsel、vitadd、vitmax、vitmin来提高译码的速度。但是,许多通用型DSP上并不提供这些专用指令,因而无法使用该方法。为了在通用型处理器上提高译码的速度,有人在x86系列处理器上将译码中的部分计算预先离线完成,用存储资源来换取译码速度的提高(参见PhilKarnandMatthiasP.Braendli,theKA9Q'sFEClibrary.[Online].Available:https://github.com/Opendigitalradio/ka9q-fec,Feb.2012)。但是,该方法仅仅针对x86系列处理器实现了优化。在嵌入式系统中,DSP的使用更为广泛。DSP与x86系列处理器在结构上有较大的差异。在DSP上进行维特比译码,需要根据DSP的系统架构和指令特点优化相关的算法。
技术实现思路
本专利技术所要解决的首要技术问题在于提供一种DSP小端模式下的高速维特比译码方法。本专利技术所要解决的另一技术问题在于提供一种采用上述高速维特比译码方法的接收机。为了实现上述目的,本专利技术采用下述的技术方案:根据本专利技术实施例的第一方面,提供一种高速维特比译码方法,基于C66x系列DSP核实现,其中利用C66x系列DSP核的内置函数直接指定每一步操作所使用的汇编指令。其中较优地,所述高速维特比译码方法在C66x系列DSP核的小端模式下运行。其中较优地,所述内置函数包括但不限于_amem8、_dadd、_loll、_hill、_maxu4、_cmpeq4、_packh4、_packl4、_minu4、_packlh2、_sub4。其中较优地,所述高速维特比译码方法进一步包括如下步骤:1)将累积度量数组cum_metrics清零,将已读数据计数器counter清零;2)读入三个连续的输入数据,得到路径度量的增量local_metric_0和local_metric_1在查找表lookup_0和lookup_1中的偏移量;计数器counter加3;3)k为偶数时,八个一组,利用C66x的内置函数_amem8、_dadd、_loll和_hill依次计算累计度量的可能新值update_metrics0[k];4)k为奇数时,八个一组,利用C66x的内置函数_amem8、_dadd、_loll和_hill依次计算累计度量的可能新值update_metrics0[k];5)k为偶数时,八个一组,利用C66x的内置函数_amem8、_dadd、_loll和_hill依次计算累计度量的可能新值update_metrics1[k];6)k为奇数时,八个一组,利用C66x的内置函数_amem8、_dadd、_loll和_hill依次计算累计度量的可能新值update_metrics1[k];7)k为偶数时,四个一组,利用C66x的内置函数_maxu4比较update_metrics0[k]和update_metrics1[k]中的最大值;8)k为奇数时,四个一组,利用C66x的内置函数_maxu4比较update_metrics0[k]和update_metrics1[k]中的最大值;9)k为偶数时,四个一组,利用C66x的内置函数_cmpeq4记录幸存路径;10)k为奇数时,四个一组,利用C66x的内置函数_cmpeq4记录幸存路径;11)k为所有数时,八个一组,利用C66x的内置函数_packh4和_packl4整理累积度量的格式;12)k为所有数时,利用C66x的内置函数_minu4、_packlh2、_packl4和_packh4搜索累积度量的最小值;13)k为所有数时,四个一组,利用C66x的内置函数_sub4从累积度量中减去最小值;14)k为所有数时,四个一组,存储累积度量;15)判断counter是否小于3×(N+6),其中N为卷积码编码之前的数据长度;如果是,转入步骤2),否则,进行步骤16);16)进行最深路径回溯,估计出发射数据;其中,在步骤3)至步骤14)中,k为状态索引;其中,在步骤3)和步骤5)中,“k为偶数时,八个一组”是指将状态索引k按照如下表格分组其中,在步骤4)和步骤6)中,“k为奇数时,八个一组”是指将状态索引k按照如下表格分组:组号状态索引第1组k=1,3,5,7,9,11,13,15第2组k=17,19,21,23,25,27,29,31第3组k=33,35,37,39,41,43,45,47第4组k=49,51,53,55,57,59,61,63其中,在步骤7)和步骤9)中,“k为偶数时,四个一组”是指将状态索引k按照如下表格分组:组号状态索引第1组k=0,2,4,6第2组k=8,10,12,14第3组k=16,18,20,22第4组k=24,26,28,30第5组k=32,34,36,38第6组k=40,42,44,46第7组k=48,50,52,54第8组k=56,58,60,62其中,在步骤8)和步骤10)中,“k为奇数时,四个一组”是指将状态索引k按照如下表格分组:组号状态索引第1组k=1,3,5,7第2组k=9,11,13,15第3组k=17,19,21,23第4组k=25,27,29,31第5组k=33,35,37,39第6组k=41,43,45,47第7组k=本文档来自技高网
...

【技术保护点】
1.一种高速维特比译码方法,基于C66x系列DSP核实现,其特征在于利用C66x系列DSP核的内置函数直接指定每一步操作所使用的汇编指令。

【技术特征摘要】
1.一种高速维特比译码方法,基于C66x系列DSP核实现,其特征在于利用C66x系列DSP核的内置函数直接指定每一步操作所使用的汇编指令。2.如权利要求1所述的高速维特比译码方法,其特征在于所述高速维特比译码方法在C66x系列DSP核的小端模式下运行。3.如权利要求1或2所述的高速维特比译码方法,其特征在于所述内置函数包括但不限于_amem8、_dadd、_loll、_hill、_maxu4、_cmpeq4、_packh4、_packl4、_minu4、_packlh2、_sub4。4.如权利要求3所述的高速维特比译码方法,其特征在于包括如下步骤:1)将累积度量数组cum_metrics清零,将已读数据计数器counter清零;2)读入三个连续的输入数据,得到路径度量的增量local_metric_0和local_metric_1在查找表lookup_0和lookup_1中的偏移量;计数器counter加3;3)k为偶数时,八个一组,利用C66x的内置函数_amem8、_dadd、_loll和_hill依次计算累计度量的可能新值update_metrics0[k];4)k为奇数时,八个一组,利用C66x的内置函数_amem8、_dadd、_loll和_hill依次计算累计度量的可能新值update_metrics0[k];5)k为偶数时,八个一组,利用C66x的内置函数_amem8、_dadd、_loll和_hill依次计算累计度量的可能新值update_metrics1[k];6)k为奇数时,八个一组,利用C66x的内置函数_amem8、_dadd、_loll和_hill依次计算累计度量的可能新值update_metrics1[k];7)k为偶数时,四个一组,利用C66x的内置函数_maxu4比较update_metrics0[k]和update_metrics1[k]中的最大值;8)k为奇数时,四个一组,利用C66x的内置函数_maxu4比较update_metrics0[k]和update_metrics1[k]中的最大值;9)k为偶数时,四个一组,利用C66x的内置函数_cmpeq4记录幸存路径;10)k为奇数时,四个一组,利用C66x的内置函数_cmpeq4记录幸存路径;11)k为所有数时,八个一组,利用C66x的内置函数_packh4和_packl4整理累积度量的格式;12)k为所有数时,利用C66x的内置函数_minu4、_packlh2、_packl4和_packh4搜索累积度量的最小值;13)k为所有数时,四个一组,利用C66x的内置函数_sub4从累积度量中减去最小值;14)k为所有数时,四个一组,存储累积度量;15)判断counter是否小于3×(N+6),其中N为卷积码编码之前的数据长度;如果是,转入步骤2),否则,进行步骤16);16)进行最深路径回溯,估计出发射数据;其中,在步骤3)至步骤14)中,k为状态索引;其中,在步骤3)和步骤5)中,“k为偶数时,八个一组”是指将状态索引k按照如下表格分组组号状态索引第1组k=0,2,4,6,8,10,12,14第2组k=16,18,20,22,24,26,28,30第3组k=32,34,36,38,40,42,44,46第4组k=48,50,52,54,56,58,60,62其中,在步骤4)和步骤6)中,“k为奇数时,八个一组”是指将状态索引k按照如下表格分组:组号状态索引第1组k=1,3,5,7,9,11,13,15第2组k=17,19,21,23,25,27,29,31第3组k=33,35,37,39,41,43,45,47第4组k=49,51,53,55,57,59,61,63其中,在步骤7)和步骤9)中,“k为偶数时,四个一组”是指将状态索引k按照如下表格分组:其中,在步骤8)和步骤10)中,“k为奇数时,四个一组”是指将状态索引k按照如下表格分组:组号状态索引第1组k=1,3,5,7第2组k=9,11,13,15第3组k=17,19,21,23第4组k=25,27,29,31第5组k=33...

【专利技术属性】
技术研发人员:马慧王旭陈南希舒睿俊徐景张武雄
申请(专利权)人:上海无线通信研究中心
类型:发明
国别省市:上海,31

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

1