1.算法仿真效果
matlab2022a仿真结果如下(完整代码运行后无水印):
2.算法涉及理论知识概要
LDPC码是一种线性错误修正码,以其接近香农极限的优良性能而被广泛应用于现代通信系统中。NMS译码是一种基于最小平方误差准则的软判决译码方法,其目标是找到一个最可能的码字,使得接收到的信号与该码字之间的欧氏距离最小。NMS译码算法中包含一些关键参数,如归一化因子,这些参数的选择对译码性能有显著影响。
在应用GWO优化LDPC码NMS译码算法的归一化参数时,首先需要定义目标函数,通常为目标函数最小化,例如最小化误码率(BER)或最大化信噪比(SNR)。设归一化参数为γ,则目标函数可以表示为:
GWO算法通过不断迭代更新γ的值,寻找使f(γ)达到最小(或最大,根据目标函数定义)的γ∗。最终,γ∗即为最优归一化参数。
在本课题中,我们选择BER(γ)。
3.MATLAB核心程序
a=2*(1-(t/Iters)); for i=1:Num for j=1:dim r1 = rand; r2 = rand; A1 = 2*a*r1-a;% C1 = 2*r2; % D_alpha = abs(C1*Alpx(j)-xpos(i,j));% X1 = Alpx(j)-A1*D_alpha; % r1 = rand; r2 = rand; A2 = 2*a*r1-a; % C2 = 2*r2; % D_beta = abs(C2*btx(j)-xpos(i,j)); % X2 = btx(j)-A2*D_beta; % r1 = rand; r2 = rand; A3 = 2*a*r1-a; % C3 = 2*r2; % D_delta = abs(C3*dltx(j)-xpos(i,j)); % X3 = dltx(j)-A3*D_delta; % xpos(i,j) = (X1+X2+X3)/3;% if xpos(i,j)>=Lmax(j) xpos(i,j)=Lmax(j); end if xpos(i,j)<=Lmin(j) xpos(i,j)=Lmin(j); end end end end aa = Alpx N = 2016; K = 1008; R = K/N; %H矩阵 [ H, Hp, Hs ] = func_H(); ........................................................... 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(['归一化最小和NMS,GWO优化后的alpha = ',num2str(aa)]) grid on; save NMS4.mat SNR Ber aa 0X_061m
标签:误码率,rand,xpos,r1,r2,灰狼,译码,归一化 From: https://www.cnblogs.com/51matlab/p/18282490