⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ldpcber.m

📁 LDPC Decoder for rate=1/2 Min-Sum, Sum-Product, Scaling Min-Sum Layered Decoding for Matlab Code
💻 M
字号:
clc;clear all;
%M=500;N=1000;onePerCol=3;
%method=1;noCycle=1;
%strategy=2;
load('matlab.mat');
[M N]=size(H);
iter=10;frame=10;
EbN0=1:0.2:2.6;
%H = makeLdpc(M,N,1,1,onePerCol);
%-------------------------------------------------
for i = 1:length(EbN0)
   fprintf('BER is %f:\n',EbN0(1,i))
   ber1(i) = 0;
   ber2(i) = 0;
   ber3(i) = 0; 
   dSource = round(rand(N,frame));
   for j = 1:frame
      fprintf('Frame : %d\n',j);
      %[c, newH] = makeParityChk(dSource(:,j),H,strategy);
      u = dSource(:,j);
      bpskMod = 2*u - 1;
      N0 = 1/(exp(EbN0(i)*log(10)/10));
      tx = bpskMod + sqrt(N0)*randn(size(bpskMod));
      vhat1 = decodeLogDomain(tx,H,N0,iter);
      vhat2 = decodeLogDomainSimple(tx,H,iter);
      vhat3 = LayeredDecoding(tx',H,iter);
      [num1, rat1] = biterr(vhat1',u);
      ber1(i) = (ber1(i) + rat1);
      [num2, rat2] = biterr(vhat2',u);
      ber2(i) = (ber2(i) + rat2);
      [num3, rat3] = biterr(vhat3',u);
      ber3(i) = (ber3(i) + rat3);
   end   
   ber1(i) = ber1(i)/frame;
   ber2(i) = ber2(i)/frame;
   ber3(i) = ber3(i)/frame;
end
%-------------------------------------------------
semilogy(EbN0,ber1,'ro-',EbN0,ber2,'bo-',EbN0,ber3,'go-');
h=legend('Sum-product','Min-sum','Layered',1);
title('LDPC Decoder Performance (Code rate = 1/2)');
xlabel('Eb/N0 (db)');ylabel('Bit Erro Rate');grid on;figure(gcf)
grid on;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -