m基于BP译码算法的LDPC编译码matlab误码率仿真,对比不同的码长

news/2024/11/18 3:38:13/文章来源:https://www.cnblogs.com/51matlab/p/18199689

1.算法仿真效果

matlab2022a仿真结果如下:

 

 

 

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

       低密度奇偶校验码(Low-Density Parity-Check, LDPC)是一种高效的前向纠错码,因其优越的纠错性能和近似香农限的接近程度而广泛应用于现代通信系统中。LDPC码的编译码算法众多,其中Belief PropagationBP)译码算法是研究最为深入且应用广泛的一种迭代译码方法。

 

       LDPC码由一个稀疏校验矩阵H 定义,该矩阵具有大量的零元素,非零元素集中在较少的行和列中。设码长为n,校验节点数为m,则 H m×n 矩阵。编码过程可视为寻找一个n 维的二进制向量x (码字),满足HxT=0(模2运算)。

 

 

 

不同码长影响分析

 

短码长LDPC码:短码由于其结构相对简单,迭代次数较少便能较快收敛,但其纠错能力受限,可能不足以应对复杂信道条件下的通信需求。在BP译码中,短码由于校验矩阵稀疏度较高,可能在迭代初期就出现信息饱和,限制了性能的进一步提升。

 

长码长LDPC码:长码具有更高的编码增益,能够提供更强的纠错能力,但相应地,其BP译码的迭代次数需增多才能达到稳定状态,且存在迭代复杂度增加的问题。长码的稀疏度较低,迭代过程中信息传递更充分,有助于提高解码性能,但也可能遇到“陷井”问题,即局部最优而非全局最优解。

 

3.MATLAB核心程序

 

%开始循环,进行误码率仿真
for i=1:length(EsN0)while Num_err <= NUMS(i)z_hat = func_Ldpc_dec(NTrans_BPSK,sigma,newH);x_hat = z_hat(M+1:N);[nberr,rat]                  = biterr(x_hat,Trans_data);%LDPC译码 Num_err              = Num_err+nberr;Numbers              = Numbers+1;endBit_err(i) = Num_err/(N*Numbers);
endfigure;
semilogy(EsN0,Bit_err,'o-');
xlabel('Es/N0(dB)');
ylabel('BER');
grid on;if LEN==12save dat12.mat EsN0 Bit_err
end
if LEN==24save dat24.mat EsN0 Bit_err
end
if LEN==48save dat48.mat EsN0 Bit_err
end
if LEN==96save dat96.mat EsN0 Bit_err
end
if LEN==192save dat192.mat EsN0 Bit_err
end
if LEN==384save dat384.mat EsN0 Bit_err
end
if LEN==768save dat768.mat EsN0 Bit_err
end

 

  

 

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

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

相关文章

免费解锁Windows 11的HEVC支持:轻松播放4K电影的详细步骤

Windows 11的HEVC支持Windows 11 安装完成后,用电影和电视这个应用打开4K或者8K的MP4文件时,提示缺少解码器 以下就是本人解决过程 第一步:查找HEVC扩展的Microsoft Store页面 (本人直接浏览器打开:https://apps.microsoft.com/,搜索HEVC扩展,得到以下页面)复制地址栏的…

轻松玩转Python文件操作:移动、删除

哈喽,大家好,我是木头左!Python文件操作基础 在处理计算机文件时,经常需要执行如移动和删除等基本操作。Python提供了一些内置的库来帮助完成这些任务,其中最常用的就是os模块和shutil模块。这两个模块包含了许多与文件和目录操作相关的函数。 理解os模块 os模块是Python中…

解决Python执行命令时路径空格引发的困扰

哈喽,大家好,我是木头左!在编程实践中,常常需要通过Python执行系统命令,这包括调用外部程序、脚本或是其他命令行工具。然而,一个看似简单却常被忽视的细节——文件路径中的空格,可能会导致程序意外崩溃或行为异常。本篇文章将深入探讨当路径中包含空格时,如何在Python…

Winform窗体的属性页没有显示筛选框

新建一个Wiform项目,在新窗体中添加了一些Button、TextBox,然后查看这个窗体的属性页,发现属性页上方没有属性筛选框 如果你装了Dev Express,那么在窗体上放置一些Dev的控件,发现属性出现了筛选框 然后尝试一下创建一个Dev窗体DevExpress.XtraEditors.XtraForm,仍然不会出…

视觉Mamba的多向扫描策略真的有效吗?

前言 本文对主流的扫描方向及其组合对遥感图像语义分割的影响进行了全面的实验研究。通过在LoveDA、ISPRS Potsdam和ISPRS Vaihingen数据集上广泛的实验,我们证明了无论其复杂性或扫描方向的数量,没有一个扫描策略能够显著优于其他策略。所以对于高分辨率遥感图像的语义分割,…

【论文笔记-55~】多语言实体对齐

2012~2018 Multilingual Knowledge Graph Embeddings for Cross-lingual Knowledge Alignment 文章核心观点: 这篇文章介绍了一种名为MTransE的多语言知识图谱嵌入模型,旨在实现跨语言知识对齐。该模型由知识模型和匹配模型两部分组成,其中知识模型采用TransE对每个语言的实…

博客美化

目录参考链接页面定制css代码页首HTML代码页脚HTML代码其他设置头部背景图设置 参考链接awescnb自己部署皮肤文件页面定制css代码 #loading{bottom:0;left:0;position:fixed;right:0;top:0;z-index:9999;background-color:#f4f5f5;pointer-events:none;}.loader-inner{will-cha…

MySQL面试必备三之事务

本文首发于公众号:Hunter后端 原文链接:MySQL面试必备三之事务这一篇笔记介绍一下 MySQL 的事务,面试中常被问到关于事务的几个问题如下:事务是什么 为什么需要事务,事务有什么作用 事务的特点 事务可能带来哪些问题 事务有哪些隔离级别,这些隔离级别都可以解决哪些问题 …

Atcoder 题目选做(二)

Atcoder 题目选做(二)(20/20)推荐阅读:#1、#3、#4、#5、#6、#17\(\text{By DaiRuiChen007}\)*1. [ARC145F] Modulo Sum of Increasing Sequences Problem Link给定 \(n,m,p\),对于所有 \(r\in[0,p)\) 求有多少长度为 \(n\),值域 \([0,m]\) 的单调不降序列数组在 \(\bmod…

VUE速通(10)Vue3核心语法(2)setup

1 setup 概述 setup是Vue3中一个新的配置项,值是一个函数,它是 Composition API “表演的舞台”,组件中所用到的:数据、方法、计算属性、监视......等等,均配置在setup中。 特点如下:setup函数返回的对象中的内容,可直接在模板中使用。setup中访问this是undefined。setu…