基于多核DSP零尾卷积Viterbi译码的方法及系统技术方案

技术编号:15120636 阅读:209 留言:0更新日期:2017-04-09 19:18
本发明专利技术公开一种基于多核DSP零尾卷积Viterbi译码的方法及系统,主要针对译码过程受存储空间和吞吐率限制而设计。本发明专利技术基于多核DSP零尾卷积Viterbi译码的方法,包括:S1将待译码信息序列进行分段,其中各段待译码信息序列最小长度L′≥(xn+sn)/k,x为译码器可进行回溯并判决输出的码段,s为各段增加的回溯码段;S2将分组后的各段待译码信息序列分配到各DSP核内,分别进行Viterbi译码。

【技术实现步骤摘要】

本专利技术涉及一种基于多核DSP零尾卷积Viterbi译码的方法及系统
技术介绍
TD-SCDMA技术是ITU第三代移动通信技术标准之一,同时也是TDMA,FDMA以及CDMA三种多址方式的灵活运用,随着我国对TD-SCDMA的大力扶持,其已成为我国主流三代移动通信技术之一。在TD-SCDMA系统中,一般采用卷积码和Turbo码这两种信道编码方式进行编码,而译码方式则采用Viterbi译码。通常我们用(n,k,m)这种结构来表述卷积编码的结构。其中k为每次输入到卷积编码器的bit数,n为每个k元组码子对应的卷积码输出n元组码子,m为卷积编码存储度,也就是卷积编码器的k元组的级数。若编码输入长度为T,则输出长度为(T+m-1)*n/k。Viterbi译码算法于1967年由Viterbi本人提出,目的是为了降低卷积译码计算复杂度。它是一种动态规划算法,通过寻找与接收序列汉明距离最少的编码序列,从而实现译码。整个Viterbi一码算法可以简单概括为“相加-比较-存储”。对于(n,k,m)卷积码来说,其每个码段的状态数为2km-1个,对每一时刻要做2km-1次“相加-比较-存储”操作,其中每一次操作包括2k次加法,2k-1次比较,同时要保留2km-1条幸存路径。由此可见,Viterbi的计算复杂度与输入序列长度无关,只与约束长度m以及信息源分组k有关。但对于存储来说,随着输入序列长度的增长,译码所需的总的状态数也相应增加,从而会给存储空间带来压力。卷积码已用于诸多通信领域,出TD-SCDMA系统外,卫星,WIFI等通信系统同样也使用了零尾卷积。目前主流卷积译码方式为硬件实现,通过硬件加速器的设计以得到快速高效Viterbi译码。但对于不同通信系统来说,卷积编码方式不同,若用硬件实现,则对于不同系统来说Viterbi译码器都需要重新设计,不够灵活,增加了开发成本。而软件实现则灵活度高,但基于DSP核实现又要考虑状态存储因素且运算效率相对较低,存储空间和吞吐率也是制约软件实现Viterbi译码的两大关键因素。现有技术中,Viterbi译码算法的基本流程主要如图1所示。其核心运算单元为“加比选”单元。但不管硬件实现或单DSP核运算,都需要对“加比选”单元的输出结果进行存储,输入数据的长度,决定了对存储的需求,最后通过所存结果回溯,从而进行最后的判决输出。
技术实现思路
针对上述问题,本专利技术提供一种将待译码软信息序列分段,将分段后的序列分配到各DSP核分别处理,减轻了各DSP核存储压力、提高了并行度的基于多核DSP零尾卷积Viterbi译码的方法及系统。为达到上述目的,本专利技术基于多核DSP零尾卷积Viterbi译码的方法,包括S1将待译码信息序列进行分段,其中各段待译码信息序列最小长度L′≥(xn+sn)/k,x为译码器可进行回溯并判决输出的码段,s为各段增加的回溯码段;S2将分组后的各段待译码信息序列分配到各DSP核内,分别进行Viterbi译码。具体地,待译码信息序列进行分组具体包括:确定译码器可进行回溯并判决输出的码段x;根据Viterbi译码器序列长度L与码段数u之间的关系公式u=Lk/n,得到码段x对应的待译码信息段的最小长度L′≥xn/k;确定各段增加的回溯码段s,同样根据Viterbi译码器序列长度L与码段数u之间的关系公式u=Lk/n,得到增加的回溯码段s对应的待译码信息段的最小长度L′≥sn/k;计算得到待译码信息序列最小长度L′≥(xn+sn)/k。优选地,译码器可进行回溯并判决输出的码段x通过实验的方法获得,其中x为5m。进一步地,各核独立进行Viterbi译码,回溯的起始位置通过对最后一次状态进行比较,找出最大状态位置作为回溯起始位置。进一步地,还包括合并译码的步骤,具体包括:用下一段的开头覆盖前一段末尾,覆盖长度等于s,且s≥m。进一步地,还包括在S1前对待译码信息序列进行量化的步骤。进一步地,所述的待译码信息序列通过均匀量化方法或非均匀量化方法进行量化。为达到上述目的,本专利技术基于多核DSP零尾卷积Viterbi译码的系统,包括分段模块,用于将待译码信息序列进行分段,其中各段待译码信息序列最小长度L′≥(xn+sn)/k,x为译码器可进行回溯并判决输出的码段,s为各段增加的回溯码段;DSP译码模块,用于将分组后的各段待译码信息序列分配到各DSP核内,分别进行Viterbi译码。进一步地,还包括合并译码模块,用于将多个DSP中的译码进行合并,通过下一段的开头覆盖前一段末尾,覆盖长度等于s,且s≥m。进一步地,还包括量化模块,用于对待译码信息序列进行量化。本专利技术基于多核DSP零尾卷积Viterbi译码的方法及系统,首先对待译码信息序列进行分段,然后将各段分别通过不同的DSP分别独立的进行译码,一方面能够利用多核条件降低对内存的需求,另一方面能够利用多核条件提高Viterbi译码并行度。更重要的是,本专利技术对待译码序列进行分段的依据是:译码器经过约5m段处理后,每个状态的留选路径已经重合到一起,从而得出,译码器不需要将所有码段译出再回溯,而是在5m后就可进行回溯并判决输出,但由于各核独立运算,每个核最终状态可能出错,从而导致回溯路径开始进行时的几个状态会出错,为了弥补这一缺陷,增加回溯深度s,且s≥m,增加回溯深度,对应于原分块长度增加sn/k,则L′≥5mn/k+sn/k=(5mn+sn)/k。这个分段公式保证了可利用的DSP核较多且需译码长度不长情况下,每个核所需译码的最小输入长度,过小的输入将会导致译码错误,过多的输入则会造成DSP核利用的不充分,导致并行度下降。通过上述公式,我们可根据DSP数目以及最小分段长度,找到最好的折中,充分利用DSP的同时,保证译码的正确性。同时增加的回溯深度s可保证在低信噪比以及经历深度衰落信道分段后的回溯路径在回溯初期状态出错的情况,可利用下一段译码进行纠正,保证了译码的正确性。附图说明图1是现有技术Viterbi实现流程图;图2是本专利技术基于多核DSP零尾卷积Viterbi译码的方法的基本流程;图3本专利技术量化后数据分段方法执行示意图;图4本专利技术各核Viterbi译码后数据合并执行示意图。具体实施方式下面结合附图对本专利技术做进一步的描述。下述各实施例用于实现TD-SCDMA系统,待译码长度L=3000的(3,1,9)零本文档来自技高网
...

