m基于GA遗传优化的多因素加权竞价博弈频谱分配算法matlab仿真

简介: m基于GA遗传优化的多因素加权竞价博弈频谱分配算法matlab仿真

1.算法描述

   假设有M个用户均为MIMO Full Duplex,N个频率,1<N<M,设计算法实现M个用户与N个频率的匹配。

   由于在一个MIMO系统中,用户数量M大于可用的频谱个数N,因此,必有一部分用户存在频谱共享的问题。目前,现有的关于频谱分配的方法主要有基于竞价的分配方法,基于博弈论的分配方法,现有资料,主要都是这两种方法。下面针对这个问题,提出如下的改进方案:

   这个改进方案,命名为基于改进遗传优化算法的多因素加权竞价博弈频谱分配算法。

   这里,有别于传统的频谱分配方法,这里的分配方法,考虑了多种因素,我们分别假设为y1,y2,y3,。。。。。yn,并通过遗传优化算法,计算一种分配方案,即M个用户分配到N个频谱上, 分别计算以不同因素进行划分所得到的效益值V1,V2,V3,。。。。。Vn,,最后将这将这n个因素进行加权,得到其综合效益值:

根据遗传优化算法流程可知,其详细步骤如下所示:

   步骤一:选择问题解的一个编码,给出一个有N个染色体的初始群体。编码的主要功能为确定用何种码制,然后将问题参数编码形成基因码链,每一个码链代表一个个体,表示优化问题的一个解。 根据编码方式不同可以分为二进制编码和实数编码两种类型,其中二进制编码的优势在于编码方式简单,便于遗传算法的交叉和编码操作。

   步骤二:对群体中的每一个染色体,计算它的适应函数值。适应函数值为群体进化时的选择提供了依据,一般来说适应度越高,解的素质越好。适应度函数可以根据目标函数而定。

   步骤三:若停止规则满足,则算法停止,否则计算概率P,并以此概率分布,从旧的种群pop(t)中随机选取N个染色体构成一个新的种群。选择操作常见的操作方式有比例 选择和排序选择方式。

    步骤四:通过交叉,得到N个染色体的交叉集合。交叉的主要功能从种群中随机选择两个染色体,按一定的概率进行基因交换,交换位置的选取是随机的。

   竞价和博弈相结合的联合分配方法;

image.png

    值最大的用户,有先分配频谱资源,值最小的,则根据实际频谱资源情况,进行共用某一相同的频谱资源。

2.仿真效果预览
matlab2022a仿真结果如下:

2.png
3.png

3.MATLAB核心程序

clear;
close all;
warning off;
addpath(genpath(pwd));
K=20;           %用户对数
N=2;           %收发天线数
INR_dB=5;INR=db2pow(5);
eta=INR/N;     %用户对间的干扰
SI=db2pow(20); %自干扰
u=1;           %weighted
k = db2pow(-40);
beta = db2pow(-40);
 
times=5;
SNR_dB= -10:10:50;
rho_real=db2pow(SNR_dB)/N;
sum_rate_HD=zeros(1,length(rho_real));
sum_rate_FD=zeros(1,length(rho_real));
sum_rate_HD_TDMA=zeros(1,length(rho_real));
sum_rate_FD_TDD=zeros(1,length(rho_real));
 
for tt=1:times
    tt
    %通信信道
    H_cha= rayleigh( N,N,2*K);
    %自干扰信道
    H_sel= rayleigh( N,N,2*K);
    %用户间干扰信道
    H_int= rayleigh( N,N,8*K);
    
    Rate_HD=zeros(1,length(rho_real));
    Rate_HD_TDMA=zeros(1,length(rho_real));
    Rate_FD=zeros(1,length(rho_real));
    Rate_FD_TDD=zeros(1,length(rho_real));
    
    i=1;
    for rho=rho_real
%               rho
        V=right_singular(H_cha,2*K);
        [ Rate_HD_get ] = HD_MIMO_interference(N,H_int,H_cha,H_sel,V,rho,eta,beta,k,u ,K);
        Rate_HD(i)=Rate_HD_get;
        [ Rate_FD_get ] = FD_MIMO_interference(N,H_int,H_cha,H_sel,V,rho,eta,SI,beta,k,u ,K);
        Rate_FD(i)=Rate_FD_get;
        i=i+1;
    end
   sum_rate_HD=sum_rate_HD+Rate_HD;
   sum_rate_FD=sum_rate_FD+Rate_FD;
