1.完整项目描述和程序获取
>面包多安全交易平台:https://mbd.pub/o/bread/ZJWVmZ1w
>如果链接失效,可以直接打开本站店铺搜索相关店铺:
>如果链接失效,程序调试报错或者项目合作也可以加微信或者QQ联系。
2.部分仿真图预览
3.算法概述
利用斐波那契数列的特点,提出了一种准循环低密度奇偶校验码(QC-LDPC)码的编码器设计方法.该 编码器设计利用了斐波那契数列的一种顺序排列方法,构造的校验矩阵H不含四线循环,具有准循环结构, 节省了校验矩阵存储空间,对码长和码率参数的设计具有较好的灵活性.该编码器算法复杂度与码长成线性 关系,易于编码.仿真结果表明,在加性高斯白噪声信道条件下,该编码方案具有优于阵列LDPC码的性能.
4.部分源码
............................................................
R = 0.5;%设置码率为1/2;
N = 354;%设置奇偶校验矩阵大小
M = N*R;
EbN0 = 0:1:4; %设置Eb/N0;*
lends = [1000,750,500,450,400,350,300,250,200,150,100,50]/2;
Max_iter = 50; %最大迭代次数*
%产生奇偶校验矩阵
H = fbnq(M,N,3,59);%3:3-6; 4:4-8; 5:5-10
for i=1:length(EbN0)
i
Bit_err(i) = 0; %设置误码率参数
Num_err = 0; %蒙特卡洛模拟次数
Numbers = 0; %误码率累加器
iter_moy_temp = [];%叠加寄存器
while Num_err <= lends(i)
fprintf('Eb/N0 = %f\n', EbN0(i));
Num_err
Trans_data = round(rand(N-M,1)); %产生需要发送的随机数
[ldpc_code,newH] = func_Enc(Trans_data,H); %LDPC编码
u = [ldpc_code;Trans_data]; %LDPC编码
Trans_BPSK = 2*u-1; %BPSK
%通过高斯信道
N0 = 2*10^(-EbN0(i)/10);
Rec_BPSK = awgn(Trans_BPSK,EbN0(i),'measured');
%LDPC译码
[vhat,nb_iter] = func_Dec(Rec_BPSK,newH,N0/2,Max_iter);
iter_moy_temp(end+1) = nb_iter;
[nberr,rat] = biterr(vhat',u);
Num_err = Num_err+nberr;
Numbers = Numbers+1;
end
Bit_err(i) = Num_err/(N*Numbers);
end
figure;
semilogy(EbN0,Bit_err,'o-');
xlabel('Eb/N0(dB)');
ylabel('BER');
grid on;
save FBNQ36.mat EbN0 Bit_err
14_011_m