信息论-Turbo码学习

信息论-Turbo码学习

1.Turbo码:

信道编码的初期:分组码实现编码,缺点有二:只有当码字全部接收才可以开始译码,需要精确的帧同步时延大,增益损失多

解决方案:卷积码:充分利用前一时刻和后一时刻的码组,延时小,缺点:计算复杂度高

Turbo码,依靠迭代译码解决计算复杂性问题,通过在编译码器中交织器和解交织器的使用,有效地实现随机性编译码的思想,通过短码的有效结合实现长码,达到了接近Shannon理论极限的性能(在两个分量译码器之间迭代译码)

缺点:时延问题。

百科结论:Turbo码采用反馈卷积码是为了获得更大的交织增益;Turbo码的性能主要取决于它的有效自由距离;Turbo码在低信噪比下具有近Shannon界纠错能力的原因;自由距离较低引起Turbo码在中信噪比下出现纠错平台现象等等。

                  在信噪比较低的高噪声环境下性能优越(信道条件差的移动通信系统中有很大的应用潜力),而且具有很强的抗衰落、抗干扰能力

                  Turbo码引起超乎寻常的优异译码性能,可以纠正高速率数据传输时发生的误码。在直扩(CDMA) 系统中采用Turbo 码技术可以进一步提高系统的容量。

                  在短帧情况下的仿真结果表明短交织Turbo码在AWGN信道和Rayleigh衰落下仍然具有接近信道容量的纠错能力

提出背景:在加性白高斯噪声的环境下, 采用编码效率R=1/2、交织长度为 65536的Turbo码,经过18次迭代译码后,在 Eb/N0=0.7dB时, 其误码率到达10-5,与香农极限只相差0.5dB。

2.Turbo码理解:

将两个简单分量码通过伪随机交织器并行级联来构造具有伪随机特性的长码,并通过在两个软入/软出(SISO)译码器之间进行多次迭代实现了伪随机译码。

交织:在实际应用中,比特差错经常成串发生,这是由于持续时间较长的衰落谷点会影响到几个连续的比特,而信道编码仅在检测和校正单个差错和不太长的差错串时才最有效(如RS只能纠正8个字节的错误)。

为了纠正这些成串发生的比特差错及一些突发错误,可以运用交织技术来分散这些误差,使长串的比特差错变成短串差错,从而可以用前向码对其纠错。

伪随机特性:频谱会因数据出现连“1”和连“0”而包含大的低频成分,不适应信道的传输特性,也不利于从中提取出时钟信息。解决办法之一是采用扰码技术,使信号受到随机化处理,变为伪随机序列

扰码不但能改善位定时的恢复质量,还可以使信号频谱平滑,使帧同步和自适应同步和自适应时域均衡等系统的性能得到改善。

3.Turbo码的编码结构:

三种:并行级联卷积码PCCC,串行级联卷积码SCCC,混合级联卷积码结构HCCC。

3.1并行级联卷积码结构:

是由两个反馈的系统卷积编码器通过一个交织器并行连接而成,编码后的校验位经过删余阵,从而产生不同的码率的码字。

<span>信息论-Turbo码学习</span>

 

 

 分量编码器:分量码的最佳选择是递归系统卷积码:

Turbo码编码器一般包括两个结构相同的递归系统卷积编码器和一个随机交织器。长度为N的信息序列u一方面直接进入第1个分量编码器RSC1,另一方面经过随机交织器处理后送入第2个分量编码器RSC2。随机交织器的处理是输入序号至输出序号的一映射,它的输出为长度相同,但比特位置经随机排列的交织序列。两个分量编码器RSC1和RSC2分别产生两个不同的校验比特序列x和x。为了提高Turbo码的码率,除可以选用高码率的分量码外,还可以采用打孔(Puncturing)技术从这两个校验序列中删除一些校验位,然后再与信息序列x复用在一起输出。

 递归系统卷积码:BER性能在高信噪比好,高码率(R≥2/3)的情况下,对任何信噪比,它的性能均比等效的高码率(R≥2/3)的情况下,对任何信噪比它的性能均比等效的非系统卷积码NSC要好,

