1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/ZpmYmp5w
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
LDPC ( Low-density Parity-check,低密度奇偶校验)码是由 Gallager 在1963 年提出的一类具有稀疏校验矩阵的线性分组码 (linear block codes),然而在接下来的 30 年来由于计算能力的不足,它一直被人们忽视。1996年,D MacKay、M Neal 等人对它重新进行了研究,发现 LDPC 码具有逼近香农极限的优异性能。并且具有译码复杂度低、可并行译码以及译码错误的可检测性等特点,从而成为了信道编码理论新的研究热点。
4.部分源码
........................................................................
for i=1:length(EbN0)
while Num_err <= Times(i)
Num_err
fprintf('Eb/N0 = %f\n', EbN0(i));
Trans_data = round(rand(1,N-M)); %产生需要发送的随机数
ldpc_code = mod(Trans_data*G,2); %LDPC编码
Trans_BPSK = 2*ldpc_code-1; %BPSK
%通过高斯信道
sigma = sqrt(1./(2*10^(EbN0(i)/10)*R));
Rec_BPSK = Trans_BPSK + sigma*randn(1,size(G,2));
%LDPC译码
z_hat = func_Dec(Rec_BPSK,sigma,H,max_iter);
x_hat = z_hat(size(G,2)+1-size(G,1):size(G,2));
[nberr,rat] = biterr(x_hat',Trans_data);
Num_err = Num_err+nberr;
Numbers = Numbers+1;
end
Bit_err(i)=Num_err/(N*Numbers);
end
figure;
semilogy(EbN0,Bit_err,'o-r');
xlabel('Eb/N0(dB)');
ylabel('BER');
grid on;
if N == 50
save R_2.mat EbN0 Bit_err
end
if N == 102
save R_1.mat EbN0 Bit_err
end
if N == 204
save R1.mat EbN0 Bit_err
end
if N == 504
save R2.mat EbN0 Bit_err
end
if N == 1008
save R3.mat EbN0 Bit_err
end
0sj_009m
---