Turbo码(Turbo Codes)

作者:途次客

==============================================================

目录结构:

1、分量码

2、交织器

3、归零处理

4、删余处理

5、LTE协议中的Turbo码编码器

6、总结

==============================================================

Turbo码由Berrou,Glavieux和Thitimajshima在1993年提出,是一种并行级联卷积码。Turbo码将分量码和随机交织器巧妙结合起来,采用并行级联的结构,实现了随机编码的思想,采用软输入软输出的迭代译码方法,达到了接近香农限的性能。在Turbo码的发明之后,有学者重新发现60年代提出的LDPC码有更接近香农限的性能,这是后来的事,本文主要结合LTE系统介绍Turbo码。

1、分量码

在Turbo码中,分量码编码器是重要的组成部分,该部分产生系统信息和校验信息。在Turbo码最先提出时有分组码和卷积码两种类型,在后来研究中发现,卷积码性能更优。而卷积码的类型多样,如非递归卷积码(NRC)、非系统卷积码(NSC)、递归系统卷积码(RSC)。在实际的系统中,由于递归系统卷积码(RSC)有突出的优点而被广泛采用。

RSC码在具有良好的译码性能,且存在较高的交织增益,译码性能也会随着交织长度增加而提高。影响译码性能的因素很多,如卷积码的约束长度、生成多项式以及生成多项式的顺序等,所以,在实际中具有种类不同的分量码构造的Turbo码,这需要根据不同的场景,根据用户的需求,经过仿真和验证才能得出。

2、交织器

交织器也是Turbo码的重要组成部分。通信系统的交织器是为了对抗信道的突发错误而设计的。Turbo码的交织器更主要的功能是使码重分布合理,降低数据序列的相关性,增大输出码字的最小汉明距,实现随机编码。

交织器即将原始数据顺序按照给定的规则重新排序输出。解交织即是交织的逆过程。交织器的选择对Turbo码的性能具有重大影响。根据香农理论,码长越长,编码增益越大。所以交织器的长度越长,Turbo码的码长越长,性能越好。另外,交织器的交织规则也是影响因素。最简单的交织器即行列交织器,数据按行写入,按列读出。

在选用交织器时需要根据交织器长度、交织规则、系统复杂度等因素综合考虑。

3、归零处理

在数据序列编码完成后,归零处理使分量编码器RSC中的移位寄存器恢复成编码前的零状态,从而使编译码变得简单易于控制。

Turbo码的归零处理如下:

(1)输入所有的编码序列,完成编码

(2)分量码开关切换至虚线处,各个寄存器中的遗留状态值和反馈结构生成某些编码序列的尾部比特,这些尾比特与自身异或,使新进入寄存器的值为0。尾比特添加至编码序列系统部位,RSC计算出的比特添加到校验序列后。

(3)该过程直到所有移位寄存器中值全部为0。如寄存器有K个,则经过K次后寄存器将全为0。

4、删余处理

现代通信系统中,为了实现高速数据传输,系统对频带利用率要求较高,一般Turbo码的码率只有1/3,所以,频带利用率不高,为了解决这一问题,在编码器中加入了删余处理。

删余处理的具体操作即在编码完成后,将分量码输出的两路校验信息输入删余器,按照一定的规则删除一部分校验信息,减小信息的冗余度,从而提高编码效率。删余处理根据各系统自定。

5、LTE协议中的Turbo码编码器

以LTE协议中的Turbo码编码器为例,介绍Turbo码的几个重要部件。该Turbo码的编码器实现框图如下图所示。


图1. LTE中Turbo码编码器实现框图

图中参数如下:

ck:输入待编码数据序列

ck’:ck经过内交织器处理后的数据序列

xk:经过分量编码器1后的系统信息序列

zk:经过分量编码器1后的校验信息序列

zk’:经过分量编码器2后的校验信息序列

该编码器,码率为1/3,输出dk如下:

分量码1和分量码2均为循环递归卷积码(RSC)。其生成多项式为

G(D) = [1, g1(D)/g0(D)]

其中g0(D) = 1+ D^2 + D^3,g1(D) = 1 + D + D^3。

LTE中的交织器为二次置换多项式交织器(Quadratic Permutation Polynomial, QPP),长度为K的QPP交织器定义为

其中,i为交织前序列的地址;f1为一次系数,在LTE中为奇数;f2为二次系数,在LTE中为偶数;K为交织器长度。

LTE支持188种不同的K值,最小的40,最大的6144。这些块的f1和f2值参考文件Evolved Universal Terrestrial Radio Acess (E-UTRA); Multiplexing andchannel coding (release 9)" 2009-12.或者matlab函数getf1f2,[f1, f2] = getf1f2(K),可根据交织长度K得到f1和f2。

6、总结

本文主要简介了Turbo码的基本原理以及各个编码部件,以LTE协议中的Turbo码为例,介绍了其编码框图,分量码和交织器。

