APP下载

基于FPGA的Turbo码交织器的设计与实现

2012-01-31田克纯常雪景

电视技术 2012年9期
关键词:行列交织图样

田克纯,常雪景

(桂林电子科技大学 信息与通信学院,广西 桂林541004)

在信息传输中,采用信道编码的方法可对信道差错进行有效控制。近几年来,Turbo码一直是信道编码的热点,成为3G中采用的主流信道编码方式,而交织器的采用可以使Turbo码实现随机性编码,获得更加优异的性能。

因为Turbo码的性能受交织器设计好坏的影响很大,所以对于Turbo码而言,交织器的设计至关重要。交织[1]是以一一映射的方式来进行随机化原始序列的,所以这就要求在设计交织器的时候,对原始数据的排列顺序最大程度地进行置乱,从而把那些在置换前相距较近的数据在经过置换之后相距间隔变长,这样就可以保证输出码元序列的准确性,同时有利于在后续的译码过程中纠正这些错误。

1 交织器的分类介绍

使用具有一一映射关系的确定性方法对二进制和非二进制顺序进行重新编排的过程,即为通常所说的交织,而把序列顺序重新恢复的过程称为解交织。交织和解交织是对应的互逆过程。实现序列交织和解交织所采用的器件分别被称为交织器和解交织器。

假设,输入交织器I的一组序列是[2]

式中:ui∈{1,0},i=1,2,…,N。

交织映射输出序列记为

式中:uj∈{0,1},j=1,2,…,N。

若定义集合S={1,2,…,N},那么交织过程可理解为一一映射索引函数

目前,交织器主要有随机交织器、规则交织器、伪随机交织器这3种常见类型[3]。其中,随机交织器的性能在理论上是最好的。然而,在硬件实现上不仅复杂度高,还极有可能产生不了交织,如随机交织之后所产生的序列与原序列相同,也就是说在交织前输入的数据顺序与交织后的数据顺序一样,没有发生变化。规则交织器在硬件上实现相对于另外两种交织器是最容易的,但是性能却是三者之中相对最差的,所以在对性能要求较高的情况下应避免采用。在参数性能上伪随机交织器比随机交织器稍差,却优于规则交织器,同时在硬件实现时,伪随机交织器与规则交织器相比较为复杂,却比随机交织器易于实现。综上所述,在工程应用中,应根据具体情况合理地选择满足性能及硬件指标要求的交织器类型。以下介绍几类常见的交织器。

1.1 行列交织器

在信道编码中,最初应用的交织器便是行列交织器[4]。它是规则交织器中最简单也是最常见的一种,交织前后的序列位置间的映射距离是固定的。

虽然行列交织器极易在硬件上实现,但在优化距离特性和改善相关性这两个方面却存在极大的不足,不利于提高Turbo码的性能。

例如,一个3×4的行列交织器的交织过程可阐述如下:

1)按行顺序读入数据,行列矩阵如图1所示。

图1 行列矩阵

2)按列顺序读出数据。

数据的写入顺序为{0,1,2,3,4,5,6,7,8,9,10,11}。读出顺序为{0,4,8,1,5,9,2,6,10,3,7,11}。

1.2 随机交织器

由交织映射随机生成的交织器,称为随机交织器。根据随机的方式打乱输入序列,如果是在数据帧较长的情况下,就会取得很好的效果,但是不足之处是在编译过程中所产生的系统时延相对较大。随机数的产生形式决定随机交织器的随机性,如果一个随机交织器的长度为N,那么就总共有N!种交织形式,N越大,则交织形式也就越多,随机交织器的随机性也就越复杂,这样不仅增加了硬件实现的费用,而且还提高了在工程实现时的复杂度。

1.3 对称交织器

所谓对称交织器,是指满足若I→J,则J→I的交织器I和J均属于映射元素集合。

对称交织器的交织过程和解交织过程是完全相同的,因此如果将此类交织器对原始数据序列应用偶数次,将会得到与原始序列完全相同的输出序列。

在对Turbo码进行编译码时,交织器和解交织器互相对应出现,也就是要求设计对应的硬件设备以及交织映射表,如果所设计的交织器是对称的,那么交织器和解交织器就可以通用,也就是说只采用一种设备即可,从而降低系统实现的复杂度,避免资源浪费,同时Turbo码的性能也会因此而得到极大的改善。

1.4 二次算数交织器[5]

O.Y.Takeshita给出了一个基于二次同余映射的交织器设计方法。

这个交织器利用以N为周期的二次余式计算索引映射函数来生成,公式为

式中:0≤m<N;k为奇常数;N为2的整数次幂。

周期为N的索引映射函数描述了映射关系为cm→cm+1,根据映射关系可以生成交织映射矢量。

假设当N=8,k=1时,得到

