1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/ZpWZm55t
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
低密度奇偶校验码(Low-Density Parity-Check Codes, LDPC codes)因其优秀的纠错能力和接近香农极限的性能而广泛应用于现代通信系统中。有序统计译码(Ordered Statistics Decoding, OSD)是一种基于概率译码准则的软输入软输出译码方法,它通过排序接收符号的概率值来估计最可能的错误位置,进而纠正错误。在OSD中,偏移参数(ΔΔ)的选择对于译码性能至关重要,因为它影响着错误位置的估计精度。基于遗传优化的LDPC码OSD译码算法最优偏移参数计算,就是利用遗传算法的全局搜索能力来寻找最佳的ΔΔ值,以优化译码性能。
4.部分源码
.........................................................
[V,I] = min(JJ);
bb = phen1(I,:);
N = 2016;
K = 1008;
R = K/N;
%H矩阵
[ H, Hp, Hs ] = func_H();
SNR = 0:0.5:3;
Ber = zeros(1, length(SNR));
Fer = zeros(1, length(SNR));
%译码迭代次数
Iters = 8;
for jj = 1:1:length(SNR)
%仿真帧
Frames = 500;
error1 = 0;
cout = 0;
sigma = sqrt(1/10^(SNR(jj)/10));
for i = 1:1:Frames
[i,SNR(jj) ]
%编码
msg = randi([0, 1], 1, 1008);
msg_encode = func_Encoder(Hs, msg);
%调制
bpsk_encode = 1 - 2.*msg_encode;
%AWGN
bpsk_N = awgn(bpsk_encode,SNR(jj),'measured');
%接收
llr = 2*bpsk_N/(sigma^2);
ydecode = func_OMS( H, llr, bb, Iters );
errs = sum(msg ~= ydecode);
error1 = error1 + errs;
cout = cout + 1;
end
Ber(1, jj) = error1/(K * cout);
end
fitness=mean(Ber);
figure
semilogy(SNR, Ber,'-b^',...
'LineWidth',1,...
'MarkerSize',6,...
'MarkerEdgeColor','k',...
'MarkerFaceColor',[0.2,0.9,0.5]);
xlabel('Eb/N0(dB)');
ylabel('Ber');
title(['OMS,GA优化后的alpha = ',num2str(bb)])
grid on;
save OMS3.mat SNR Ber Error2 bb
0X_053m
---