m基于Turbo-TPC乘积码的误码率仿真,并和传统的turbo进行对比

简介: m基于Turbo-TPC乘积码的误码率仿真,并和传统的turbo进行对比

1.算法仿真效果
matlab2022a仿真结果如下:

64b262949b768c5685a83cb5cb8c2d34_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

2.算法涉及理论知识概要

   Turbo码是一种极为复杂的信道编码技术,译码算法往往由于硬件实现的复杂度太高或者译码时延太长而难以实现。现目前Turbo码领域面临的主要问题是:在复杂度和时延都可以接受的前提下如何获得最佳的系统性能。Turbo码由分量码经由交织器级联而成。因此,分量码和交织器设计的好坏是决定Turbo码性能的关键因素。实际的通信系统中,为提高系统带宽效率,一种方法是通过删减部分校验比特来提高编码速率,称为删余。

   Turbo码的编码过程实际上是一个利用强约束短码构造伪随机长码的过程。Turbo码的译码算法主要有两大类。是基于最大后验概率(MAP)的软输出算法,主要包括标准MAP算法、对数域上的Log.MAP算法和Max. Log-MAP算法、修正的MAP算法(M-MAP)、滑动窗MAP(SW-MAP)算法和只有前向递推的MAP算法(OSA)。其中,MAP算法是MAP算法的对数形式,它通过将大量的乘法运算转化为加法运算来简化算法的复杂性。

  Turbo码由2个循环系统卷积码并行级联而成:译码采用迭代的串行译码交织器是Turbo 码所特有的,它可以使得信息序列随机化,增加各码字间的重量,从而提高码的保护能力。

 Turbo编码器的基本结构如图1所示:

41f705aa76c98047b75c8742c570c706_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

从图1的仿真结果可知,Turbo码编码器主要由分量删余矩阵、交织器、两个分量编码器以及复接器组成。

   分量编码器是Turbo码编码器中的一个重要组成部分。Turbo码的分量编码器使用RSC编码,因为循环编码器可以改善码的比特误码率性能。

删余矩阵是通过删除冗余的校验位来调节码率,Turbo码采用两个成员编器。

   交织器的作用是改变信息结构将传输过程中出现的突发错误进行的分散化和不规则化。交织器可以改变Turbo 码的重量分布,因此,交织器对Turbo 码性能的好坏有着重要作用。在Turbo 码中,交织器使输入码元符号的顺序尽可能随机分布,使码元符号之间的相关性减弱,从而使进入各个子译码器的信息序列之间不相关。

      Turbo码的译码使用了迭代译码。利用EXIT图实现对迭代译码过程的跟踪,从而估计迭代译码的收敛性。利用EXIT图还可以预测实现一定性能要求时所必须的迭代译码次数。它为分析迭代译码过程和迭代译码方案的设计提供了有力的工具。

     Turbo译码器主要包括如下几个结构:两个分量译码器模块,交织器模块,解交织器模块以及硬判决模块。

     Turbo译码器的基本结构如图2所示:

22390a1556c7c4357fd7d59f7aa008ac_watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20,type_ZmFuZ3poZW5naGVpdGk=.png

  Turbo译码器工作原理为:将接收到的串行数据进行并串转换,同时将删余的比特位填上虚拟比特。将信息序列r0以及RSC1生成的校验序列r1送入软输出译码器1,软输出译码器1生成的外信息序列Z1k经过交织后做为下一软输出译码器2的输入。信息序列r0经过交织器输入至译码器2,同时输入的还有RSC2生成的校验序列r2。

   译码器2的输出外信息Z2k经过解交织器后做为反馈输入至译码器1,再次重复以上过程进行软判决,直至最后译码输出性能不再有提高,将最后结果有译码器2输出解交织后做为判决输出。

   这种译码器结构的优点是每个译码器不仅可以利用本译码器的信息比特和校验比特,还能利用前一译码器提供的信息进行译码,从而提高译码的准确性。它的缺点是:迭代要花费更多时间,造成的延时使Turbo码在某些对时延要求高的通信系统(如数字电话等)中应用受限。       Turbo码译码算法基于最大后验概率(MAP)算法或者是软输出维特比(SOVA)算法。MAP算法是最小化符号或比特差错概率,SOVA算法是最小化序列差错概率。在低SNR环境下,MAP算法比SOVA算法的性能有一定改善,但是MAP算法在每一时刻都要考虑所有路径,并且其运算是乘法和指数运算,比较复杂。

————————————————

    乘积码,并行级联码是一种用短码构造长码的编码组合方式,其中乘积码属于并行级联分组码,而大名鼎鼎的Turbo 码就是并行级联卷积码。乘积码于1954 年由Elias 最早提出,随即得到了广泛应用。

步骤
(1)将信息元填入一个 2 k 行 1 k 列的矩阵;

(2)对矩阵的每一行,用一个( , ) 1 1 n k 系统分组码 1 V 进行编码,得到一个2 k 行1 n 列

的矩阵;

(3)对这个矩阵的每一列,用一个( , ) 2 2 n k 系统分组码 2 V 进行编码,最终得到一个2 n