递归系统卷积码(RSC)不同于一般的卷积码器在于其结构中不仅有向前结构,还有向后反馈结构:

<span>信息论-Turbo码学习</span>

 

RSC 编码器一般有2-5 级移位寄存器,

Turbo 码在高信噪比下的性能主要由它的自由距离所决定。因为Turbo码的自由距离主要由重量为2的输入信息序列所产生的码字间的最小距离所决定,用本原多项式作为反馈连接多项式的分量编码器所产生的码字的最小重量为最大,因此当Turbo码交织器的大小给定后,如果分量码的反馈连接多项式采用本原多项式,则Turbo码的自由距离会增加,从而Turbo码在高斯信噪比情况下的“错误平层(errorfloor)”会降低。错误平层效应指的是在中高信噪比情况下,误码曲线变平。

      3.2交织器的设计

作用:可以使得Turbo码的距离谱细化,即码重分布更为集中。

交织器实际上是一个一一映射函数,作用是将输入信息序列中的比特位置进行重置,以减小分量编码器输出校验序列的相关性和提高码重。通常在输入信息序列较长时可以采用近似随机的映射方式,相应的交织器称为伪随机交织器。

交织:交织是对信息序列加以重新排列的一个过程。如果定义一个集合A , A={1,2,…,N}。则交织器可以定义为一个一一对应的映射函数π(A–>A):J=π(i),(i,j属于A) 这里的i ,j 分别是未交织序列C 和交织序列C’ 中的元素标号。映射函数可以表示为πN = (π⑴,π⑵,π⑶,…,π(N))。

有三原则:

最大程度的置乱原来的数据排列顺序,避免置换前相距较近的数据在置换后仍然相距较近,特别是要避免相邻的数据在置换后仍然相邻

尽量提高最小码重码字的重量和减小低码重码字的数量;尽可能避免与同一信息位直接相关的两个分量编码器中的校验位均被删除

对于不归零的编码器,交织器设计时要避兔出现”尾效应” 图案。

交织器和分量码的结合可以确保Turbo码编码输出码字都具有较高的汉明重量。在Turbo编码器中交织器的作用是将信息序列中的比特顺序重置。当信息序列经过第一个分量编码器后输出的码字重量较低时,交织器可以使交织后的信息序列经过第二个分量编码器编码后以很大的概率输出较高重码字,从而提高码字的汉明重量:同时好的交织器还可以奇效地降低校验序列间的相关性

内置交织器:

Turbo码内置的交织器是在第2个分量编码器RSC2编码处理之前将信息序列的N个比特的位置进行随机排列,它起着关键的作用,很大程度上影响着Turbo码的性能。通过随机交织,使得编码由简单的短码得到了近似长码。当交织器充分大时,Turbo码就具有近似于随机长码的特性。

4.迭代译码

Turbo码译码器采用迭代译码方法,其中使用两个分量译码器,并在第一分量译码器与第二分量译码器之间传递软译码信息,如图3-35所示。无冲突交织器支持并行译码的主要原理是:在进行迭代译码时,第一分量译码器将信息序列进行分段,每个分段使用单独的一个专用的译码处理单元独立地进行译码,各分段译码过程可以并行进行,提高译码速度。但是第二分量译码器也需要采用相同的、并行的分段译码方法,这就要求第二分量译码器的每个独立专用的译码处理单元同一时刻访问不同的分段,这样才能避免信息序列分段地访问冲突,从而实现第二分量译码器的并行分段译码,提高整个迭代译码的速度。

<span>信息论-Turbo码学习</span>

 

 

图3-36所示为无冲突交织器的示意图,4个窗口(Windows)A、B、C、D分别代表独立的分段译码,它们需要通过交织器获取各自的原始数据,此时4个窗口A、B、C、D在读取原始数据时,不会出现在同一时刻访问同一分段,不会发生资源访问冲突的问题,这样保证了4个窗口A、B、C、D可以并行地分段译码。

<span>信息论-Turbo码学习</span>

 

5.译码原理

