Turbo码又称并行级联卷积码(PCCC),1993年由Berro等人在ICC国际会议上提出。因为其充分利用了Shannon信道编码定理的随机化编码条件,因此取得简直挨近Shannon理论极限的译码功能[1]。
Turbo码在低信噪比使用环境下的优异功能,使得其在许多通讯体系中具有十分好的使用远景。第三、四代移动通讯体系的多种计划,都将Turbo码作为信道编码的计划之一。可是,Turbo码存在着译码时延伸、硬件完成杂乱度高的问题,这使得其完成和使用都受到了必定的限制。人们也推出了一些减小译码延时的译码办法,例如分块并行、滑窗等办法。可是这些译码办法对应的译码功能有丢失,而且在硬件完成上操控时序也比较杂乱。本文给出了一种愈加有用减小译码延时办法,其译码功能没有功能丢失,硬件完成时的时序操控相对简略,存储空间也有必定的削减。
1 改善译码办法
成员译码器(DEC1,DEC2)首要依据输入的外信息和接纳到的信息序列进行正向(按帧长早年向后的次序)分支衡量值核算和前向递归核算,一起进行反向(按帧长的逆序)分支衡量值核算和后向递归核算。当正向递归核算和反向递归核算到帧长一半(N/2)时,进行正向对数似然比核算和反向对数似然比核算,一起核算出对应的外信息经过交错后作为另一个成员译码器的输入先验信息。
这样每半次迭代进程可分如下二个进程进行:
(1)第一步:DEC正向分支搬运衡量γk核算和DEC前向递归αk核算[2][3],一起进行反向分支搬运衡量γj核算和DEC后向递归βj核算:
其间:s′为前一状况,s为后一状况,k为对应的状况数,uk为编码的信息位,xk,v为校验位,yk,l为接纳到的信息位,yk,v为接纳到校验位,Ak为一个常数,Lc为信道可信度。一起进行前向递归:
关于β的初始化,假如编码在每帧编码之后经过参加归零比特使编码状况回到零状况。则可初始为:
这儿v为编码成员码中寄存器的个数。
(2)第二步:正向对数似然值核算和反向对数似然比
然后进行交错:
其间π()为交错函数。
经典译码和改善译码办法的半次迭代(一个子译码的译码进程)对应的时序图如图1所示。由图1可知对应半次迭代译码延时为T,图中下半部分是改善的译码时序,改善的译码延时为T/2。这种新的译码办法能将译码延时缩短一半。因为在整个核算进程中没有选用任何近似核算,所以译码功能没有任何丢失。在核算进程中,不需要对γk(s′,s)进行存储,然后削减了在硬件完成时所需的存储容量。
2 与其他译码办法的比较
为了减小译码延时,人们推出了分块并行译码算法、滑窗译码等办法。它们都选用了相应的近似核算,然后在译码功能上或多或少有些丢失,它们都是经过献身译码功能来交换减小译码延时的,一起它们硬件完成时的时序操控也比较杂乱。
分块并行是将接纳的整个码字分红若干子块[4][5],各子块进行并行处理,其间各子块的前后向递推公式的初始值由相邻子块的前一次迭代译码的鸿沟核算值传递,这样就引入了近似核算,译码功能就有必定丢失。设经典半次迭代译码延时为T,分块的块数为M,则分块并行译码办法的译码延时为T/M。可是,因为它的操控时序很杂乱,因此硬件完成杂乱度较高。
关于滑窗译码办法而言[6][7],它经过预先递推一段后向递归量作为真实核算后向递归的初值,也采取了近似核算,因此译码功能也有必定的丢失。设经典半次迭代译码延时为T,则滑窗译码办法的半次迭代译码延时为:(T/2+T/(2×N/W)),因此其时序操控很杂乱,可是这种办法能很大程度上节约存储容量。
本文选用的译码办法的译码延时为T/2,译码延时能节约一半,更首要的是其译码功能没有任何丢失,而对应的时序操控也相对简略,更有实践使用价值。
3 几种译码办法的仿真比较
对经典译码办法、分块并行办法别离做了仿真。仿真参数:生成多项式为G=(15,13),交错选用3GPP随机交错,译码算法为MAX-Log-MAP,码率为1/3,迭代次数为4和6,调制选用BPSK,信道选用AWGN,帧长为1 024,分块并行计划平分4块并行译码。仿真图如图2所示。
图2中上面两条别离是分块并行和改善译码算法迭代4次的误码率功能曲线,从图中看出分块并行译码算法有功能丢失;下面两条是分块并行和改善译码算法迭代6次的误码率功能曲线,对应的分块并行也有功能丢失。可是跟着迭代次数的添加,两种译码办法的功能不同逐步减小。由图2剖析可知,本文选用的译码办法的译码功能与经典的译码办法相同,没有功能上的丢失,在译码功能上优于分块并行和滑窗译码办法,在减小译码延时优于滑窗译码办法,但比分块并行差。
4 硬件完成计划
重量译码器(DEC)内部结构图如图3所示。首要从存储器中次序读出体系信息序列Xk,校验序列Yk和先验信息Lak,进行正向分支衡量γk核算和前向递归αk核算并存储,如图3中上半部分所示。一起,从存储器中逆序读出体系信息序列Xj,校验序列Yj和先验信息Laj,进行反向分支衡量γj核算和后向递归βj核算并存储,如图3中下半部分所示。别的还设置正向核算器和反向核算器,计数器对并行运算长度进行计数,并将计数成果作为地址来存储核算成果。等计数值达帧长的一半时,对数似然比核算1模块依据现已核算出并存储的后向递归βj,当时核算出的分支衡量γk和前向递归αk进行对数似然比核算,并存储核算成果。一起对数似然比核算2模块依据现已核算出并存储的前向递归αk、当时核算出的分支衡量γj和前向递归βj进行对数似然比核算,并存储核算成果。这儿选用双口RAM完成对数似然比的存储,双口RAM的两个口能够在地址不抵触的情况下,进行一起写操作。在硬件完成的进程中,不必对分支衡量进行存储,然后节约了存储单元。当然因为多加了分支衡量核算单元和对数似然比核算,添加了资源,可是从减小译码延时而且译码功能不丢失视点考虑,这是十分值得的。
为了进一步节约硬件资源,考虑到两个重量译码器是分时作业的,这样能够进行重量译码器的复用。整个译码器完成结构图如图4所示。当然译码器的完成还需要对应的操控子体系,用于使各个子模块和谐有序地作业。这样体系完成的硬件资源就大大减小,译码延时也大大缩小。然后到达高速数据通讯的意图。
5 硬件完成
根据以上介绍的硬件完成结构,对Xilinx公司的Virtex2pro系列的FPGA芯片进行了装备,选用的是帧长为2 060、1/2码率的Turbo码;译码部分选用MAX-Log-MAP译码算法,其间输入数据流选用8bit(其间1bit符号位,4bit整数位,3bit小数位4)量化;内部核算选用12bit(其间1bit符号位,8bit整数位,3bit小数位4)量化;迭代6次译码。运用XilinxISE8.2i对2vp30ff896-7进行了归纳完成,资源耗费如图5的归纳陈述所示,最大时钟可到达112.331MHz。仿真东西选用Modelsim SE 6.0进行仿真,布局布线后仿真波形图如图6。
为了在不丢失译码功能的前提下减小译码延时,本文提出了改善的Turbo码译码办法,经过前向递归和后向递归并行核算,等核算到帧长一半时,开端一起进行前向对数似然比核算和后向对数似然比核算的译码办法。该计划能够将译码延时缩短一半,译码功能没有丢失,能节约硬件完成所需的存储单元,时序操控比较简略,更易于硬件完成。仿真成果表明:这种译码办法在功能上优于分块译码算法和双滑窗译码算法。在减小译码延时上优于双滑窗译码算法。这个计划在中短帧长、对译码延时、译码功能要求高的通讯体系中有较高的实用价值。