資源簡介
自己做的LDPC simulink仿真,通過M文件調用SIMULINK,實現對不同誤碼率下LDPC信道編碼的仿真

代碼片段和文件信息
clear?all;
close?all;
clc;
tic;
%?parameter?initialization
fid?=?fopen(‘ber_ldpc.dat‘‘w+‘);
fprintf(fid‘%s\n‘‘Concatenated?codes?LDPC?CODE‘);
fclose(fid);
%?code?rate??1/41/32/51/23/52/33/44/55/68/99/10
CRate=[1/4?1/3?2/5?1/2?3/5?2/3?3/4?4/5?5/6?8/9?9/10];
EBN0=0:0.1:8;
BER=zeros(length(CRate)length(EBN0));
%?start?simulation
open(‘BPSK_LDPC_ALLRATE_BERSIM.mdl‘);
for?cr=1:length(CRate)
????
????
????CODRATE=CRate(cr);????
fid?=?fopen(‘ber_ldpc.dat‘‘a+‘);
fprintf(fid‘%f?\n‘?CODRATE??);
fclose(fid);?
????
????
????for?inumebn0=1:length(EBN0)
????????berout=[];
????????R=CRate(cr);
????????BlockSz?=?64800*R?;
????????EbNo?=EBN0(inumebn0);
????????EbNoVar?=10^(-?EbNo/10)/R;
????????Hmatrix=dvbs2ldpc(R);
????????sim(‘BPSK_LDPC_ALLRATE_BERSIM.mdl‘);
????????R
????????EbNo
????????berout(end)
????????BER(crinumebn0)=berout(end);
????????
????????BERRECORD=berout(end);????
fid?=?fopen(‘ber_ldpc.dat‘‘a+‘);
fprintf(fid‘%f???%e\n‘?EbNoBERRECORD??);
fclose(fid);??
????????
????????
????????if?(berout(end)<1e-7)
????????????break;
????????end;
????end;
????save?LDPCBERFULL???BER;
end;
save?LDPCBERFULL???BER;
%?##########################?plot?figure?###########
for?cr=1:length(CRate)
????rng=EBN0;
????switch?cr
????????case???1
????????????semilogy(rngBER(cr:)‘-h‘);
????????????hold?on;
????????case??2
????????????semilogy(rngBER(cr:)‘-+‘);
????????????hold?on;
????????case???3
????????????semilogy(rngBER(cr:)‘-s‘);
????????????hold?on;
????????case???4
????????????semilogy(rngBER(cr:)‘-*‘);
????????????hold?on;
????????case???5
????????????semilogy(rngBER(cr:)‘-p‘);
????????????hold?on;
????????case???6
????????????semilogy(rngBER(cr:)‘-o‘);
????????????hold?on;
????????case???7
????????????semilogy(rngBER(cr:)‘-x‘);
????????????hold?on;
????????case???8
????????????semilogy(rngBER(cr:)‘-<‘);
????????????hold?on;
????????case???9
????????????semilogy(rngBER(cr:)‘-v‘);
????????????hold?on;
????????case???10
????????????semilogy(rngBER(cr:)‘-^‘);
????????????hold?on;
????????otherwise
????????????semilogy(rngBER(cr:)‘-d‘);
????????????hold?on;
????end;
end;
UNCODEEbN0=0:0.1:12;
UNCODEDBER=0.5*erfc((10.^(UNCODEEbN0./20)));
?%?uncoded?plot
??semilogy(UNCODEEbN0UNCODEDBER‘-c‘);
??hold?on;
?%‘Uncoded?BPSK‘
title(‘The?Relationship?of?BER~SNR?for?DVB-S2?LDPC?codes‘);
xlabel(‘E_b/N_0(dB)?‘);
ylabel(‘BER(Bit-error-ratio)‘);
legend(‘LDPC?R=1/4‘‘LDPC?R=1/3‘‘LDPC?R=2/5‘‘LDPC?R=1/2‘‘LDPC?R=3/5‘‘LDPC?R=2/3‘‘LDPC?R=3/4‘‘LDPC?R=4/5‘‘LDPC?R=5/6‘‘LDPC?R=8/9‘‘LDPC?R=9/10‘‘Uncoded?BPSK‘);
axis([0????12????1e-8?????1]);
grid?on;
toc;
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件??????29721??2008-06-11?21:55??LDPC_BPSK\BPSK_LDPC_ALLRATE_BERSIM.mdl
?????文件???????2851??2008-06-18?20:33??LDPC_BPSK\ldpc_BPSK_ALL_RATE_BERSIM.m
?????目錄??????????0??2013-10-03?16:38??LDPC_BPSK
-----------?---------??----------?-----??----
????????????????32572????????????????????3
評論
共有 條評論