Turbo码的译码算法采用了最大后验概率算法:译码时首先对接收信息进行处理,两个成员译码器之间外部信息的传递就形成了一个循环迭代的结构。由于外部信息的作用,一定信噪比下的误比特率将随着循环次数的增加而降低。但同时外部信息与接受序列间的相关性也随着译码次数的增加而逐渐增加,外部信息所提供的纠错能力也随之减弱,在一定的循环次数之后,译码性能将不再提高。

在译码的结构上又做了改进,再次引入反馈的概念,取得了性能和复杂度之间的折衷。

译码算法:MAP-Log-MAP算法、Max-Log-MAP以及软输入软输出(SOVA)算法。

 

 <span>信息论-Turbo码学习</span>

 

 

特点:串行级联、迭代译码、在迭代译码过程中交换的是外部信息

5.1译码算法

软输入软输出的译码算法。软输出译码器的输出不仅应包含硬判决值

标准MAP算法

是对bahl软输出算法做一定修正后,通过除以先验分布来消除正
反馈的算法。对于约束长度为M 1的
卷积码,其运算量为每比特6×3^M次乘法和5×2^M次加法。由于乘法运算量大,限制了
译码的规模和速度

Log-MAP算法

实际上就是对标准MAP算法中的似然全部用对数似然度来表示,这样,乘法运算变成了加法运算。总的运算量成为6×2^M次加法,5×2^M次求最大运算和5×2^M次查表。

Max-Log-MAP算法

是在上述对数域的算法中,将似然值加法表示式中的对数分量忽略,是似然加法完全变成求最大值运算,这样除了省去大部分的加法运算外,最大的好处是省去了对信噪比的估计,使得算法更
稳健。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/2725.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Mybatis拦截器

    Mybatis拦截器一Mybatis拦截器介绍    Mybatis拦截器设计的初衷就是为了供用户在某些时候可以实现自己的逻辑而不必去动Mybatis固有的逻辑。通过Mybatis拦截器我们可以拦截某些方法的调用,我们可以选择在这些被拦截的方法执行前后加上某些逻辑,也可以在执行这些被拦截的方法时执行自己的逻辑而不再执行被拦截的方法。所以Mybatis拦截器的使用范围是…

    2022年7月25日
  • C语言编写简易病毒[通俗易懂]

    C语言编写简易病毒[通俗易懂]本次实验设计的是一个基于C语言的恶意代码,其执行流程如下:1、在病毒第一次执行时,即检测到注册表的任务管理器没有被禁用,则病毒依次执行以下功能:创建开机启动项,在系统目录路径下面复制文件,将其作为自启动路径;禁用任务管理器;禁用注册表编辑器;联网获取图片并修改桌面背景(重启生效);修改注册表屏蔽用户键盘输入为1(重启生效);删除驱动器盘符,使桌面以及开始菜单快捷方式失

    2022年7月18日
  • jpa的save方法_save与preserve的区别

    jpa的save方法_save与preserve的区别JPA中save和saveAndFlush的区别,首先直接看图:save是CrudRepository下的。saveAndFlush是JpaRepository下的。一般情况下save就足够了,但是如果在同一个transaction里,比如你在方法上标了@Transactional,这时你想先保存Order,然后直接在这个Transaction里保存OrderItem,但是Orde…

    2022年10月20日
  • phpstorm 激活码密钥无效(JetBrains全家桶)

    (phpstorm 激活码密钥无效)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年4月1日
  • Java课设:学生管理系统

    Java课设:学生管理系统文章目录StudentManagerStudentManagerMain.javaStuInfo.javaClassInfo.javaScoreInfo.javaAdd.javaDelete.javaStudentManager查询学生的个人基本信息,查询课程表、选课情况,查询课程的成绩信息。其中课程表及选课信息和成绩信息无法改动,个人基本信息可以添加或者删除。这是一个比较简单的管理系统,具…

    2022年7月12日
  • Pytest(13)命令行参数–tb的使用

    Pytest(13)命令行参数–tb的使用前言pytest使用命令行执行用例的时候,有些用例执行失败的时候,屏幕上会出现一大堆的报错内容,不方便快速查看是哪些用例失败。–tb=style参数可以设置报错的时候回溯打印内容,可以设置参

    2022年7月31日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号