首页 > 编程语言 >m基于BP译码算法的QC-LDPC误码率matlab仿真,对比不同译码迭代次数的误码率性能

m基于BP译码算法的QC-LDPC误码率matlab仿真,对比不同译码迭代次数的误码率性能

时间:2023-04-23 19:31:32浏览次数:45  
标签:误码率 正则 矩阵 校验 译码 QC LDPC 节点

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

1.png

2.算法涉及理论知识概要 LDPC码是麻省理工学院Robert Gallager于1963年在博士论文中提出的一种具有稀疏校验矩阵的分组纠错码。几乎适用于所有的信道,因此成为编码界近年来的研究热点。它的性能逼近香农极限,且描述和实现简单,易于进行理论分析和研究,译码简单且可实行并行操作,适合硬件实现。 LDPC ( Low-density Parity-check,低密度奇偶校验)码是由 Gallager 在1963 年提出的一类具有稀疏校验矩阵的线性分组码 (linear block codes),然而在接下来的 30 年来由于计算能力的不足,它一直被人们忽视。1996年,D MacKay、M Neal 等人对它重新进行了研究,发现 LDPC 码具有逼近香农极限的优异性能。并且具有译码复杂度低、可并行译码以及译码错误的可检测性等特点,从而成为了信道编码理论新的研究热点。Mckay ,Luby 提出的非正则 LDPC 码将 LDPC 码的概念推广。非正则LDPC码 的性能不仅优于正则 LDPC 码,甚至还优于 Turbo 码的性能,是目前己知的最接近香农限的码。Richardson 和 Urbank 也为 LDPC 码的发展做出了巨大的贡献。首先,他们提出了一种新的编码算法,在很大程度上减轻了随机构造的 LDPC 码在编码上的巨大运算量需求和存储量需求。其次,他们发明了密度演进理论,能够有效的分析出一大类 LDPC 译码算法的译码门限。仿真结果表明,这是一个紧致的译码门限。最后,密度演进理论还可以用于指导非正则 LDPC码 的设计,以获得尽可能优秀的性能。

    在 LDPC 码的 Tanner 图中,从一个顶点出发,经过不同顶点后回到同一个顶点的一些“边”组成的回路称为“环”。经过的边的个数称为环的长度。所有环中周长最小的环称为 LDPC码的围长(girth) ‎。Tanner 图中的环不可避免的会对译码结果造成非常大的干扰。由于迭代概率译码会使信息在节点间交互传递,若存在环,从环的某一个节点出发的信息会沿着环上的节点不断传递并最终重新回到这个节点本身,从而使得节点自身信息不断累加,进而使得译码的最终结果失败的概率变大。显然,环长越小,信息传递回本身所需走的路径就越短,译码失败的概率就变得越高。Tanner 图形成一个环至少需要 4 个节点组成4 条相连的边,即环长最小为4,这类短环对码字的译码结果干扰最大。定义 LDPC码的行列(RC)约束为:两行或两列中不存在元素 1 的位置有 1 个以上相同的情况。显然,满足 RC 约束的 LDPC 码最低就是 6 环,去除了4 环的干扰。由于4环的检测以及避免最为简单并且必要,因此绝大部分构造方法都会满足 RC 约束。而构造大圈长的码字则需要精确的设计。

2.png

   LDPC仿真系统图LDPC 码的奇偶校验矩阵H是一个稀疏矩阵,相对于行与列的长度,校验矩阵每行、列中非零元素的数目(我们习惯称作行重、列重)非常小,这也是LDPC码之所以称为低密度码的原因。由于校验矩阵H的稀疏性以及构造时所使用的不同规则,使得不同LDPC码的编码二分图(Taner图)具有不同的闭合环路分布。而二分图中闭合环路是影响LDPC码性能的重要因素,它使得LDPC码在类似可信度传播(Belief ProPagation)算法的一类迭代译码算法下,表现出完全不同的译码性能。当H的行重和列重保持不变或尽可能的保持均匀时,我们称这样的LDPC码为正则LDPC码,反之如果列、行重变化差异较大时,称为非正则的LDPC码。研究结果表明正确设计的非正则LDPC码的性能要优于正则LDPC。根据校验矩阵H中的元素是属于GF(2)还是GF(q)(q=2p),我们还可以将LDPC码分为二元域或多元域的LDPC码。研究表明多元域LDPC码的性能要比二元域的好。

   在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 码的每个变量节点来说,当它参与的校验式越多,即度数Y越大,则它可以从更多的校验节点获取信息,也就可以更加准确的判断出它的正确值。对于H的每个校验节点来说,当它涉及的变量节点越少,即度数P越小,则它可以更准确的估计相关变量节点的状态。这种情况对于正则LDPc码来说是一对不可克服的矛盾,于是Luby,Mitzemnacher等人就引入了非正则LDPC码的概念。
    

3.MATLAB核心程序

clear;
close all;
warning off;
addpath(genpath(pwd));
global inters;
inters= 2;
%%
%参数的初始化
q     = 127;
M     = 5*q; %矩阵行数
N     = 10*q;%矩阵列数
a     = 2;
b     = 7;
%QC构造稀疏矩阵
H         = func_QC_H(a,b,q,M,N);
%将系数矩阵转换为生成矩阵
[G,valid] = func_H2G(H);
[N1,N2]   = size(G);
 
%仿真信噪比,迭代次数少的时候,可以增加信噪比的仿真长度区间
NoisedB   = [0:1:5];
LL        = [200,150,100,50,30,20,15,10,10,10]*4;
All_frame = N2;
 