end
 
sum_rate_HD=real(sum_rate_HD/times/2);
sum_rate_FD=real(sum_rate_FD/times);
figure;
semilogy(SNR_dB,sum_rate_FD,'b-^','linewidth',2);
hold on
semilogy(SNR_dB,sum_rate_HD,'b-s','linewidth',2);
grid on;
xlabel('SNR (dB)')
ylabel('sum Rate (b/s/HZ)')
legend('FD','HD')
01-140m
相关文章
|
6月前
|
算法
基于MPPT算法的光伏并网发电系统simulink建模与仿真
本课题基于MATLAB/Simulink搭建光伏并网发电系统模型,集成PV模块、MPPT算法、PWM控制与并网电路,实现最大功率跟踪与电能高效并网。通过仿真验证系统在不同环境下的动态响应与稳定性,采用SVPWM与电流闭环控制,确保输出电流与电网同频同相,满足并网电能质量要求。
|
6月前
|
机器学习/深度学习 算法 数据可视化
基于MVO多元宇宙优化的DBSCAN聚类算法matlab仿真
本程序基于MATLAB实现MVO优化的DBSCAN聚类算法,通过多元宇宙优化自动搜索最优参数Eps与MinPts,提升聚类精度。对比传统DBSCAN,MVO-DBSCAN有效克服参数依赖问题,适应复杂数据分布,增强鲁棒性,适用于非均匀密度数据集的高效聚类分析。
|
7月前
|
传感器 算法 数据挖掘
基于协方差交叉(CI)的多传感器融合算法matlab仿真,对比单传感器和SCC融合
基于协方差交叉(CI)的多传感器融合算法,通过MATLAB仿真对比单传感器、SCC与CI融合在位置/速度估计误差(RMSE)及等概率椭圆上的性能。采用MATLAB2022A实现,结果表明CI融合在未知相关性下仍具鲁棒性,有效降低估计误差。
338 15
|
6月前
|
开发框架 算法 .NET
基于ADMM无穷范数检测算法的MIMO通信系统信号检测MATLAB仿真,对比ML,MMSE,ZF以及LAMA
简介:本文介绍基于ADMM的MIMO信号检测算法,结合无穷范数优化与交替方向乘子法,降低计算复杂度并提升检测性能。涵盖MATLAB 2024b实现效果图、核心代码及详细注释,并对比ML、MMSE、ZF、OCD_MMSE与LAMA等算法。重点分析LAMA基于消息传递的低复杂度优势,适用于大规模MIMO系统,为通信系统检测提供理论支持与实践方案。(238字)
|
6月前
|
机器学习/深度学习 算法 新能源
基于动态非合作博弈的大规模电动汽车实时优化调度电动汽车决策研究(Matlab代码实现)
基于动态非合作博弈的大规模电动汽车实时优化调度电动汽车决策研究(Matlab代码实现)
181 0
|
7月前
|
算法 数据建模 调度
【INC-MPPT】增量导纳算法追踪光伏的最大功率点用于光伏的并网接入研究(Simulink仿真实现)
【INC-MPPT】增量导纳算法追踪光伏的最大功率点用于光伏的并网接入研究(Simulink仿真实现)
191 0
|
6月前
|
机器学习/深度学习 算法 机器人
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
【水下图像增强融合算法】基于融合的水下图像与视频增强研究(Matlab代码实现)
604 0
|
6月前
|
数据采集 分布式计算 并行计算
mRMR算法实现特征选择-MATLAB
mRMR算法实现特征选择-MATLAB
394 2
|
7月前
|
传感器 机器学习/深度学习 编解码
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
MATLAB|主动噪声和振动控制算法——对较大的次级路径变化具有鲁棒性
333 3
|
7月前
|
存储 编解码 算法
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
【多光谱滤波器阵列设计的最优球体填充】使用MSFA设计方法进行各种重建算法时,图像质量可以提高至多2 dB,并在光谱相似性方面实现了显著提升(Matlab代码实现)
239 6

热门文章

最新文章

下一篇
开通oss服务