1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/aJWXm51y
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
在信道条件较好时,通过选择较高的码率,系统可以提高单位时间的数据传输量,从而提高传输效率。而固定码率系统由于码率固定,无法充分利用良好的信道条件。
在信道条件较差时,自适应码率系统通过降低码率保证传输的可靠性,减少重传次数,从而提高实际的有效传输效率。而固定码率系统可能需要大量的重传,导致实际传输效率降低。
基于SNR估计的自适应码率LDPC编译码算法通过动态调整码率,能够根据信道的SNR以及单位时间的数据传输量进行优化。与固定码率LDPC系统相比,自适应码率系统在误码率性能、传输效率和系统吞吐量等方面都具有明显优势。然而,自适应码率系统也增加了系统的复杂度,需要准确的SNR估计和高效的码率切换机制。
4.部分源码
.................................................................
for i = 1:time
i
SNRs= SNR(i);%当前时刻SNR
TT = Throughout(i);%当前时刻待发射数据量
tmps = Rec_BPSK(4097:end);
success = 0;
KKs = [0.92:0.02:1.08];
for j = 1:floor(TT/(Ns-Ms))
x_hat = [z_hat(size(G,2)+1-size(G,1):size(G,2))]';
if length(x_hat)==length(Trans_data{j})%
[nberr,rat] = biterr(x_hat,Trans_data{j});
Num_err = Num_err+nberr;
else%码率识别失败
Num_err = Num_err+length(Trans_data{j});
end
end
%统计误码
errrate(i)=Num_err/(length(Trans_BPSK)-4096)/floor(TT/(Ns-Ms));
%统计传输时间
timess(i) =floor(TT/(Ns-Ms));
end
errrate2=smooth(errrate,16);
timess2=smooth(timess,16);
figure;
subplot(511);
plot(SNR,'LineWidth',2)
hold on
plot(SNRest_,'LineWidth',2)
legend('真实SNR变化','接收端SNR估计值');
xlabel('时间');
title('500个时间单位模拟的SNR变化曲线');
subplot(512);
plot(Throughout,'LineWidth',2)
xlabel('时间');
title('500个时间单位模拟的数据吞吐量变化曲线');
subplot(513);
plot(HR,'LineWidth',2);
xlabel('时间');
title('LDPC码率变化');
subplot(514);
plot(errrate2,'LineWidth',2);
xlabel('时间');
title('误码率');
grid on
subplot(515);
plot(timess2,'LineWidth',2);
title('时间');
ylabel('传输总时间');
grid on
% ylim([0,30]);
save B3.mat SNR Throughout HR errrate2 timess2 SNRest_
0X_080m
---