基于遗传算法的64QAM星座图的最优概率整形matlab仿真,对比优化前后整形星座图和误码率

目录

1.算法仿真效果

2.算法涉及理论知识概要

3.MATLAB核心程序

4.完整算法代码文件获得


1.算法仿真效果

matlab2022a仿真结果如下**(完整代码运行后无水印)**:

GA优化过程:

优化前后星座图对比:

(优化后,边缘的星座点会聚集到中心,所以整体看,星座点边缘区域会变小或者消失)

优化前后误码率对比:

仿真操作步骤可参考程序配套的操作视频。

2.算法涉及理论知识概要

64QAM 是一种高阶调制方式,星座图中有 64 个星座点,每个星座点对应 6 比特信息。传统的 64QAM 采用均匀分布。通过改变改变星座图不同位置符号出现的概率,让外圈星座点出现频率降低,有利于减小平均功率,相当于增加了最小欧氏距离,从而有更好的传输性能。这就是我们所说的概率星座整形(PCS)了。它究竟有什么好处呢?

  1. 具有整形增益。

  2. 有望达到更高的传输容量,显著提升频谱效率。

  3. 传输速率可以灵活调整,以完美适配不同的传输信道。

  4. 无须多种支持多种QAM映射,仅使用方形QAM调制,需调整整形系数

PCS的关键在于如何对均匀概率的输出映射成非均匀概率幅度分布,而且该概率分布还应该是最优的。理论上可以证明Maxwell-Boltzman分布对于方形QAM整形是最优的概率分布。概率星座整形一般使用如下的公式完成:

参数v为整形因子。在本课题中,将通过GA优化算法,搜索最佳的参数v,进一步提升概率整形后的系统性能。以 64QAM 的误码率(BER)作为适应度函数。误码率越低,表明该概率整形因子 对应的星座点概率分布越优。在实际计算时,可通过蒙特卡罗仿真来估计误码率。具体步骤为:依据当前的 计算每个星座点的发送概率,生成大量发送符号,经过加性高斯白噪声(AWGN)信道传输,接收符号并进行解调,统计错误比特数,进而计算误码率。

通过GA算法,获得最优的参数v,以降低 64QAM 的误码率。

3.MATLAB核心程序

复制代码
................................................................
MAXGEN = 15;
NIND   = 20;
Nums   = 1; 
Chrom  = crtbp(NIND,Nums*10);

%sh
Areas = [];
for i = 1:Nums
    Areas = [Areas,[0;0.25]];% 优化概率整形参数v
end
FieldD = [rep([10],[1,Nums]);Areas;rep([0;0;0;0],[1,Nums])];

gen   = 0;
for a=1:1:NIND 
    %计算对应的目标值
    X       = rand(1,Nums)/10;%初始值
    [epls]  = func_obj(X);
    E       = epls;
    Js(a,1) = E;
end

Objv  = (Js+eps);
gen   = 0; 

%%
while gen < MAXGEN  
      gen
      Pe0 = 0.998;
      pe1 = 0.002; 

      FitnV=ranking(Objv);    
      Selch=select('sus',Chrom,FitnV);    
      Selch=recombin('xovsp', Selch,Pe0);   
      Selch=mut( Selch,pe1);   
      phen1=bs2rv(Selch,FieldD);   
 
      for a=1:1:NIND  
          X     = phen1(a,:);
          %计算对应的目标值
          [epls]= func_obj(X);
          E       = epls;
          JJ(a,1) = E;
      end 
      
      Objvsel=(JJ);    
      [Chrom,Objv]=reins(Chrom,Selch,1,1,Objv,Objvsel);   
      gen=gen+1; 

      %保存参数收敛过程和误差收敛过程以及函数值拟合结论

      Error(gen) = mean(JJ) ;
      [V,I]      = min(JJ);
 
      VVV(gen)   = phen1(I,:);
      VVV2(gen)  = mean2(phen1) ;
end 

figure;
plot(Error,'linewidth',2);
grid on
xlabel('迭代次数');
ylabel('遗传算法优化过程');
legend('Average fitness');

[V,I] = min(JJ);
VV     = phen1(I,:);


save GA_OPT.mat Error VV 
0X_076m

4.完整算法代码文件获得

V

相关推荐
IT猿手21 小时前
基于控制障碍函数的多无人机编队动态避障控制方法研究,MATLAB代码
开发语言·matlab·无人机·openclaw·多无人机动态避障路径规划·无人机编队
Evand J1 天前
【MATLAB复现RRT(快速随机树)算法】用于二维平面上的无人车路径规划与避障,含性能分析与可视化
算法·matlab·平面·无人车·rrt·避障
s09071361 天前
【声纳成像】基于滑动子孔径与加权拼接的条带式多子阵SAS连续成像(MATLAB仿真)
开发语言·算法·matlab·合成孔径声呐·后向投影算法·条带拼接
IT猿手1 天前
基于 ZOH 离散化与增量 PID 的四旋翼无人机轨迹跟踪控制研究,MATLAB代码
开发语言·算法·matlab·无人机·动态路径规划·openclaw
IT猿手1 天前
基于控制障碍函数(Control Barrier Function, CBF)的无人机编队三维动态避障路径规划,MATLAB代码
开发语言·matlab·无人机·动态路径规划·无人机编队
SugarFreeOixi1 天前
MATLAB绘图风格记录NP类型
python·matlab·numpy
IT猿手1 天前
基于 CBF 的多无人机编队动态避障路径规划研究,无人机及障碍物数量可以自定义修改,MATLAB代码
开发语言·matlab·无人机·动态路径规划
IT猿手1 天前
基于强化学习Q-learning算法的无人机三维路径规划算法原理与实现,MATLAB代码
算法·matlab·无人机·路径规划·动态路径规划
ghie90901 天前
拉普拉斯金字塔图像融合MATLAB仿真程序
人工智能·计算机视觉·matlab
IT猿手1 天前
基于动态三维环境下的Q-Learning算法无人机自主避障路径规划研究,MATLAB代码
算法·matlab·无人机·动态路径规划·多无人机动态避障路径规划