基于gamebased算法的动态频谱访问matlab仿真

目录

一、理论基础

二、核心程序

三、测试结果


一、理论基础

        基于GameBased算法的动态频谱访问是一种频谱共享方法,该方法采用博弈论来协调多个用户之间的频谱访问。

       博弈论是一种研究多个参与者在交互过程中如何决策以达成均衡的理论。在动态频谱访问中,每个用户都被视为一个参与者,他们通过选择不同的频谱来最大化自己的收益。每个用户的收益可以是数据传输速率、信号质量等,取决于其选择的频谱。

基于GameBased算法的动态频谱访问通常包括以下步骤:

  1. 定义博弈模型:定义参与者、策略空间和收益函数。参与者是用户,策略空间是可供选择的频谱,收益函数是用户选择某个频谱后的收益。
  2. 选择频谱:每个用户根据博弈模型选择最优的频谱,以最大化自己的收益。
  3. 更新博弈模型:根据当前频谱使用情况更新博弈模型,例如调整收益函数或增加新的参与者。
  4. 重复步骤2和3,直到达到均衡状态。

       在基于GameBased算法的动态频谱访问中,数学公式通常用于描述博弈模型。以下是一些常用的数学公式:

  1. 收益函数:用户选择某个频谱后的收益通常用一个数学函数来表示,例如速率函数、信噪比函数等。
  2. 策略空间:可供用户选择的频谱通常用一个数学集合来表示,例如{1, 2, 3, 4, 5}表示五个可选的频谱。
  3. 概率分布:在博弈模型中,每个用户选择的频谱的概率分布可以用一个数学公式来表示,例如均匀分布、正态分布等。
  4. 均衡状态:博弈模型中的均衡状态通常用一个数学公式来表示,例如纳什均衡、帕累托最优等。

        总之,基于GameBased算法的动态频谱访问是一种有效的频谱共享方法,它通过采用博弈论来协调多个用户之间的频谱访问,提高了频谱利用率和用户满意度。数学公式在其中的作用是用来描述博弈模型,帮助用户做出最优的决策。

       随着越来越多的新型无线应用,对频谱资源的需求越来越大。在这种情况下,这是举世公认的认知无线电的出现已经成为一种很有前途的方式解决频谱资源有限的问题。在认知无线电网络(CRN)中,未经授权的用户,在次要用户对主要用户的干扰在可接受水平的情况下,允许动态访问频谱。考虑的场景和系统假设:

      我们考虑一个动态频谱接入网,它由一个主用户对和两个辅助用户组成。具体地说,我们将主发射机和接收机分别表示为pu t和pur。两个次要用户(记作A和B)将它们的包传输到认知基站(CBS)。该配置可以扩展到多辅助用户,这不是本文的重点。此外,还有一个窃听者,记作E,试图拦截主传输。假设每个节点都有一个全向天线。

       将节点间信道增益建模为独立的复高斯随机变量。更具体地说,链路的瞬时信道系数P U t − P Ur, P U t − E, A − E, B − E, B −P Ur, A − P Ur, B − CBS, A − CBS被独立的表示为hp, hP E, hAE, hBE, hBP , hAP , hB, hA。独立的加性高斯白噪声在P Ur, E, CBS对A和B来说表示为np, ne, nA, nB, 方差为σ2p, σ2e,σ2A, σ2B,我们表示用户的发射功率A (or B) 为Ppu and Psu。在具有相同的优先级情况下,合理的假设次要用户A和B具有相同的传输能力。

       针对频谱覆盖系统的物理层安全问题,提出了一种基于游戏的干扰方法。为了全面捕捉主用户服务的特点,采用了连续时间马尔可夫链,从而清晰地构建了信道状态转换。二次系统干扰合作的激励因素是调整一次用户的负载因子。采用基于神经网络的干扰方法,不需要对窃听者的CSI进行检测。此外,还设计了概率干扰机制,为游戏参与者提供了更多的自由度。

二、核心程序

.......................................

hP2  = 0.5;
hPE2_= 0.5;
hA2  = 0.5;
hB2  = 0.5;
hAE2 = 0.5;
hBE2 = 0.5;
hAP  = 0.1;
hBP  = 0.1;

SNR  = [6:2:30];
hPE2_= [0.1:0.1:0.9];
dA   = 0.9;
dB   = 0.9;
dP   = 0.9;
dE   = 0.9;
Ppu  = 4;
c    = 0.2;


