目录
1.算法仿真效果
2.算法涉及理论知识概要
2.1 混沌映射
2.2 基于混沌映射的LDPC编译码
3.MATLAB核心程序
4.完整算法代码文件获得
1.算法仿真效果
matlab2022a仿真结果如下(完整代码运行后无水印):
仿真操作步骤可参考程序配套的操作视频。
2.算法涉及理论知识概要
在现代通信系统中,信道编码是提高通信可靠性的关键技术之一。低密度奇偶校验(LDPC)码作为一种性能接近香农极限的线性分组码,在各种通信系统中得到了广泛应用。然而,传统的 LDPC 码在某些复杂信道环境下性能仍有待提高。混沌映射由于其具有对初始条件敏感、遍历性和随机性等特点。为了进一步提升LDPC码的抗干扰能力,引入混沌映射是一种有效的方法。混沌系统具有对初始条件敏感、遍历性和伪随机性等特性,将其生成的二进制序列与原始数据进行异或操作,再进行LDPC编码,能够增强数据的随机性和抗干扰能力,提高通信系统的可靠性。
2.1 混沌映射
混沌映射是一种确定性的非线性动力学系统,它能够产生看似随机的序列。常见的混沌映射有 Logistic映射、Tent映射等。Logistic映射的定义为:
混沌序列具有以下特性:
对初始条件敏感:初始条件的微小变化会导致混沌序列的巨大差异。
遍历性:混沌序列能够在其取值范围内均匀遍历。
随机性:混沌序列具有类似随机序列的统计特性。
2.2 基于混沌映射的LDPC编译码
具体步骤如下:
1.选择合适的混沌映射,如Logistic映射,并确定初始条件x0和控制参数μ;
2.生成长度为N的混沌序列 {xn}n=0N−1;
3.对混沌序列进行量化处理,将其映射到有限集合 {0,1} 上,得到二进制序列 {bn}n=0N−1;其过程如下:
4.根据二进制序列对待编码的数据进行异或;其过程如下:
5.将异或后的数据进行LDPC编码;
6.进行LDPC译码;
7.将译码后的数据和混沌序列产生的二进制数据进行异或,恢复出初始的发射数据。
基于混沌映射的LDPC信道编译码方法,通过将原始数据与混沌二进制序列进行异或操作,再进行LDPC编码,有效地提高了通信系统的抗干扰能力和安全性。该方法结合了混沌系统的特性和 LDPC码的优势,在复杂的信道环境下具有良好的性能。
3.MATLAB核心程序
.......................................................................while Num_err <= TJL(i) fprintf('SNR = %f\n', SNR(i));Num_errTrans_data = round(rand(N-M,1)); %产生需要发送的随机数% 混沌映射生成序列chaos_seq = logistic_map(mu, x0, N-M);% 将混沌序列二值化chaos_bits = (chaos_seq > 0.5);[ldpc_code,newH] = func_Enc(scrambled_bits',H); %LDPC编码u = [ldpc_code;scrambled_bits']; %LDPC编码Trans_BPSK = 2*u-1; %BPSK%LDPC译码 [vhat,nb_iter] = func_Dec(Rec_BPSK,newH,N0,Max_iter,mu);descrambled_bits = bitxor(vhat(M+1:N), chaos_bits);endBit_err(i) = Num_err/(N*Numbers);
endfigure;
semilogy(SNR,Bit_err,'o-');
xlabel('SNR(dB)');
ylabel('BER');
grid on;
hold on;
if Max_iter==1save data1.mat SNR Bit_err
end
if Max_iter==2save data2.mat SNR Bit_err
end
if Max_iter==5save data5.mat SNR Bit_err
end
if Max_iter==20save data20.mat SNR Bit_err
end
0X_085m
4.完整算法代码文件获得
V