【技术保护点】
一种基于多核DSP零尾卷积Viterbi译码的方法,其特征在于,包括S1将待译码信息序列进行分段,其中各段待译码信息序列最小长度L′≥(xn+sn)/k,x为译码器可进行回溯并判决输出的码段,s为各段增加的回溯码段;S2将分组后的各段待译码信息序列分配到各DSP核内,分别进行Viterbi译码。

【技术特征摘要】
1.一种基于多核DSP零尾卷积Viterbi译码的方法,其特征在于,包括
S1将待译码信息序列进行分段,其中各段待译码信息序列最小长度
L′≥(xn+sn)/k,x为译码器可进行回溯并判决输出的码段,s为各段增加的回溯
码段;
S2将分组后的各段待译码信息序列分配到各DSP核内,分别进行Viterbi
译码。
2.根据权利要求1所述的多核DSP零尾卷积Viterbi译码的方法,其特征
在于,将待译码信息序列进行分组具体包括:
确定译码器可进行回溯并判决输出的码段x;
根据Viterbi译码器序列长度L与码段数u之间的关系公式u=Lk/n,得到码
段x对应的待译码信息段的最小长度L′≥xn/k;
确定各段增加的回溯码段s,同样根据Viterbi译码器序列长度L与码段数u
之间的关系公式u=Lk/n,得到增加的回溯码段s对应的待译码信息段的最小长
度L′≥sn/k;
计算得到待译码信息序列最小长度L′≥(xn+sn)/k。
3.根据权利要求2所述的多核DSP零尾卷积Viterbi译码的方法,其特征
在于,译码器可进行回溯并判决输出的码段x通过实验的方法获得,其中x为5m。
4.根据权利要求2所述的多核DSP零尾卷积Viterbi译码的方法,其特征
在于,各核独立进行Viterbi译码,回溯的起始位置通过对最后一次状态进行比
较,找出最大状...

【专利技术属性】
技术研发人员:王琛冯雪林周一青苏泳涛朱子元石晶林
申请(专利权)人:北京中科晶上科技有限公司
类型:发明
国别省市:北京;11

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

1