1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/Zp6akpZq
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
低密度奇偶校验码(Low-Density Parity-Check Codes,LDPC)是一种具有逼近香农限性能的信道编码技术。在现代通信系统中,LDPC 码因其优异的性能而得到了广泛的应用。BP(Belief Propagation)译码算法是 LDPC 码的一种重要译码方法,它通过在 Tanner 图上进行消息传递来实现译码。
4.部分源码
..............................................................
disp('Start......');
for i=1:length(EbN0)
Bit_err(i) = 0;
Num_err = 0;
Numbers = 0; %误码率累加器
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 == 24
save R_2.mat EbN0 Bit_err
end
if N == 50
save R_1.mat EbN0 Bit_err
end
if N == 102
save R0.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_026m
---