首页>论文>正文
日期
02/25
2020
咨询
  • QQ扫一扫

  • Vision小助手
    (CMVU)

Turbo码及其交织硬件实现
收藏
2020-02-25 15:04:46来源: 中国视觉网

   摘要:Turbo码做为一种优秀的信道编码,现在已经在移动通讯中广为使用。本文介绍了使用FPGA实现Turbo码的交织解交织的方法

   关键字:Turbo码,交织,FPGA


1. 引言

   1993年,法国的C.Berrou等人提出了一种新型的纠错编码――Turbo码。Turbo码一经提出,就以其优异的性能被编码界专家认为具有很大的发展潜力。Turbo码与以往所有的不同之处在于它通过一个交织器,使之达到接近仙农性能极限。此外,它所采用的迭代译码策略,使得译码复杂性大大降低。它采用两个子译码器通过交换称为边信息的辅助信息,相互支持,从而提高译码性能,边信息的交换是在迭代译码的过程中实现的,前一次迭代产生的边信息经交换后将作为后一次迭代的先验信息。一般Turbo码可分为面向卷积的Turbo码和面向分组的Turbo码。面向分组的Turbo码的可基于两种的码类:卷积码与分组码。因此,其结构也相应的分为两种形式:基于分组码的面向分组的Turbo码和基于卷积码的面向分组的Turbo码。

2. Turbo码的编码

   以基于分组码面向分组的Turbo码的编码(如图1所示)为例,它由两个子编码器

   coder1与coder2组成。 子编码器可选用相同的码,也可选用不同的码。其编码过程大致如下:将N个比特的信息位分为一组。一方面进入coder1进行行编码,另一方面经过交织后进入coder2进行列编码。两组校验位送入抽取(puncture)环节,适当删除部分码元,以便提高码率。若采用卷积码作子码时,由于卷积码的码率较低,所以一般均具有抽取环节。而采用分组码时,由于分组码具有较高的码率,所以可以将此省略。以交织矩阵为N= ,对 行进行行编码,每行产生长为 的码组,而以 列进行列编码,每列产生长为 的码组。编码的最后一步是完成并串变换,使之输出适合在信道中传输。

   交织器由一定数量的存贮单元构成。存贮单元的多少称为该交织器的大小。存贮单元常构成矩阵M×N的形式。其中M为存贮矩阵的总行数,N为存贮矩阵的总列数。这样一来,各个存贮单元可用它在矩阵中所处的行数和列数来表示。信息比特流顺序流入交织器,再以某种方法乱序读出。或者以乱序的形式进入,再以顺序的形式读出。这种决定读出次序的方法称为该交织器的交织方法。交织器的引入可以说是Turbo码的一大特色。它可以看成为一种映射。使一些不可纠的错误转化为可纠的错误模式。这也可以从最小距离的角度对其作用进行解释。因为线性码的性能与码的最小距离或重量谱有密切的关系。假如某一输入序列经过某子编码器产生码重较小的输出,但它交织后经过另一子编码器,则有可能产生码重较大的输出,从而使整个码字的重量增大,或者说使最小距离增大,码的纠错能力就提高了。所以,可以说,交织器对码重起着整形的作用。也可以说,交织器在Turbo码中起着至关重要的作用。

3.Turbo码译码的过程

   如图(2)所示,译码部分如选用软输入、软输出子译码器。设信息序列U进入信道传输的是+1或-1,可定义其最大后验概率(MAP,maximum a posteriori)译码器从接收到的序列r中得到的其中某一传输码元d是+1或-1的对数似然比为:

      (1)

   图中,L(u)为信息码元的先验信息值, 则为编码码元的信道值; 为信息码元的后验信息值, 则为由编码约束关系从码字中其它码元所确定的u的“软输出”信息,称为“附加信息”。 不受当前信息位L(u)及 的影响。对于系统码,u的后验信息值 (即软输出)由三项组成:

