基于WIMAX的校验矩阵H和SPA算法的LDPC译码仿真

目录

一、理论基础

二、案例背景

1.问题描述

2.思路流程

三、部分MATLAB仿真

四、仿真结论分析

五、参考文献


一、理论基础

     LDPC码是一种接近香农极限的“好”码,自二十世纪九十年代被重发现以来,已获得越来越广泛的应用,成为诸多通信领域推荐使用的信道编码。近来,3GPP将其作为5G新空口eMMB应用上的数据传输编码方案。本文将主要介绍LDPC的一些主要译码方法并通过MATLAB实现,这里主要使用的译码方法为SPA(Sum-Product Algorithm和积译码算法)、LBP(Layered-Belief Propagation分层置信传播译码算法)以及性能更高的IDS(Information Dynamic Schdule)类译码算法如RBP(Residual Belief Propagation)、NW-RBP(Node Wise-RBP)、SVNF-RBP(Silent-Variable-Node-Free RBP)。
       LDPC码的概率域BP算法的变量节点和校验节点操作有大量乘法,这样计算量和复杂度都很高,如果将上述0和1的概率信息用对数似然比表示,就可以把乘法运算转换为加法运算,大大降低了运算量,此算法称为和积译码算法。步骤如下:

在本课题中,SP译码相关参数如下: 

码率是0.5,码长是2304,nb=24,kb=12,

基础矩阵为

根据这些信息,我们可以得到校验矩阵H和生成矩阵G。

二、案例背景

1.问题描述

       在本项目中,需要实现一些最先进的信道编码器和Matlab中的解码器,仿真和分析所实现信道的性能编码方案。采用的信道编码方案均来自无线通信标准/规范,包括GSM、CDMA2000、CD-ROM,WCDMA、LTE、WiMAX、DVB等。项目完成后,拥有更好地理解信道编码原理,错误的实现细节控制编码,差错控制编码在现实世界中的作用和有效性电信/数据存储应用。

2.思路流程

对应PPT的

对应PPT的

对应PPT的

三、部分MATLAB仿真

ldpc顶层程序如下所示:

clc;
clear;
close all;
warning off;

Hb=[-1  94   73  -1   -1   -1   -1   -1   55   83   -1  -1    7   0   -1  -1   -1 -1  -1  -1   -1   -1   -1   -1;
    -1  27   -1  -1   -1   22   79   9    -1   -1   -1  12   -1   0   0   -1   -1 -1  -1  -1   -1   -1   -1   -1;
    -1  -1   -1  24   22   81   -1   33   -1   -1   -1   0   -1  -1   0   0    -1 -1  -1  -1   -1   -1   -1   -1;
    61  -1   47  -1   -1   -1   -1   -1   65   25   -1  -1   -1  -1  -1   0    0  -1  -1  -1   -1   -1   -1   -1;
    -1  -1   39  -1   -1   -1   84   -1   -1   41   72  -1   -1  -1  -1  -1    0   0  -1  -1   -1   -1   -1   -1;
    -1  -1   -1  -1   46   40   -1   82   -1   -1   -1  79    0  -1  -1  -1   -1   0  0   -1   -1   -1   -1   -1;
    -1  -1   95  53   -1   -1   -1   -1   -1   14   18  -1   -1  -1  -1  -1   -1  -1  0    0   -1   -1   -1   -1;
    -1  11   73  -1   -1   -1   2    -1   -1   47   -1  -1   -1  -1  -1  -1   -1  -1  -1   0    0   -1   -1   -1;
    12  -1   -1  -1   83   24   -1   43   -1   -1   -1  51   -1  -1  -1  -1   -1  -1  -1  -1    0    0   -1   -1;
    -1  -1   -1  -1   -1   94   -1   59   -1   -1   70  72   -1  -1  -1  -1   -1  -1  -1  -1   -1    0    0   -1;
    -1  -1   7   65   -1   -1   -1   -1   39   49   -1  -1   -1  -1  -1  -1   -1  -1  -1  -1   -1   -1    0   0;
    43  -1   -1  -1   -1   66   -1   41   -1   -1   -1  26    7  -1  -1  -1   -1  -1  -1  -1   -1   -1   -1   0];

H       = func_H(Hb,eye(96));
[Rh,Ch] = size(H);
 
x        = ones(1,Ch);
EbN0     = [0:0.5:2];
BER      = zeros(1,length(EbN0));
Max_iter = 15;
Lvl      = [2000,1500,1000,300,100,50]; 
for i=1:length(EbN0);
    i
    ber2 = 0;
    indx = 0;
    while ber2<Lvl(i)%电脑牛逼就设置大点
        [EbN0(i),ber2]
        indx  = indx + 1;
        sigma = sqrt(1/(10^(EbN0(i)/10)));
        r     = x+randn(size(x))*sigma;
        %对应PPT公式
        Lv    = 2*r/(sigma^2);
        %SPA算法
        ber   = Sum_product_algorithm(Lv,H,Max_iter);
        ber2  = ber2 + ber;
    end
    BER(i)=ber2/indx/Ch;
end


figure;
semilogy(EbN0,BER,'b-s')
xlabel('EbN0(dB)')
ylabel('BER')
grid on
axis([0,3,1e-6,1]);

四、仿真结论分析

本SPA算法的LDPC译码后的误码率仿真结果如下所示:

五、参考文献

[1]陳榮杰. A Simplified Addition Operation Log-SPA LDPC Decoder.  2008.A14-40

猜你喜欢

转载自blog.csdn.net/ccsss22/article/details/126516050