通过matlab对比规则LDPC和非规则LDPC的误码率

简介: 通过matlab对比规则LDPC和非规则LDPC的误码率

1.算法描述

   LDPC码是麻省理工学院Robert Gallager于1963年在博士论文中提出的一种具有稀疏校验矩阵的分组纠错码。几乎适用于所有的信道,因此成为编码界近年来的研究热点。它的性能逼近香农极限,且描述和实现简单,易于进行理论分析和研究,译码简单且可实行并行操作,适合硬件实现。

   LDPC 码可以通过校验矩阵 H 来唯一确定,校验矩阵 H 是大小为m*n 的稀疏矩阵,其中m 为校验位长度,n 为 LDPC 码码长,信息位长度为 k =n-m 。LDPC 码可以分为规则 LDPC 码和非规则 LDPC 码两种[3]。规则 LDPC 码的校验矩阵中不仅每一行中非零元素的个数是相同的,而且每一列中非零元素的个数也是相同的,而非规则LDPC码则不受到该条件的限制。下图给出的是一种规则LDPC码的校验矩阵。

除了使用校验矩阵的方式来表示 LDPC 码之外,Tanner 在 1981 年提出的用 Tanner图来描述码字的方法可以形象的表示 LDPC 码的特性[4]。下图中表示的 Tanner 图与上图中的校验矩阵相对应。

image.png

Tanner 图显示了 LDPC 码中校验节点和变量节点之间的连接关系。图中的校验节点对应校验矩阵 H 的行,变量节点对应校验矩阵 H 的列。与节点相连的边的数目被称为节点的度,从一个节点开始出发后又回到该节点时所经过的边的数目称之为循环长度,最短的循环长度被称为图的围长。

QC-LDPC码:

QC-LDPC码的校验矩阵是由全零阵,单位矩阵和循环右移的单位阵的子矩阵构成的。

QC-LDPC码校验矩阵的子矩阵具有如下特点:

(1) 每个子矩阵是一个方阵;

(2) 循环子矩阵的任一行(列)都是上一行(列)向右移动一位得到的,特别的,矩阵的第一行(列)由最后一行(列)循环右移一位得到;

(3) 循环矩阵完全可以由其第一行或者第一列决定。

根据这样的形式可以写出他的基矩阵,用来表示所构造的校验矩阵。

   如果校验矩阵中各行非零元素的个数相同,各列中非零元素的个数也相同,这样的LDPC码称为规则码,与规则码对照,如果校验矩阵的各行中非零元素的个数不同或各列中非零元素个数不同,此时的LDPC码称为非规则的LDPC码。

2.仿真效果预览
matlab2022a仿真结果如下:

3.MATLAB核心程序

R        = 0.5;%设置码率为1/2;
N        = 192;%设置奇偶校验矩阵大小     
M        = N*R;
EbN0     = [0 1 2 3 4 5 6];     %设置Eb/N0;
Max_iter = 100;                 %最大迭代次数
 
H  = func_Hgen(M,N);%产生奇偶校验矩阵
 
