保存桌面快捷方式 - - 设为首页 - 手机版
凹丫丫旗下网站:四字成语大全 - 故事大全 - 范文大全
您现在的位置: 范文大全 >> 理工论文 >> 电子通信论文 >> 正文

用TMS320C54X实现Vertibi译码器


>加比选单元是Vertibi译码器的核心单元。它的主要功能是取出当前状态的量度值,分别与其两个后续支路的量度相加并比较,选择罗小的一个作为后续状态的量度,并保存幸存支路。图3给出了该算法的示意图。

C54X片内的比较、选择和存储单元(CSSU)就是专门为Viterbi算法设计的加法/比较/选择(ACS)运算的硬件单元。图3所示的运算包括加法、比较和选择三部分操作。其加法运算由DSP的ALU完成。只要将状态寄存器ST1中的C16位置成1,ALU就被配置成双16位工作方式,这样,就可以在一个机器周期内执行两次加法运算。其结果(Old_Met1+D1和Old_Met2+D2)都是16位数,分别存放在累加器的高16位和低16位中。然后,利用CMPS指令对累加器的高16位和低16位进行比较,并选择出较大的一个数放到指令所指定的存储单元中。在CMPS指令执行的过程中,状态转移寄存器TRN自动记录比较的结果,这一点非常有用。实现一个蝶式运算的程序如下:

LD *AR2,T ;T=本地距离

DADST *AR5,A ;A=Old_Met(2*j)+T//Old_Met(2*j+1)-T

CMPS A,*AR4+ ;New_Met(j)=(Max(Old_Met(2*j)+T,Old_Met(2*j+1)-T)

;TRN=RTN<<1

;若(Old_Met(2*j)+T=<Old_Met(2*j+1)-T则

TRN[0]=1

CMPS B,*AR3+ ;New_Met(j+2 K-2)=(Max(Old_Met(2*j)-T,Old_Met(2*j+1)+T)

TRN=TRN<<1

;若(Old_Met(2*j)-T=<Old_Met(2*j+1)+T)则TRN[0]=1

3.2 回溯

当接收完1帧数据后,添加尾比特,强迫网格图的最后一个状态(0状态)开始,反向追踪最大似然路径,完成原始数据的译码。回溯的计算过程如下:

①计算当前状态在转移数据块中的数据;

②利用BITT指令从T寄存器中读取当前状态相应的转称比特;

③用上面读取的转移比特更新状态。

溯的主要功能是,从每个符号间隔的转移数据中提取正确的位。为了完成该功能,需要保存每个状态相应的转移比特。该比特表示选定碟形网络的是上面分支还是下面分支,所有这些转移比特构成一块转移字。表1给出转移字块中状态数与相应转移比特之间的关系。

表1 一个符号间隔内数据转移的状态顺序

状态字中的比特序号   15 14 13 12 … 2 1 0 转移字序号 0 0 2K-2 1 2K-2 +1 … 2K-2 +6 7 2K-2 +7 1 8 2K-2 +8 9 2K-2 +9 … 2K-2+E F 2K-2 +F 2 10 2K-2+10 11 2K-2 +11 … 2K-2 +16 17 2K-2 +17 … … … … … … … … … 2K-5 -1 2K-2 -8 2K-1 -8 2K-2 -7 2K-2 -7 … 2K-1 -2 2K-2 -1 2K-1 -1

实现回溯的程序如下:

《用TMS320C54X实现Vertibi译码器(第3页)》
本文链接地址:http://www.oyaya.net/fanwen/view/149485.html

★温馨提示:你可以返回到 电子通信论文 也可以利用本站页顶的站内搜索功能查找你想要的文章。