一种应用矢量数字信号处理器的维特比译码的实现方法

文档序号:8301264阅读:766来源:国知局
一种应用矢量数字信号处理器的维特比译码的实现方法
【技术领域】
[0001]本发明涉及数字信号处理的技术领域,特别是涉及一种应用矢量数字信号处理器(Vector Digital Signal Processor,Vector DSP)的维特比(viterbi)译码的实现方法。
【背景技术】
[0002]现有技术中,数字无线通信系统的一般结构如图1所示,发射系统包括信道编码模块、和数字调制模块。调制后的数字信号转换成模拟信号后,调制到射频经天线发射。经过无线信道后,在接收端进行射频解调和模数转换,再经过数字解调和信道解码后完成数据的接收。其中信道编码的作用主要是通过一定方式增加发送信号的冗余度,从而使接收端通过信道解码可以获得纠错的能力。
[0003]卷积码作为简单高效的信道编码方式,在各种通信标准中都被使用。以LTE为例,卷积码生成器的结构如图2所示。输入比特依次通过一个线性移位寄存器,与多个固定的抽头比特进行异或运算,即得到输出比特。因此一个输入比特将会对应多个输出比特。如果是2个输出比特,则称之为1/2编码;如果是3个输出比特,则称为1/3编码。由于大部分通信规范中都使用1/3编码,故后文中都以1/3编码为例。同时,卷积码生成过程可以用网格图直观地进行表达。如图3所示,移位寄存器中的比特序列表示状态编号,状态的个数是由移位寄存器的长度决定,如长度为6,则状态个数为2~6 = 64。每一个输入比特会导致网格图上的一次状态迀移,并伴随着3个输出比特的。整个比特流的输入在网格图上形成一条迀移路径。
[0004]维特比解码的基本原理是在网格图上所有可能的路径中找到与接收到的比特流欧式距离(或汉明距离)最大的路径作为最大似然解码输出。因此,以8个状态为例,如图4所示,需要遍历网格图上所有可能的路径,通过计算每次状态迀移的分支度量(BranchMetrics),累加得到所有路径的路径度量(Path Metrics),选取路径度量最大的路径,再通过回溯过程(trace back)将信息比特从尾到头输出。
[0005]由于其良好的性能和适当的复杂度,viterbi译码算法在无线通信领域得到了广泛的应用。蜂窝移动通信技术中从2G开始就采用了 viterbi译码。到现在LTE以及LTE-A的技术规范中,仍然对一部分传输信道采用viterbi译码。在以WiFi (802.11系列)为代表的连接性(connectivity)无线通信技术中,viterbi译码也是必不可少的一部分。
[0006]现有技术中,viterbi译码算法模块绝大多数都是以硬件电路方式实现,只有少数GSM终端接收机中采用通用标量数字信号处理器来完成。主要原因是硬件电路方式可以得到更低的功耗和面积,而通用标量(scalar)数字信号处理器的能力则很难满足越来越高的译码吞吐率的需求。
[0007]随着软件无线电的兴起,在一个通用平台上实现多个标准的通信技术正成为一种趋势。虽然viterbi译码在各个标准中都被采用,但是每个标准的编解码参数都各不相同。因此需要使用更为灵活的实现方式以在通用平台上兼容各种技术规范的译码。矢量数字信号处理器的出现大幅度增加了数字信号处理器的处理能力,同时又兼有可编程的灵活性,非常适合应用于软件无线电通用平台。因此,将viterbi译码算法在矢量数字信号处理器上进行实现也成为一个现实的需求。

【发明内容】