figure;
imshow(H,[]);title('奇偶校验均值H直观图');
for i=1:length(EbN0)
    
    
    Bit_err(i)    = 0; %设置误码率参数
    Num_err       = 0; %蒙特卡洛模拟次数
    Numbers       = 0; %误码率累加器
    iter_moy_temp = [];%叠加寄存器
    
    while Num_err <= Times    
        fprintf('Eb/N0 = %f\n', EbN0(i));
        Num_err
        Trans_data       = round(rand(N-M,1));           %产生需要发送的随机数
        [ldpc_code,newH] = func_Enc(Trans_data,H);       %LDPC编码
        u                = [ldpc_code;Trans_data];       %LDPC编码
        Trans_BPSK       = 2*u-1;                        %BPSK
      
        %通过高斯信道
        N0                   = 2*10^(-EbN0(i)/10);
        Rec_BPSK             = Trans_BPSK+sqrt(N0/2)*randn(size(Trans_BPSK));
        %LDPC译码 
        [vhat,nb_iter]       = func_Dec(Rec_BPSK,newH,N0,Max_iter);
        iter_moy_temp(end+1) = nb_iter;
        
        [nberr,rat]=biterr(vhat',u);
        Num_err=Num_err+nberr;
        Numbers=Numbers+1;
    end
    Bit_err(i)  = Num_err/(N*Numbers);
end
相关文章
|
1天前
|
监控 算法 数据安全/隐私保护
基于扩频解扩+turbo译码的64QAM图传通信系统matlab误码率仿真,扩频参数可设置
该通信系统基于MATLAB 2022a仿真,适用于高要求的图像传输场景(如无人机、视频监控等),采用64QAM调制解调、扩频技术和Turbo译码提高抗干扰能力。发射端包括图像源、64QAM调制器、扩频器等;接收端则有解扩器、64QAM解调器和Turbo译码器等。核心程序实现图像传输的编码、调制、信道传输及解码,确保图像质量和传输可靠性。
26 16
|
2月前
|
算法 5G 数据安全/隐私保护
MIMO系统中差分空间调制解调matlab误码率仿真
本项目展示了一种基于Matlab 2022a的差分空间调制(Differential Space Modulation, DMS)算法。DMS是一种应用于MIMO通信系统的信号传输技术,通过空间域的不同天线传输符号序列,并利用差分编码进行解调。项目包括算法运行效果图预览、核心代码及详细中文注释、理论概述等内容。在发送端,每次仅激活一个天线发送符号;在接收端,通过差分解调估计符号和天线选择。DMS在快速衰落信道中表现出色,尤其适用于高速移动和卫星通信系统。
|
2月前
|
编解码 算法 数据安全/隐私保护
基于BP译码的LDPC误码率matlab仿真,分析码长,码率,信道对译码性能的影响,对比卷积码,turbo码以及BCH码
本程序系统基于BP译码的LDPC误码率MATLAB仿真,分析不同码长、码率、信道对译码性能的影响,并与卷积码、Turbo码及BCH编译码进行对比。升级版增加了更多码长、码率和信道的测试,展示了LDPC码的优越性能。LDPC码由Gallager在1963年提出,具有低复杂度、可并行译码等优点,近年来成为信道编码研究的热点。程序在MATLAB 2022a上运行,仿真结果无水印。
62 0
|
4月前
|
算法 数据安全/隐私保护
基于星座图整形方法的QAM调制解调系统MATLAB误码率仿真,对比16,32,64,256四种QAM调制方式
本MATLAB 2022a仿真展示了不同QAM阶数下的星座图及误码率性能,通过星座图整形技术优化了系统性能。该技术利用非均匀分布的星座点提高功率效率,并通过合理布局增强抗干扰能力。随着QAM阶数增加,数据传输速率提升,但对信道质量要求也更高。核心程序实现了从比特生成到QAM映射、功率归一化、加噪及解调的全过程,并评估了系统误码率。
89 0
|
6月前
|
机器学习/深度学习 自然语言处理 算法
m基于深度学习的OFDM+QPSK链路信道估计和均衡算法误码率matlab仿真,对比LS,MMSE及LMMSE传统算法
**摘要:** 升级版MATLAB仿真对比了深度学习与LS、MMSE、LMMSE的OFDM信道估计算法,新增自动样本生成、复杂度分析及抗频偏性能评估。深度学习在无线通信中,尤其在OFDM的信道估计问题上展现潜力,解决了传统方法的局限。程序涉及信道估计器设计,深度学习模型通过学习导频信息估计信道响应,适应频域变化。核心代码展示了信号处理流程,包括编码、调制、信道模拟、降噪、信道估计和解调。
122 8
|
7月前
|
算法
m基于BP译码算法的LDPC编译码matlab误码率仿真,对比不同的码长
MATLAB 2022a仿真实现了LDPC码的性能分析,展示了不同码长对纠错能力的影响。短码长LDPC码收敛快但纠错能力有限,长码长则提供更强纠错能力但易陷入局部最优。核心代码通过循环进行误码率仿真,根据EsN0计算误比特率,并保存不同码长(12-768)的结果数据。
103 9
m基于BP译码算法的LDPC编译码matlab误码率仿真,对比不同的码长
|
6月前
|
算法
m基于PSO粒子群优化的LDPC码NMS译码算法最优归一化参数计算和误码率matlab仿真
MATLAB2022a仿真实现了基于遗传优化的NMS LDPC译码算法,优化归一化参数以提升纠错性能。NMS算法通过迭代处理低密度校验码,而PSO算法用于寻找最佳归一化因子。程序包含粒子群优化的迭代过程,根据误码率评估性能并更新解码参数。最终,展示了迭代次数与优化过程的关系,并绘制了SNR与误码率曲线。
58 2
|
7月前
|
资源调度 算法 块存储
m基于遗传优化的LDPC码OMS译码算法最优偏移参数计算和误码率matlab仿真
MATLAB2022a仿真实现了遗传优化的LDPC码OSD译码算法,通过自动搜索最佳偏移参数ΔΔ以提升纠错性能。该算法结合了低密度奇偶校验码和有序统计译码理论,利用遗传算法进行全局优化,避免手动调整,提高译码效率。核心程序包括编码、调制、AWGN信道模拟及软输入软输出译码等步骤,通过仿真曲线展示了不同SNR下的误码率性能。
75 1
|
6月前
|
算法
m基于PSO粒子群优化的LDPC码OMS译码算法最优偏移参数计算和误码率matlab仿真
MATLAB2022a仿真实现了Offset Min-Sum (OMS)译码算法与粒子群优化(PSO)结合,以优化偏移参数,提升LDPC码解码性能。PSO通过迭代寻找最小化误码率(BER)的最佳偏移量。核心程序运用PSO进行参数更新和适应度函数(BER)评估,最终在不同信噪比下展示OMS解码性能,并保存结果。
83 0
|
7月前
|
算法 Serverless
m基于遗传优化的LDPC码NMS译码算法最优归一化参数计算和误码率matlab仿真
MATLAB 2022a仿真实现了遗传优化的归一化最小和(NMS)译码算法,应用于低密度奇偶校验(LDPC)码。结果显示了遗传优化的迭代过程和误码率对比。遗传算法通过选择、交叉和变异操作寻找最佳归一化因子,以提升NMS译码性能。核心程序包括迭代优化、目标函数计算及性能绘图。最终,展示了SNR与误码率的关系,并保存了关键数据。
84 1

热门文章

最新文章