1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/Y5qUkpds
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
LDPC ( Low-density Parity-check,低密度奇偶校验)码是由 Gallager 在1963 年提出的一类具有稀疏校验矩阵的线性分组码 (linear block codes),然而在接下来的 30 年来由于计算能力的不足,它一直被人们忽视。1996年,D MacKay、M Neal 等人对它重新进行了研究,发现 LDPC 码具有逼近香农极限的优异性能。并且具有译码复杂度低、可并行译码以及译码错误的可检测性等特点,从而成为了信道编码理论新的研究热点。
4.部分源码
%%
%开始循环,进行误码率仿真仿真时间~~4小时
for i=1:length(SNR)
i
Bit_err(i) = 0; %设置误码率参数
Num_err = 0; %蒙特卡洛模拟次数
Numbers = 0; %误码率累加器
%信道参数
SNRs = 10^(SNR(i)/10);
%求出方差值
sigma = 1/sqrt(2*SNRs);
%发射功率
% Ptr = 50;%10w
%功率对应的db,dBm = 10 x log[ 功率 mW]
% dbm = 10*log10(1000*Ptr);
while Num_err <= NUMS(i)
fprintf('EbN0 = %f\n', SNR(i));
Num_err
Numbers
%产生需要发送的随机数
Trans_data = round(rand(N-M,1));
%LDPC编码
[ldpc_code,newH] = func_Enc(Trans_data,H);
u = [ldpc_code;Trans_data];
%QPSK映射
z0 = func_QPSK_mod(u);
%发送天线功率
z1 = z0;
%通过微波信道
z = z1 + sigma*randn(size(z1));
%接收并
% H1 = 10^(Gr/20);
zz = func_deMapping(z,length(z));
%译码
[vhatsd,nb_itersd,successsd] = func_Dec(2*zz-1,newH,sigma,Max_iter);
%QPSK逆映射
[nberr,rat] = biterr(vhatsd(M+1:N)',Trans_data);
%LDPC译码
Num_err = Num_err+nberr;
Numbers = Numbers+1;
end
Bit_err(i) = Num_err/(N*Numbers);
end
01-154m