Turbo码(Turbo Codes)相关推荐

  1. 基于MATLAB的turbo码代码,一种基于Simulink的Turbo码仿真实现

    一种基于Simulink的Turbo码仿真实现 Implementation of Turbo Code Simulation Based on Simulink DOI: 10.12677/HJWC ...

  2. VC++实现Turbo码

    Turbo码的概述如下, Turbo码的设计和分析 主要包括交织器的设计.码的级联方式.译码算法.Turbo码的性能分析等.在性能分析中,主要对码重分布及距离谱进行分析,但由于没有相应的理论支持,这种 ...

  3. 基于(7, 5)归零非删余Turbo码的参数识别与分析

    关注公众号[逆向通信猿]试读更多内容!!! 本文主要来源于复现文献的部分内容,有一定的参考价值: [1] 钟兆根, 吴昭军, 刘杰, 张立民. 高误码率下归零Turbo帧结构识别[J]. 电子学报. ...

  4. Turbo码:3GPP TS 36.212

    Table of Contents [百度百科] [Turbo码] [LTETurbo编码迭代对比:误码率] [3GPP TS 的Turbo内部交错器TS 36.212 v10.1.0 5.1.3-3 ...

  5. erfc函数、persistent、turbo码

    1. erfc函数 erf是误差函数,erfc是误差互补函数,在计算通信系统中的ber时用到erfc函数. BER=12erfcEbN0BER = \frac{1}{2} erfc\sqrt{\fra ...

  6. 信息论-Turbo码学习

    文章目录 1.Turbo码: 2.Turbo码理解: 将两个简单分量码通过**伪随机交织器**并行级联来构造具有**伪随机特性**的长码,并通过在两个**软入/软出(SISO)译码器**之间进行多次迭 ...

  7. CRC辅助的Turbo码增强译码算法(PLVA)

    为了提高传统迭代译码的Turbo译码算法,本文把Turbo码和CRC看成一个级联码,研究利用CRC的冗余来增强Turbo译码性能.由于Turbo码的分量码是卷积码,所以采用基于List Viterbi ...

  8. 极化码:极化码的单项式码(Monomial Codes)表示

    极化码可以看做单项式码(monomial codes) 对于一个码长为N=2nN = 2^nN=2n的极化码,生成矩阵为 G=Fn.{\bf G} = {\bf F}^n.G=Fn.极化码的极化子信道 ...

  9. 移动通信中的信道编码基础

    线性分组码 假设信源输出为有限域GF(2)上连续的二元符号序列,称为消息序列. 在分组码中每一个消息分组含有k个信息比特,一共有2k个不同的消息,对应2k个不同的码字.所有码字的集合构成一个(n,k) ...

  10. 5G NR 阅读笔记

    一  专业术语 1.1: PDCP(Packet Data Convergence Protocol) 分组数据汇聚协议,PDCP 是对分组数据汇聚协议的一个简称. 它是 UMTS 的一个无线传输协议 ...

最新文章

  1. 2019年《计算机应用基础》,2019年自考《计算机应用基础》模拟练习及答案一
  2. elasticsearch 客户端工具_万字长文:详解 Spring Boot 中操作 ElasticSearch
  3. 生成release版本的Android系统
  4. 【渝粤题库】国家开放大学2021春2626药事管理与法规题目
  5. linux启动管理,Linux启动管理 详述
  6. hive 创建外部表产生java_(一)Hive表(管理表、外部表)的创建规则
  7. ubuntu中一些软件的命令安装及设置
  8. C#调用Dephi接口方法
  9. 百度之星初赛A 今夕何夕
  10. Java基础---Java---网络编程---TCP、UDP、UDP-键盘录入方式数据、Socket、TCP复制文件、UDP-聊天
  11. 黑马程序员-学习日记(单例设计模式的两种类型)
  12. 计算机word的函数怎么用,Word公式编辑器怎么使用,教您怎么使用
  13. MySQL客户端工具的选择
  14. 医疗器械信息系统分析
  15. RESTful架构和实现级别
  16. 基于PANDA做DTI分析
  17. 什么是DBMS以及DBMS的分类
  18. Core Techniques And Algorithms In Game Programming
  19. TP-Link wr703n 刷Openwrt始末
  20. 平安金融云为互联网金融行业注入发展新动能

热门文章

  1. android打印处理服务已停止,Print Spooler服务停止 打印机服务无法启动的完美解决方案共享...
  2. 华为安全HCIP-Security H12-721、H12-722、H12-723题库,含三套vce软件
  3. GeoServer离线地图
  4. 解决:UnsatisfiedDependencyException
  5. Python制作含微软雅黑字体的图片报错,中文字体报错可用类似方式处理
  6. 凯撒密码加密算法python_想偷WiFi?万能钥匙不行?试试python一键破解!|wifi|python|profile|算法|无线网卡...
  7. 微信的APP支付开发,服务端和支付端的问题
  8. 如何安装vs2010助手?
  9. 非线性系统稳定性理论分析、设计方法
  10. 20个常用模拟电路(嵌入式硬件篇)