[0008]鉴于以上所述现有技术的缺点,本发明的目的在于提供一种应用矢量数字信号处理器的维特比译码的实现方法,充分利用矢量数字信号处理器的通用指令集,高效地实现维特比译码算法的网格图路径度量计算,有效地提高了译码吞吐率。
[0009]为实现上述目的及其他相关目的,本发明提供一种应用矢量数字信号处理器的维特比译码的实现方法,采用Radix-4蝶形运算进行网格图路径度量的计算;根据矢量数字信号处理器的数据通道宽度和指令并行度进行Radix-4蝶形运算的并行操作;采用矢量数字信号处理器中求最大值及序号的矢量指令完成状态回溯;回溯过程每次回溯2个信息比特。
[0010]根据上述的应用矢量数字信号处理器的维特比译码的实现方法,其中:每个Radix-4蝶形运算处理2次状态迀移。
[0011]根据上述的应用矢量数字信号处理器的维特比译码的实现方法,其中:Radix-4蝶形运算采用矢量数字信号处理器上矢量加和矢量间求最大值的指令实现。
[0012]根据上述的应用矢量数字信号处理器的维特比译码的实现方法,其中:求最大值及序号的矢量指令包括矢量间求最大值及序号的指令和矢量内求最大值和序号的指令。
[0013]根据上述的应用矢量数字信号处理器的维特比译码的实现方法,其中:针对分成16组的64状态的卷积码,第一个Radix-4蝶形运算表示为:
[0014]PMend= max row{ [PMstart (O),PMstart (32),PMstart (16),PMstart (48) ]+ [P,-P, Q,-Q]+ [S,S
,-s, -s]}
[0015]其中,maxMW{}表示对每一行求最大值;
[0016]出发状态路径度量矢量PMstart (O)、PMstart (32)、PMstart (16)和 PMstart (48)分别为:
[0017]PMstart (O) = [pm(start_state = O), pm (start_state = O), pm (start_state =0), pm(start_state = 0)]T
[0018]PMstart (32) = [pm(start_state = 32), pm(start_state = 32), pm(start_state=32), pm(start_state = 32)]T
[0019]PMstart (16) = [pm(start_state = 16), pm (start_state = 16), pm (start_state=16), pm(start_state = 16)]T
[0020]PMstart (48) = [pm(start_state = 48), pm (start_state = 48), pm (start_state=48), pm(start_state = 48)]T
[0021]状态迀移的分支度量矢量P、Q和S分别为:
[0022]P = [P, -p, P, -ρ]τ
[0023]Q = [q, -q, q, -q]T
[0024]S = [m, n, _m, -n]T
[0025]其中,p,q,m,n是Raidx_4蝶形运算单元中的4个分支度量,P和q是与第一个输入比特有关的分支度量;P是起始状态为0,输入比特为O的路径的分支度量;q是起始状态为16,输入比特为O的路径的分支度量仰和η是与第二个输入比特有关的分支度量;m是输入比特位O,结束状态为O的路径的分支度量,η是输入比特为O,结束比特为2的路径的分支度量。
[0026]根据上述的应用矢量数字信号处理器的维特比译码的实现方法,其中:回溯过程采用矢量数字信号处理器上的移位指令。
[0027]根据上述的应用矢量数字信号处理器的维特比译码的实现方法,其中:在最后状态的所有路径度量中找到最大值的序号,作为译码输出的路径的最末状态进行回溯操作。
[0028]根据上述的应用矢量数字信号处理器的维特比译码的实现方法,其中:回溯过程的公式如下:
[0029]State (n) = State(n+2)>>2+TB_duo_bits〈〈4
[0030]其中,TB_duo_bits为State (n+2)对应的回溯比特信息,State (η)表示输入比特为η时的状态,State (n+2)表示输入比特为n+2时的状态,?表示左移位操作;>> 表示右移位操作。
[0031]进一步地,根据上述的应用矢量数字信号处理器的维特比译码的实现方法,其中:TB_duo_bits是在进行每次蝶形运算时,每个结束状态从4条路径中得到的最大的路径度量的序号。
[0032]如上所述,本发明的应用矢量数字信号处理器的维特比译码的实现方法,具有以下有益效果:
[0033](I)充分利用了矢量数字信号处理器的通用指令集,高效地实现维特比译码算法的网格图路径度量计算;
[0034](2)有效地提高了维特比译码的吞吐率。
【附图说明】
[0035]图1显示为现有技术中数字无线通信系统的结构示意图;
[0036]图2显示为现有技术中LTE系统中卷积码生成器的结构示意图;
[0037]图3显示为现有技术中LTE系统中卷积码1/3编码的网格图;
[0038]图4显示为现有技术中8状态网格图译码路径度量计算及回溯的示意图;
[0039]图5显示为现有技术中Radix-2蝶形运算单元表达状态迀移的示意图;
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1