基于BP译码的LDPC误码率matlab仿真,分析码长,码率,信道对译码性能的影响,对比卷积码,turbo码以及BCH码

news/2025/3/17 23:11:19/文章来源:https://www.cnblogs.com/51matlab/p/18503431

1.算法仿真效果

       本程序系统是《m基于BP译码的LDPC误码率matlab仿真,分析不同码长,码率,信道对译码性能的影响,对比卷积码,turbo码》的的升级。

 

升级前原文章链接

 

增加了更多的不同码长,不同码率,不同信道对LDPC译码性能的影响,并增加了BCH编译码的对比。

 

matlab2022a仿真结果如下(完整代码运行后无水印):

 

 

 

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

       LDPC ( Low-density Parity-check,低密度奇偶校验)码是由 Gallager 在1963 年提出的一类具有稀疏校验矩阵的线性分组码 (linear block codes),然而在接下来的 30 年来由于计算能力的不足,它一直被人们忽视。1996年,D MacKay、M Neal 等人对它重新进行了研究,发现 LDPC 码具有逼近香农极限的优异性能。并且具有译码复杂度低、可并行译码以及译码错误的可检测性等特点,从而成为了信道编码理论新的研究热点。

 

        Mckay ,Luby 提出的非正则 LDPC 码将 LDPC 码的概念推广。非正则LDPC码 的性能不仅优于正则 LDPC 码,甚至还优于 Turbo 码的性能,是目前己知的最接近香农限的码。

 

       LDPC码的校验矩阵中,如果行列重量固定为(P,Y),即每个校验节点有Y个变量节点参与校验,每个变量节点参与P个校验节点,我们称之为正则LDPC码。Gallager最初提出的Gallager码就具有这种性质。从编码二分图的角度来看,这种LDPC码的变量节点度数全部为P,而校验节点的度数都为Y。我们还可以适当放宽上述正则LDPC码的条件,行列重量的均值可以不是一个整数,但行列重量尽量服从均匀分布。另外为了保证LDPC码的二分图上不存在长度为4的圈。我们通常要求行与行以及列与列之间的交叠部分重量不超过1,所谓交叠部分即任意两列或两行的相同部分。我们可以将正则LDPC码校验矩阵H的特征概括如下:

 

1. H的每行行重固定为P,每列列重固定为Y。

 

2. 任意两行(列)之间同为1的列(行)数(称为重叠数)不超过1,即H矩阵中不含四角为1 的小方阵,也即无4线循环。

 

3. 行重P和列重Y相对于H的行数M、列数N很小,H是个稀疏矩阵。

 

        在正则LDPC码的校验矩阵中。行重和列重的均值保持不变,所以校验矩阵中1的个数随着码长的增加而线性增长,整个校验矩阵的元素个数则成平方增长。当码长达到一定长度时,校验矩阵H是非常稀疏的低密度矩阵。对于正则的LDPC码,MacKay给出了以下两个结论:

 

1. 对于任意给定列重大于3的LDPC码,存在某个小于信道传输容量且大于零的速率r ,当码长足够长时,可以实现以小于r且不为零的速率无差错的传输。也就是说任意给定一个不为零的传输速率r,存在一个小于相应香农限的噪声门限,当信道噪声低于该门限且码长足够长的时候,可以实现以r速率无差错的传输。

 

2. 当LDPC码的校验矩阵H的列重Y不固定,而是根据信道特性和传输速率来确定时,则一定可以找到一个最佳码,实现在任意小于信道传输容量的速率下无差错的传输。

 

       LDPC码的定义都是在二元域基础上的,MaKcay对上述二元域的LDPC码又进行了推广。如果定义中的域不限于二元域就可以得到多元域GF(q)上的LDPC码。多元域上的LDPC码具有较二进制LDPC码更好的性能,而且实践表明在越大的域上构造的LDPC码,译码性能就越好,比如在GF(16)上构造的正则码性能己经和Turbo码相差无几。多元域LDPC码之所以拥有如此优异的性能,是因为它有比二元域LDPC码更重的列重,同时还有和二元域LDPC码相似的二分图结构。

 

       LDPC码在典型的数字通信系统下的性能仿真:

 

 

 

3.MATLAB核心程序

for i=1:length(EbN0)while Num_err <= Times(i)Num_errfprintf('Eb/N0 = %f\n', EbN0(i));Trans_data = round(rand(1,N-M));  %产生需要发送的随机数ldpc_code  = mod(Trans_data*G,2); %LDPC编码Trans_BPSK = 2*ldpc_code-1;       %BPSK%通过高斯信道sigma      = sqrt(1./(2*10^(EbN0(i)/10)*R));  Rec_BPSK   = Trans_BPSK + sigma*randn(1,size(G,2));   %LDPC译码 z_hat = func_Dec(Rec_BPSK,sigma,H,max_iter);x_hat      = z_hat(size(G,2)+1-size(G,1):size(G,2));[nberr,rat]  = biterr(x_hat',Trans_data);Num_err     = Num_err+nberr;Numbers     = Numbers+1;    end Bit_err(i)=Num_err/(N*Numbers);
end
figure;
semilogy(EbN0,Bit_err,'o-r');
xlabel('Eb/N0(dB)');
ylabel('BER');
grid on;
if N == 50save R_2.mat EbN0 Bit_err
end
if N == 102save R_1.mat EbN0 Bit_err
end
if N == 204save R1.mat EbN0 Bit_err
end
if N == 504save R2.mat EbN0 Bit_err
end
if N == 1008save R3.mat EbN0 Bit_err
end
0sj_009m

  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/821965.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从门面模式到 SLF4J 及其 getLogger 方法原理

基于以下内容总结:从门面模式到 Slf4j、10 分钟讲清楚 Java SLF4J,Java 日志框架的扛把子,从原理到实践写后端接口的时候,先写一个 Service 接口,这个 Service 接口的实现中可能会调用多个其他 Service 或 Mapper 方法来实现某个业务,对于 Controller,只需要传递参数给 …

java学习10.25企业ERP生产计划管理系统(20分)

今天成功的把这个项目写好了,就是文档中的一些具体的需求比较难写(由于之前没写过) 所以项目能完成基本的增删改查和浏览操作。 使用技术栈 mybatis+thymeleft+mysql 比较复杂,写的东西比较多,以后学了springboot会更简便一些 整体架构具体页面源代码 通过百度网盘分享的文…

vscode怎么配置C语言环境

# vscode怎么配置C语言环境 在配置Visual Studio Code(VSCode)以支持C语言环境时,主要步骤包括安装C/C++扩展、配置编译器、设置调试环境。这些步骤确保了开发者可以在VSCode中高效地编写、编译和调试C语言代码。接下来,我们将详细讨论如何完成这些配置步骤。 ## 一、安装C…

Anaconda + Vscode 和 Anaconda + Pycharm安装操作教程以及问题解决

1.anaconda安装 2.打不开Anaconda Navigation 解决办法 3.如何创建虚拟环境(2种方法) 4.Anaconda+vscode 5.Anaconda+pycharm Anaconda + Vscode 和 Anaconda + Pycharm安装操作教程以及问题解决 1.anaconda安装Anaconda下载地址 我选的是2020,11的一个版本。 还没装之前电脑…

iframe有哪些加载事件

iframe的加载事件有以下几个:1、onload事件;2、onunload事件;3、onunload事件。onload事件是iframe加载完成后触发的事件。当嵌套的页面完全加载并准备好时,这个事件会被触发。开发者可以使用这个事件来执行与加载内容相关的操作,例如修改iframe的样式、内容或与其交互。一…

基于遗传算法的智能天线最佳阵列因子计算matlab仿真

1.课题概述基于遗传算法的智能天线最佳阵列因子计算。智能天线技术利用自适应阵列处理技术改善无线通信系统的性能,尤其是提高接收信号质量、抑制干扰和增强定位能力。在智能天线的设计中,阵列因子(也称加权向量或波束形成向量)的选择至关重要,它直接影响了阵列的方向性和…

网络科技和信息科技的区别是什么

​​网络科技和信息科技的区别:1.定义与侧重点不同;2.应用领域不同;3.技术内容不同;4.专业知识和技能要求不同。网络科技更多关注于数据传输、网络通信、以及基于互联网的各种服务和应用的开发,而信息科技则包括了信息的收集、处理、存储、传递、分析和使用。1.定义与侧重…

基于贝叶斯优化卷积神经网络(Bayes-CNN)的多因子数据分类识别算法matlab仿真

1.算法运行效果图预览 (完整程序运行后无水印)贝叶斯优化过程 贝叶斯优化后的CNN训练和识别结果 标准的CNN的识别结果 2.算法运行软件版本 matlab2022a3.部分核心程序 (完整版代码包含详细中文注释和操作步骤视频)% 使用贝叶斯优化算法确定最优的批次大小和学习率 [MBsize,…

.obj file format limit

.obj 文件保存的内容非常有限:顶点、纹理坐标(最多一套)、法线、三角面;它不支持顶点色、多套纹理坐标(uv2, uv3)、TANGENT、BINORMAL、骨骼权重。 搜索某度,被其内容所误导,花费不少时间 搜索.obj文件支持多套纹理坐标方式,未果!后在Blender中尝试导出带有2套纹理坐标的…

2024 CSP-J1 游记

补一篇游记罢。现在是 \(2024.10.25.22:07:10\)。 明天恰好是第二轮,hyy他们在日照已经试完机了罢。 悲。 Day-? 暑假学复赛似乎学了不少?但写的那几篇学习笔记貌似都忘干净了。。。 Day-7— 0 开学了。老师超级严,天天布置背诵任务让晚上打卡,没空卷 OI。 听说 tzyz 有 m…

2024年在线项目管理的网站哪个好?深度对比15款

深入对比15款好用的项目管理网站,包括:PingCode、Worktile、Asana、Trello、Jira、Monday.com、飞书项目、Basecamp、ClickUp、Smartsheet、Podio、Zoho Projects等。在线项目管理工具非常适合远程工作者、项目经理、中小企业、自由职业者、多项目管理人员、跨部门团队以及学…

caffe为什么要使用lmdb数据库

caffe要使用lmdb数据库的原因有:1、性能高;2、安全性好;3、空间利用率高。LMDB采用内存映射(Memory-Mapped)的方式,可以快速读取和写入大量数据。Caffe选择LMDB作为数据存储的方式,主要是因为LMDB的高性能和高空间利用率。在深度学习训练过程中,需要频繁读取和写入大量…