Turbo码译码原理以及算法(一)

这篇具有很好参考价值的文章主要介绍了Turbo码译码原理以及算法(一)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言:       

          本文对最近学习的Turbo译码原理,以及译码器采用的MAP译码算法。根据最近学习的几篇论文,结合自己的理解,作一个总结,本文只作为自己的学习记录,仅供阅读参考。

一、Turbo码基本流程

        Turbo 码采用的是循环迭代的软输入软输出的译码方式,并且该方法主要使用一个译码器的外信息当作对方译码器输入端的先验信息,以提高译码性能。这样可以让两个分量译码器输出的序列能够得到充分的利用, 从而提高 Turbo 码的纠错能力。采用迭代译码的方式使得最后的结果逼近最大似然。

        

turbo码,算法,fpga开发

         译码器主要的组成部分有:两个软输入软输出 SISO 的译码器、交织、解交织和判决模块。每个分量译码器都有三个输入(原始序列、校验序列、先验信息)。首先将接收到的原始序列与校验序列 1 输入到 SISO1 中去,根据给定的算法完成译码,输出为外信息 1。继而送入到交织器对外信息 2 的地址进行置换,当作SISO2输入端的先验信息,同样SISO2也需要对输入端的先验信息作相关的处理之后,当作外信息 2 输出,在通过解交织后送入到 SISO1 中,作为下次迭代SISO1 的输入。SISO1 和 SISO2 通过持续的交换相互间的外信息, 增加彼此之间的相关性。如此不断的进行相同的操作,直至译码达到迭代次数后,将输出的序列经过判决器进行判决处理后。得出最后的译码序列。

二、分量译码器的译码算法

        常见的有两大类算法,分别是根据最大似然准则的SOVA算法,以及根据最大后验概率准则的MAP算法。MAP 类译码算法有三种算法,即基本的MAP 算法、对数域上的 Log-MAP 算法以Max-Log-MAP 算法,这里重点介绍MAX_Log_MAP算法。

turbo码,算法,fpga开发

         上图是子译码器结构框图。MAP 算法主要是通过计算不同码字的概率,即 P u u Y ( | ) i ,然后,利用判决器对输出结果进行“0”、 “1”判决。

turbo码,算法,fpga开发

        根据Turbo 码的编码的状态网格图,根据卷积码的译码网格图,将每个译码器看作一个马尔可夫(Markov)链,即发送 uk的概率可以用状态转移概率之和表示。uk 表示的是接收端的信息比特, 范围为(0,1), xks, xkp 是编码后生成的原始序列和校验序列,我们用 Sk -1 和Sk 表示相邻状态节点,若当前状态 Sk=s  ,上一个状态为 S  k -1= s ', 由输入信息触发的状态转移,可以用( s', s)  形容, uk =1代表的是所有接收端为 1 带来的从 s’到 s 状态的所有集合。

turbo码,算法,fpga开发

turbo码,算法,fpga开发

turbo码,算法,fpga开发

        式中将接受到的信息序列 y1N 根据时刻分为y1(k-1),yk,yN(k+1) 以 k 时刻为界限,k 时刻之前传输的信息序列, k 时刻传输的信息序列以及 k 时刻之后传输的信息序列。为了方便后面的运算,定义以下几个参数:

turbo码,算法,fpga开发

这样,就转化为求解 。其具体的推导过程如下:

(1)前向递推的计算,根据贝叶斯公式,以及无记忆信道特点,未来的状态只决定于当前状态值,与过去状态无关。

                        

turbo码,算法,fpga开发

因为移位寄存器的起始状态为0,所以将前向状态度量的初始值为:

                      

(2)后向递推公式的计算:

turbo码,算法,fpga开发

        编码完成后,需要将寄存器清零,使其恢复到初始值的零状态。所以,其初始条件
设置为:

        根据前向递推和后向递推的计算,需要给出前向和后向状态的分支度量值,因为分支度量的值未知,所以用什么方式去计算分支度量值是译码算法的重要内容.

turbo码,算法,fpga开发

 (3)分支度量的计算:

turbo码,算法,fpga开发

式中, uk 表示引起状态 到状态 转移需要的比特信息,  代表uk 的先验信息。


        Log-MAP 算法是在对数域中实现的,目的是为了减少 MAP 算法过程中的运算量。其过程可以描述为:将 MAP 算法中所有的计算表法式全部取对数,这样就将原来计算过程中的乘法运算通过取对数将乘法转化为加法运算。其具体推导过程如下:

turbo码,算法,fpga开发

         并且在 Log-MAP 算法中引入了雅可比对数函数,函数定义如下:

turbo码,算法,fpga开发

       

 式中函数 max(x, y)和|x-y|是采用选择器和减法的方式实现的.入修正函数:turbo码,算法,fpga开发

turbo码,算法,fpga开发

turbo码,算法,fpga开发

turbo码,算法,fpga开发

         对前向后向递推进行归一化,可以进一步推导为:

turbo码,算法,fpga开发

        根据对前向递推 Ak (s ) 、后向递推 Bk (s ) 和分支转移度量 Dk ( s) 的简化,可以得到对
数似然比的简化公式为:

turbo码,算法,fpga开发

     以上就是对 Log-MAP 算法的推导, 能够得出, Log-MAP 算法虽然比 MAP 算法运算量少,并且在原有算法的基础上引入了雅可比函数,将对数运算转化为求最大值, 之后与修正项相加,而修正项是通过查表得来的。MaxLog-MAP算法的构想是对max*函数的,采取将max*中的修正项直接等于0的措施,使得 max*函数的直接转换为求最值计算,即:

turbo码,算法,fpga开发

         根据介绍的几种译码算法的计算过程推导,具体的译码计算过程主要分为以下几个步骤:
        (1)首先计算分支转移度量 Dk (s) ;
        (2)利用分支转移度量值和前向递推的初始值,计算前向递推项 Ak (s) ;
        (3) 利用分支转移度量值和后向递推的初始值,计算后向递推项 Bk (s) ;
        (4) 将上述三个值求和取最大值,计算对数似然比llr ,并且求取出相应的外信息值。
        三路数据通过信道传输,最终的目的是计算出对数似然比的值,通过先计算分量译码器的外信息,并且将此用作对方译码器输入端的先验信息,以此类推进行计算,在结束完迭代运算后,对最后一次运算的信息进行判决处理,就能够完成译码器的译码工作,得到最终的信息值。文章来源地址https://www.toymoban.com/news/detail-651577.html

到了这里,关于Turbo码译码原理以及算法(一)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • AI绘画原理解析:从CLIP到DALLE1/2、DALLE 3、Stable Diffusion、SDXL Turbo、LCM

    终于开写本CV多模态系列的核心主题:stable diffusion相关的了,为何执着于想写这个stable diffusion呢,源于三点 去年stable diffusion和midjourney很火的时候,就想写,因为经常被刷屏,但那会时间错不开 去年11月底ChatGPT出来后,我今年1月初开始写ChatGPT背后的技术原理,而今年2月份

    2024年02月22日
    浏览(39)
  • AI绘画与多模态原理解析:从CLIP到DALLE1/2、DALLE 3、Stable Diffusion、SDXL Turbo

    终于开写本CV多模态系列的核心主题:stable diffusion相关的了,为何执着于想写这个stable diffusion呢,源于三点 去年stable diffusion和midjourney很火的时候,就想写,因为经常被刷屏,但那会时间错不开 去年11月底ChatGPT出来后,我今年1月初开始写ChatGPT背后的技术原理,而今年2月份

    2024年02月04日
    浏览(29)
  • Turbo Intruder:突破速率限制

    很多测试因为速度达不到而使理论上的结果无法实现。即使可以增加线程数来提升速度,资源占用问题也会成为另一种瓶颈。 Turbo Intruder 是一个 Burp Suite 扩展插件, 用于发送大量 HTTP 请求并分析结果 。它旨在处理那些需要异常速度、持续时间或复杂性的攻击来补充Burp Intr

    2024年02月15日
    浏览(35)
  • GPT-3.5-turbo小白连接教程

    最近在看Chat几批题的相关内容,尝试了在自己电脑上调用一下OpenAI的api,下面以调用几批题-3.5-turbo为例进行讲解。 本次分享分为三大模块: 第一个模块先对连接成功后的AI聊天机器人的功能进行简要了解, 第二个模块讲一下国内连接OpenAI的api所需要的前提条件, 第三个模

    2024年02月03日
    浏览(32)
  • ChatGPT重磅升级!集简云支持GPT4 Turbo Vision, GPT4 Turbo, Dall.E 3,Whisper等最新模型

    功能亮点 在此次模型升级中,带有视觉能力的 GPT-4 Turbo也备受瞩目,GPT-4-vision-preview已突破文本限制,可以直接在聊天框中分析图像照片,提供详细分析和读图功能。 可以预见的是,开放GPT-4图像输入能力,意味着AI向新领域的进军,也势必会引发业务模式与应用使用的巨大

    2024年02月04日
    浏览(37)
  • OpenAI ChatGpt Gpt-3.5-turbo

    返回结果 首先安装 OpenAI、GPT Index 和 Gradio 库 复制以下代码,取名chatgptsample.py

    2024年02月03日
    浏览(36)
  • OpenAI取消GPT-4 Turbo,所有每日限制!

    2月17日,OpenAI在社交平台宣布,取消了GPT-4 Turbo的所有每日限制,并将速率限制提升1倍。 现在,每分钟可处理高达150万TPM的数据 。 OpenAI这一周的连续王炸组合拳,从ChatGPT增加 “记忆存储”,到视频模型Sora再到GPT-4 Turbo全面取消每日限制,打的谷歌、Meta有点晕头转向抢尽风

    2024年02月22日
    浏览(35)
  • CSS 实现 Turbo 官网 3D 网格线背景动画

    转载请注明出处,点击此处 查看更多精彩内容 查看 Turbo 官网 时发现它的背景动画挺有意思,就自己动手实现了一下。下面对关键点进行解释说明,查看完整代码及预览效果请 点击这里。 简单说明原理:使用 mask-image 遮罩绘制网格,使用 perspective 及 rotate 动画设置 3D 纵深效

    2024年02月17日
    浏览(36)
  • OpenAI取消GPT-4 Turbo所有每日限制!

    2月17日,OpenAI在社交平台宣布,取消了GPT-4 Turbo的所有每日限制,并将速率限制提升1倍。 现在,每分钟可处理高达150万TPM的数据 。 OpenAI这一周的连续王炸组合拳,从ChatGPT增加 “记忆存储”,到视频模型Sora再到GPT-4 Turbo全面取消每日限制,打的谷歌、Meta有点晕头转向抢尽风

    2024年02月20日
    浏览(38)
  • 本地运行 LLAMA & GPT-3.5-TURBO开源项目

    git: nomic-ai/gpt4all: gpt4all: an ecosystem of open-source chatbots trained on a massive collections of clean assistant data including code, stories and dialogue (github.com) 下载好源码后,的目录结构:  视频中说的 chat 目录在: gpt4all-training/chat  下载 gpt4all 使用的模型地址:https://the-eye.eu/public/AI/models/nomic-

    2024年02月11日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包