行1 n 列的矩阵。

   这样得到的纠错码是一个1 2 1 2 (n ×n, k ×k)分组码,所以称为乘积码。乘积码的两个编码器是对排列顺序不同的同一组信息元进行编码,两个编码器并行工作,没有“内”“外”之分,统称为分量编码器。乘积码也因此被称为二维码。同样,乘积码也可以先按列编码,再按行编码,得到的码字是完全一样的。乘积码的传输方式也不唯一,可以按行传输、按列传输甚至按对角线传输。

3.MATLAB核心程序

Lens = length(Rec)/(2+puncture);
%打孔
if puncture == 1
   for i = 1:Lens  
       Rec_1st(i) = Rec(3*(i-1)+1);
       for j = 1:2
           data_sp(j,2*i) = Rec(3*(i-1)+1+j);
       end
   end
end
%不打孔
if puncture == 0
   for i = 1:Lens
       Rec_1st(i) = Rec(2*(i-1)+1);
       for j = 1:2
           data_sp(j,2*i) = 0;
       end   
       if rem(i,2)>0
          data_sp(1,2*i) = Rec(2*i);
       else
          data_sp(2,2*i) = Rec(2*i);
       end      
   end
end       
for j = 1:Lens
    data_sp(1,2*(j-1)+1) = Rec_1st(j);
    data_sp(2,2*(j-1)+1) = Rec_1st(alpha(j));
end    
end
相关文章
|
5月前
|
人工智能 缓存 资源调度
云上AI推理平台全掌握 (4):大模型分发加速
为应对大模型服务突发流量场景,阿里云人工智能平台 PAI 推理服务 PAI-EAS 提供本地目录内存缓存(Memory Cache)的大模型分发加速功能,有效解决大量请求接入情况下的推理延迟。PAI-EAS 大模型分发加速功能,零代码即可轻松完成配置。
|
10月前
|
机器学习/深度学习 数据可视化 算法
YOLOv8改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
YOLOv8改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
1278 6
YOLOv8改进目录一览 | 涉及卷积层、轻量化、注意力、损失函数、Backbone、SPPF、Neck、检测头等全方位改进
|
移动开发 JavaScript HTML5
HTML5实现2025雪花飘新年倒计时源码
2025年即将到来,此源码页为单html纯代码,新年倒计时,背景雪花飘落效果,倒计时时间日期在JS/app.js文件第21行代码自行修改即可!
531 7
|
5月前
|
缓存 监控 API
1688平台开放接口实战:如何通过API获取店铺所有商品数据(Python示列)
本文介绍如何通过1688开放平台API接口获取店铺所有商品,涵盖准备工作、接口调用及Python代码实现,适用于商品同步与数据监控场景。
|
8月前
|
机器学习/深度学习 人工智能 编解码
告别潜在空间的黑箱操作,直接在原始像素空间建模!PixelFlow:港大团队开源像素级文生图模型
香港大学与Adobe联合研发的PixelFlow模型,通过流匹配和多尺度生成技术实现像素级图像生成,在256×256分辨率任务中取得1.98的FID分数,支持端到端训练并突破传统模型对预训练VAE的依赖。
394 36
告别潜在空间的黑箱操作,直接在原始像素空间建模!PixelFlow:港大团队开源像素级文生图模型
|
前端开发 UED
next/dynamic的动态导入
next/dynamic的动态导入
|
存储 弹性计算 数据管理
阿里云对象存储OSS收费标准:存储、流量和请求等多个计费项详解
阿里云对象存储OSS提供多样化的计费模式,涵盖存储、流量、请求等多项费用。存储费用方面,按量付费标准型为0.09元/GB/月,包年包月则有9元40GB等多种选择。流量费用仅对公网出方向收费,价格区间从0.25至0.50元/GB不等,支持按量付费与流量包抵扣两种方式。更多详情及精准报价,欢迎访问阿里云OSS官方页面。
7305 1
|
NoSQL 关系型数据库 MySQL
排行榜系统设计:高并发场景下的最佳实践
本文由技术分享者小米带来,详细介绍了如何设计一个高效、稳定且易扩展的排行榜系统。内容涵盖项目背景、技术选型、数据结构设计、基本操作实现、分页显示、持久化与数据恢复,以及高并发下的性能优化策略。通过Redis与MySQL的结合,确保了排行榜的实时性和可靠性。适合对排行榜设计感兴趣的技术人员参考学习。
1797 7
排行榜系统设计:高并发场景下的最佳实践
|
Kubernetes Java 开发工具
Kubernetes部署项目流程(新手上线新版本服务整个流程)
【8月更文挑战第1天】Kubernetes(k8s)新手上线新版本服务整个流程
457 5
|
Linux 应用服务中间件 nginx
Linux 快速搭建 Overleaf 5.0 附中文字体及完整 TexLive 安装教程(2024最新版)
2024最新版 Linux 极速安装 Overleaf 5.0 手把手教学!附 XeLatex 修复,新增中文字体以及安装完整版 TexLive 教程!