p_   = zeros(size(hPE2_));
Prate = zeros(size(hPE2_));
for i = 1:length(hPE2_)
    Psu_tmp = 3; 
    hPE2 = hPE2_(i);
    hi   = [hA2,hB2];
    di   = [dA,dB];
    R1   = max(log2(1+Ppu*hP2/dP) - log2(1+Ppu*hPE2/(Psu_tmp*hAE2 + Psu_tmp*hBE2 + dE)),0);
    R2   = max(log2(1+Ppu*hP2/dP) - log2(1+Ppu*hPE2/(dE)),0);
    gamma= max([hi./di]);
    %干扰信号由概率pj
    tmps = 0;
    tmps2= 0;
    for jj = 1:5000
        pj      = 0.8+rand/5;
        up_uplp = 0.18;
        pi1     = up_uplp;
        pi2     = (1-up_uplp)*(1-pj); 
        pi3     = (1-up_uplp)*pj; 
        Up      = pi2*R2 + pi3*R1;
        Rsu     = max([1+Psu_tmp*hi./di]);
        Us      = pi1*Rsu - 2*c*Psu_tmp*pi3;
        %根据us反推p,Psu最大的时候,对应的Us的值
        Up      = Us;
        PP      = Up/((1-pj)*R2 + pj*(log2(1+Ppu*hP2/dP)-log2(1+Ppu*hPE2/(Psu_tmp*hAE2 + Psu_tmp*hBE2 + dE))));
        tmps    = abs(PP);
        Px(jj)  = (1-tmps)/tmps;
        Psuss   = max(1/(2*log(2)*c*Px(jj)*pj) - 1/gamma,0);
        %计算Secondary users’ utility
        R       = max(log2(1+Ppu*hP2/dP) - log2(1+Ppu*hPE2/(Psuss*hAE2 + Psuss*hBE2 + dE)),0);
        Rsu     = max(log2(1+Psuss*hi(1)./di(1)),log2(1+Psuss*hi(2)./di(2)));
        Us      = (pi1*Rsu - 2*c*Psu_tmp*pi3);
        tmps2   = tmps2+1+Us;
    end
    tmps2   = tmps2/5000;
    Prate(i) = tmps2;
end

figure;
plot(hPE2_,Prate,'b-o');
hold on


%下面是简化后的power controller
Prate = zeros(size(hPE2_));
for i = 1:length(hPE2_)
    Psu_tmp = 3; 
    hPE2 = hPE2_(i);
    hi   = [hA2,hB2];
    di   = [dA,dB];
    R1   = max(log2(1+Ppu*hP2/dP) - log2(1+Ppu*hPE2/(Psu_tmp*hAE2 + Psu_tmp*hBE2 + dE)),0);
    R2   = max(log2(1+Ppu*hP2/dP) - log2(1+Ppu*hPE2/(dE)),0);
    gamma= max([hi./di]);
    %干扰信号由概率pj
    tmps = 0;
    tmps2= 0;
    for jj = 1:5000
        pj      = 0.8+rand/5;
        up_uplp = 0.18;
        pi1     = up_uplp;
        pi2     = (1-up_uplp)*(1-pj); 
        pi3     = (1-up_uplp)*pj; 
        Up      = pi2*R2 + pi3*R1;
        Rsu     = max([1+Psu_tmp*hi./di]);
        Us      = pi1*Rsu - 2*c*Psu_tmp*pi3;
        Up      = Us;
        PP      = Up/((1-pj)*R2 + pj*(log2(1+Ppu*hP2/dP)-log2(1+Ppu*hPE2/(Psu_tmp*hAE2 + Psu_tmp*hBE2 + dE))));
        tmps    = abs(PP);
        Px(jj)  = (1-tmps)/tmps;
        Psuss   = max(1/(2*log(2)*c*Px(jj)*pj) - 1/gamma,0);
        %计算Secondary users' utility
        Rsu     = max(log2(1+Psuss*hi(1)./di(1)),log2(1+Psuss*hi(2)./di(2)));
        Rsu     = max([1+Psuss*hi./di]);
        Us      = (pi1*Rsu - 2*c*Psu_tmp*pi3);
        tmps2   = tmps2+1+Us;
    end
    tmps2   = tmps2/5000;
    Prate(i) = tmps2;
end
 
.......................................................

三、测试结果

 A01-176

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

fpga和matlab

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值