一般来说,实现软判决维特比译码可以有三种方案供选择:专用集成电路(ASIC)芯片、可编程逻辑阵列(FPGA)芯片以及数字信号处理器(DSP)芯片。参考文献[3]对这三种方案的优劣做了详细的比较。使用DSP芯片实现译码是最为灵活的一种方案,但速度也是最慢的,因为整个译码过程都是由软件来实现的。
在近年来兴起的软件无线电技术中,要求采用可编程能力强的的器件(DSP、CPU等)代替专用的数字电路。对信道编解码而言,这样做的优点在于只需要在程序上加以少量改动,就可以适应不同的编码速率以及各种通信系统所要求的不同的编解码方法。然而速度的瓶颈限制了DSP译码在实时系统中的应用,因此提高DSP的译码速度对于软件无线电有着重要的意义。本文的目的就是通过对译码程序结构优化,来提高DSP芯片执行VA算法的速度。
1 维特比译码器
首先,需要定义两个将在本文中用到的术语[2]:
输入帧——每次输入译码器的比特;
输出帧——对应一个输入帧,译码器输出的比特。
图1所示是卷积码译码器(VA算法)的一种典型结构。
以(2,1,7)卷积码为例(输入帧含2比特,输出帧为1比特),来说明译码器的三个主要部分。
1.1 支路度量计算单元(BMG)
计算当前输入帧对应的128条支路的路径度量值,并将其存入支路度量存储单元(BMM)。
1.2 加比选单元(ACS)
将支路度量值与相连的前面的路径度量值相加得到延伸后的新路径的度量值;比较连接在同一个状态上的两条新路径的度量值;选择其中度量值较小的那条路径(幸存路径),并将它的度量值存储到新路径度量存储器(SM)中,幸存路径值(对应编码状态的输入比特)存储到路径存储器(PM)中。