突发通信中Turbo码的FPGA实现
来源:北京理工大学 作者:沈业兵 罗常青 安建平 程波 时间:2010-05-13 10:40
2.2 译码器的内部结构
Turbo码译码器由两个软输入/软输出分量译码器、交织器以及相应的解交织器构成。译码是信息在两个分量译码器之间迭代运算的过程。在迭代运算中,上一次运算得到uk的外信息Λe(uk)作为下一次运算uk的先验信息Λa(uk)。Turbo码分量译码器译码算法主要有MAP类(最大后验概率译码算法)和SOVA类(软判决Viterbi译码算法)[3]。本文采用运算复杂度和性能都适中的MAX-Log-MAP算法。Turbo码译码器FPGA实现的内部结构如图2所示。
地址发生器与编码器相同,用于数据的交织和解交织。输入数据存储器用于存储输入的接收数据,包括系统信息序列存储器以及各个校验序列存储器。外信息存储器用于存储迭代译码产生的外信息。由于外信息要作为下一次译码的先验信息,所以这里的外信息存储器有两块,交替存储两个分量译码器的外信息。SISO模块即为软输入、软输出分量译码器。整个Turbo码译码器有两个SISO分量译码模块。但为了节省资源,本方案只设计了一个SISO模块,将时分复用作为两个分量译码器。图2中,表示接收码字中的系统位,表示接收码字中的校验位。
2.3 译码器内部的时序控制
Turbo码译码器内部的时序控制由状态机完成。整个译码过程分为初始化、接收数据存储、迭代译码及硬判决输出四个过程,且对应于状态机的INIT、STORAGE、SISO和OUT四个状态。译码器的内部状态转移如图3所示。初始状态INIT完成帧长设定等初始化工作,并完成交织地址生成的准备过程,一旦指示第一个数据输入的fd信号有效(高有效)时,则进入STORAGE状态;状态STORAGE完成将接收数据序列存入单口RAM中,待一帧数据写完后,指示存储完毕的rdyStr信号置高,进入SISO状态;在状态SISO下,SISO分量译码器根据设定的迭代次数对接收数据进行迭代译码。当迭代完成时,rdySiso置高,进入OUT状态;对数据硬判决输出并计数,此时输出有效信号ready置高,待全部判决完毕后返回INIT状态。
上一篇:在嵌入式设计中降低CPLD的功耗