其含义是交织后的序列u'中的指标0(输入比特u'0)被映射到原始序列u中的指标1(即u'0=u1),u'中的指标1被映射到u中的指标3(即u'1=u3),等等,所产生的交织图样即为

通过使用规则的数学方法容易地生成二次算术交织器,但是在交织后,其比特之间的距离特性却不十分明显。这些二次交织器与随机选取的交织器的统计特性具有相似性,同时相比较随机交织器而言,其实现的复杂度较低,也就更易于实现,所以二次算术交织器在Turbo码中得到了广泛的应用,而且还可以通过改变k的值从而获得其他更好的交织图样。即使是在N不等于2的整数次幂的情况下,也能通过修改以上算法从而达到产生具有良好统计特性的类似置换的目的。

2 两类交织器的具体设计方案

本文中所设计的交织器长度为32位。

2.1 行列交织器

采用8行4列的行列交织器,根据行列交织器的设计准则可知交织图样为

2.2 基于二次同余的二次算数对称交织器

此类交织器同时具有随机交织器和对称交织器的优点。将式(7)所得的交织图样周期左(右)移N/2位,就可以得到所设计的交织器。交织图样如式(9)所示

由于本文中所设计的交织器长度为32 bit,可在Matlab命令窗口中直接输入以下程序:

k=3;N=32;

for i=1:1:31

x(i)=i;

y(i)=mod(k*x(i)*(x(i)+1)/2,N);

end

即可得到对应的交织映射矢量

由此交织映射矢量可得出交织图样为

将此交织图样向左移动16位,可得到所设计交织器的交织图样为

3 总体方案设计

3.1 系统电路设计

为了可以流水线处理输入数据,即第一帧数据写入完成之后,读出第一帧数据的同时开始写入第二帧数据,这样第一帧数据读出完成时,第二帧数据也写入完毕,接着同时进行第二帧数据的读出和第三帧数据的写入,这样依次进行下去,最终完成所有数据的写入和读出。

所设计的系统电路顶层原理如图2所示。

图2 顶层原理图(软件截图)

3.2 工作过程及仿真测试

详细工作过程是count产生顺序序列,作为ROM的输入信号,读取ROM中的交织表。count模块输出经reg_g模块延时后作为写地址ROM模块的输出作为读地址,同时送到两个switch模块中,通过sw_wr信号控制交替输出读写地址,并送到后面的两个RAM模块中,两个RAM模块的输出通过switch模块合并输出。

交织器的长度为32 bit,仿真时输入两帧长的二进制数据,第一帧输入数据依次为8个0,8个1,8个0,8个1,第二帧输入数据依次为为16个1,16个0。

3.2.1 行列交织器的仿真波形

第一帧输出数据应为

Data_out=[00110011001100110011001100110011]

图3 行列交织器第一帧数据仿真波形(截图)

第二帧输出数据应为

Data_out=[11110000111100001111000011110000]

实际仿真所得波形如图4所示。

图4 行列交织器第二帧数据仿真波形(截图)

3.2.2 基于二次同余的二次算数对称交织器的仿真波形

第一帧输出数据应为

Data_out=[01101001100101100111101010000101]

实际仿真所得波形如图5所示。

图5 二次算术对称交织器第一帧数据仿真波形(截图)

第二帧数据的输出应为

Data_out=[10001000100111101001111100011010]

实际仿真所得波形如图6所示。

图6 二次算术对称交织器第二帧数据仿真波形(截图)

由以上数据及波形可看出,系统电路仿真输出的数据与理论数据相符。

4 总结

本文具体讨论了Turbo码中的交织技术,利用Quartus II开发平台,使用了Verilog语言设计与编程,使用Modelsim对所设计的交织器电路进行仿真并给出了仿真波形,验证了其逻辑功能的正确性。通过对两种交织器的仿真,可知此交织器电路的设计可通用,只需修改ROM模块中存放的交织图样,确定交织深度,即可简单变为其他种类的交织器。交织器的选择对于Turbo码的性能有着直接影响,在具体的条件下选择合适的交织器十分重要。

[1]BERROU C,GLAVIEUX A,THAITIMASJSHIMA P.Near shannon limit error-correcting coding and decoding:Turbo Codes(1)[C]//Proc.ICC 1993.Geneva,Switztland:IEEE Press,1993:1064-1070.

[2]刘东华.Turbo码原理与应用技术[M].北京:电子工业出版社,2004.

[3]李海清.Turbo交织器的设计及相关技术研究[D].哈尔滨:哈尔滨工程大学,2008.

[4]田晓燕.Turbo码编译码方法的研究与实现[D].河北:河北大学,2005.

[5]SHU Lin,DANIEL J C.Error control coding[M].2nd ed.晏坚,何元智,潘亚汉,等,译.北京:机械工业出版社,2007.

猜你喜欢

行列交织图样
“新”与“旧”的交织 碰撞出的魅力“夜上海”
用“行列排除法”解四宫数独(2)
用“行列排除法”解四宫数独(1)
基于AutoCAD二次开发实现按序排图
交织冷暖
单层小波分解下图像行列压缩感知选择算法
一种改进的块交织方法及FPGA实现
基于DWG DirectX的电子产品图样结构关系轻量化构建方法研究
越南电站EPC项目设计图样审批管理
奥运梦与中国梦交织延展