+L(u)+   (2)

   上式说明 由独立的三项组成:信道软信息值 ,先验信息L(u)及附加信息 。因为在对行码进行第一次译码 时,没有可以利用的先验信息L(u),则L(u)的初始值为0,则可由(2)可得 

  (3)

   于是可以求得行码的信息位u的附加信息 为:

       (4)

   由(4)式所得的附加信息 为行码译码后对u的一个估计值,它可以做为列码的先验信息,则由(2)可得

    (5)

   于得我们得到列码的附加信息

       (6)

   (6)则作为一下次迭代译码时行译码的先验信息。这样经过多次行列的迭代译码后,将列码译码的软输出 作为整个译码过程的软判决依据,可得

      (7)

   上述软输入/软输出的迭代译码过程可由图(3)来表示。

4.面向分组的Turbo码的编码中交织器的硬件实现。

   采用ALTERA公司的FPGA产品来实现Turbo码的子码的编码及交织技术,使用的开发软件为ALTARA公司的MAX+PLUS 。

   MAX+PLUS 是开发ALTERA公司的FPGA产品的软件工具。利用MAX+PLUS 提供的设计环境和设计工具,可以灵活高效地完成各种数字电路设计。Turbo码的编码中最为重要的交织器的实现,其原理图如图4所示

   图中RAM1与RAM2为两个交替工作的随机存储器。由读写控制信号对其进行控制,使其处于读状态或写状态。当RAM1写入数据时,RAM2读出数据,反之RAM1读出数据,RAM2写入数据。
   交织中最重要的就是要实现写入和读出的顺序的变化。对于写地址的产生,采用的是由一个模N计数器(N对映于交织器的大小),以时钟为输入端,每进一个时钟脉冲,则产生一个地址,此地址即为RAM1的写地址。当写满N个数后,则由读写控制信号控制,由读地址发生器输出读地址到RAM1,使RAM1开始向外读出数据;同时,读写控制信号控制RAM2开始写入数据。对于读地址发生器,采用只读存储器ROM来实现。用ROM实现读地址,其最大的优点是它具有通用性。可以选用不同的交织阵来完成不同的交织方式。实质上,ROM保存的就是交织后的地址,由此可实现所需的交织方式。从上面我们可以看到用ROM的方便之处,如果想采用不同的交织,我们无需重新组建电路,只需选另一个ROM(其中保存其交织后的地址),这就是我们在前面提到的使用ROM可以获得的通用性。

   在设计过程中,采用了使用GDF文件和VHDL语言结合的方式实现了交织方式。但在设计RAM,不应用VHDL语言对其进行描述。因为那样编译的结果未使用器件提供的RAM区,而全部都用逻辑单元来实现,导致了资源的浪费。因此,对RAM的功能用VHDL语言进行描述是不可取的。

5.结论与展望

   Turbo码一经出现,以其优越的性能引起了广泛的重视,现在随着技术的改进,性能有了进一步的提高,并开始应用于第三代移 动通信系统。随着硬、软技术的发展,它还会和其它业务相结合,广泛应用于数字通信的各个领域。

参考文献

[1]C.Berrou等。Near Shannon Limit Error-Correcting Coding and Decoding:Turbo-codes(1),ICC’93
[2]C.Berrou等。Near Opimum Error Correcting Coding and Decoding:Turbo-Codes,IEEE Trans .On Comm.vol.44,No.40,Nov.1996
[3]J.Hagenauer等。Iterative Decoding of Binary Block and Convolutional Codes。IEEE Trans.On inform.Theory.vol.42.No.2,March.1996
[4]叶中行,Vitor Wei。 Turbo码的若干新发展,电子学报,Vol.26,No.7,July,1998
[5]谭明新 徐根深。Turbo码在第三代移动通信中的应用,哈尔滨工程大学学报,vol.24,No.2,Apr.2003
[6]朱健春 杨福宝。Turbo码交织器的性能分析及仿真。武汉理工大学学报。Vol.27,No.2,Apr,2003