基于WIMAX的校验矩阵H和SPA算法的LDPC译码仿真
Posted fpga和matlab
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于WIMAX的校验矩阵H和SPA算法的LDPC译码仿真相关的知识,希望对你有一定的参考价值。
目录
一、理论基础
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
以上是关于基于WIMAX的校验矩阵H和SPA算法的LDPC译码仿真的主要内容,如果未能解决你的问题,请参考以下文章
Fibonacci-PEG,LDPC基于Fibonacci-PEG算法的LDPC码校验矩阵的构造
误码率仿真基于matlab LDPC编译码误码率仿真含Matlab源码 2079期
误码率仿真基于matlab LDPC编译码误码率仿真含Matlab源码 2079期