for i = 1 : length(NoisedB)
    
    Num_err = 0;
    xx     = 10^(NoisedB(i)/10);
    sigma   = 1/sqrt(xx);
    idx     = 0;
    while Num_err<LL(i)
        [Num_err,i]
        idx= idx+1;
        %产生随机数据作为测试数据
        x = (sign(randn(1,size(G,1)))+1)/2;
        %LDPC编码
        y = mod(x*G,2);
        %BPSK映射
        z = 2*y-1;
        %加入噪声
        z = awgn(z,NoisedB(i),'measured');
        %LDPC译码
        z_hat = func_Ldpc_dec(z,sigma,H);
        x_hat = z_hat(M+1:N);
        x_hat1= x_hat';
        %误码率统计
        Num_err = Num_err + sum(xor(x,x_hat1));
    end
    
    BER1(i) = Num_err/All_frame/idx;
end
figure;
semilogy(NoisedB,BER1,'r-*');
grid on
xlabel('SNR(db)');
ylabel('BER');
legend('QC-LDPC');
        
if inters==1
   save QC1.mat NoisedB BER1      
end    
if inters==2
   save QC2.mat NoisedB BER1      
end 
if inters==5
   save QC5.mat NoisedB BER1      
end   
if inters==10
   save QC10.mat NoisedB BER1      
end   
if inters==30
   save QC30.mat NoisedB BER1      
end   

标签:误码率,正则,矩阵,校验,译码,QC,LDPC,节点
From: https://blog.51cto.com/matworld/6218561

相关文章

  • MIMO通信系统中对比Alamouti和MRC的误码率性能matlab仿真
    1.算法仿真效果matlab2022a仿真结果如下:   2.算法涉及理论知识概要       MIMO(Multiple-InputMultiple-Out-put)系统是一项运用于802.11n的核心技术。802.11n是IEEE继802.11bag后全新的无线局域网技术,速度可达600Mbps。同时,专有MIMO技术可改进已有802.11a/b/g......
  • linux 中安装 RSeQC 软件
     001、ubuntu系统(base)root@DESKTOP-IDT9S0E:~#lsb_release-aNoLSBmodulesareavailable.DistributorID:UbuntuDescription:Ubuntu20.04.5LTSRelease:20.04Codename:focal 02、查找该软件下的任意一个包(base)root@DESKTOP-IDT9S0......
  • m规则LDPC和非规则LDPC误码率matlab对比仿真,并对比不同译码迭代次数的误码率
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要LDPC码是麻省理工学院RobertGallager于1963年在博士论文中提出的一种具有稀疏校验矩阵的分组纠错码。几乎适用于所有的信道,因此成为编码界近年来的研究热点。它的性能逼近香农极限,且描述和实现简单,易于进行理论......
  • 26-组合集成电路-译码器
    译码器1.译码器的概念与分类1.1译码器的概念译码器(decoder):将输入的代码“翻译”成另外一种代码输出。编码器(encoder):将一组编码输入的每一个信号编成一个与之对应的输出代码。译码器将一组二进制数还原为一个数字一个符号,一个信息。比如输入1000,将其翻译为8译码器—输......
  • 高通工具QXDM、QCAT和QPST的使用
    转自高通工具QXDM、QCAT和QPST的使用-腾讯云开发者社区-腾讯云(tencent.com)QXDM,QPST和QCAT是Qualcomm高通公司针对高通芯片的抓包分析工具。QXDM抓包分析,QPST与手机com口连接,QCAT用来分析抓包产生的isf文件(log)。工具名称功能QXDM关闭打开备份......
  • 参加2015 qcon 回来的分享及年末做一次内部“监控演进分享”
          有幸参加2015的qcon三天会议,回来做的分享:               年末内部又有机会做一次监控的演进分享             知识的总结.............
  • m基于matlab的卷积编码维特比译码误码率仿真
    1.算法仿真效果matlab2022a仿真结果如下:2.算法涉及理论知识概要随着现代通信的发展,人们对信息传输的可靠性和有效性的要求也越来越高。维特比译码算法被广泛的应用,因此如何提高维特比译码器的性能,降低译码器的功耗和面积是个重要的问题。卷积码是Elias等人在1955年提出的,是一种......
  • 基于matlab的多符号差分球形译码误码率仿真
    1.算法描述    球形译码的基本思想是在以一个矢量x为中心的半径为d的多维球内搜索格点,通过限制或者减少搜索半径从而减少搜索的点数,进而使得计算时间减少。球形译码算法带来的优点在于它不需要象传统的最大似然译码算法那样需要在整个格内对所有的格点进行搜索,而只需要在......
  • 基于MATLAB的ASK,FSK,PSK误码率对比仿真,输出调制后波形以及误码率曲线
    1.算法描述       在数字通信的三种调制方式(ASK、FSK、PSK)中,就频带利用率和抗噪声性能(或功率利用率)两个方面来看,一般而言,都是PSK系统最佳。所以PSK在中、高速数据传输中得到了广泛的应用。 ASK:幅度键控可以通过乘法器和开关电路来实现。载波在数字信号1或0的控制......
  • 【蓝牙音频SoC】BES2700YP、BES2600YP、AB1565A、QCC3056助力TWS耳机实现更高音质效果
    1、高通QCC3056是一种超低功耗、单芯片解决方案,经过优化,可用于无线耳塞和耳戴式设备。它支持TrueWirelessMirroring技术,并具有广泛的差异化功能。QCC3056集成了1x80MHz3......