频谱空洞预留算法的频谱分配Matlab仿真分析

1.软件版本

MATLAB2013a


2.本算法理论知识

基于概率切换和最小化概率切换的频谱切换算法,由于过多的考虑了资源的合理利用,使得次用户的不切换概率并大于等于

【频谱分配】基于频谱空洞预留算法的频谱分配算法的matlab仿真_频谱分配算法

的情况,从而导致对应的次用户的服务质量显著下降,考虑到这个因素,文献[40]提出了一种基于频谱空洞预留机制的频谱分配算法,从而最大程度上保证这些次用户的服务质量。

根据文献所述,当出现授权用户的时候,次用户必须暂停当前所占的行道,并切换到其他的频谱空洞上继续完成未完成的服务。然后,过多的频谱切换会带来很多切换时延,这样就很难保证次用户的服务质量,特别对于一些实时性较强的服务,影响更大。文献[40] 提出的频谱空洞的预留方案使不能保证服务质量的次用户直接使用预留的频谱空洞,不再进行频谱感知、频谱请求等过程,从而最大程度上降低频谱切换时延。

根据文献所述,当空洞上进行通信时实际的不切换概率

【频谱分配】基于频谱空洞预留算法的频谱分配算法的matlab仿真_初始化_02

,如果

【频谱分配】基于频谱空洞预留算法的频谱分配算法的matlab仿真_服务质量_03

大于

【频谱分配】基于频谱空洞预留算法的频谱分配算法的matlab仿真_服务质量_04

,说明用于通信的频谱空洞可以满足次用户的服务质量要求,不需要再给该次用户预留任何频谱空洞;否则,如果

【频谱分配】基于频谱空洞预留算法的频谱分配算法的matlab仿真_服务质量_05

,说明次用户在实际获得的频谱空洞上进行通信时达不到自己的服务质量要求,很可能会出现中断服务等情况,需要为之预留频谱空洞,使它切换到预留频谱空洞上继续完成通信。由此可见,为次用户预留频谱空洞的条件为:

【频谱分配】基于频谱空洞预留算法的频谱分配算法的matlab仿真_频谱分配算法_06

我们假设预留的频谱空洞时间至少可以刚好满足服务质量的要求,从而有:

【频谱分配】基于频谱空洞预留算法的频谱分配算法的matlab仿真_频谱分配算法_07

进一步可以得到:


【频谱分配】基于频谱空洞预留算法的频谱分配算法的matlab仿真_服务质量_08

更进一步可以得到:

【频谱分配】基于频谱空洞预留算法的频谱分配算法的matlab仿真_均匀分布_09

可以得到:

【频谱分配】基于频谱空洞预留算法的频谱分配算法的matlab仿真_服务质量_10

式子为预留因子,当预留因子为0的时候,说明不需要再为次用户的通信预留其他的频谱空洞,当预留因子为1的时候,表示在服务时间内都要在预留频谱空洞上进行通信。通过预留频谱空洞算法,就可以保证次用户通信过程中的服务质量要求,弥补频谱空洞匹配算法的不足,使次用户顺利完成自己的服务。

【频谱分配】基于频谱空洞预留算法的频谱分配算法的matlab仿真_初始化_11

3.核心代码

登录后复制

clc;clear;close all;warning off;RandStream.setDefaultStream(RandStream('mt19937ar','seed',1));addpath 'My_Function\' %自定义函数路径addpath 'My_Figure\'   %仿真结果图保存路径addpath 'My_Result\'   %仿真结果及仿真中间结果数值保存路径%参数化lemda   = 0.2;M       = 50;%用户数量%信道数目N       = 10;lemda   = 1/2000 + (1/200-1/2000)*rand(N,1);%1/2000 ~ 1/200的均匀分布Treqi   = zeros(M,1);PQi     = zeros(M,1);PQi2    = zeros(M,1);PHij    = zeros(M,N);PHij2   = zeros(M,1);betai   = zeros(M,1);for nn = 1:M    nn    TIME    = 100;    NUM     = 0;    %中继信道lemda    lemda2  =  1/1000 + (1/100-1/1000)*rand(N,1);%1/1000 ~ 1/100的均匀分布    for t = 1:TIME        for i = 1:nn            %步骤1:对次用户业务服务质量所要求的PQi等进行初始化,即最小的不发生切换的概率            PQi(i)  = rand(1,1)/2;            %步骤2:次用户SUi的目标切换概率1-PQi            PQi2(i) = 1 - PQi(i);            %步骤3:计算次用户在不同频谱空洞上通信的实际切换概率Phij            Treqi(i) = 10 + (300-10)*rand(1,1);            for j = 1:N                PHij(i,j) = 1-exp(-lemda(j)*Treqi(i));            end            %步骤4:根据Hi,找到切换概率和目标切换概率的差值最小的频谱空洞j            for j = 1:N                Hs1(j) = abs(PQi(i) - exp(-lemda(j)*Treqi(i)));            end            %考虑中继协作,CR用户和中继进行竞争,获得最佳的II值。            for j = 1:N                PHij(i,j) = 1-exp(-lemda2(j)*Treqi(i));            end            for j = 1:N                Hs2(j) = abs(PQi(i) - exp(-lemda2(j)*Treqi(i)));            end            Hss = [Hs1,Hs2];            [VV,II] = min(Hss);                        %步骤5:把频谱控制j分配给对应的次用户i            lemdas   = [lemda;lemda2];            H(i)     = Hss(II);%将最佳的空洞j分配给次用户i            %步骤6:计算次用户SUi在频谱空洞j上通信的不切换概率            PHij2(i) =1-exp(-lemdas(II)*Treqi(i));            %步骤7:比较1-Phij和PQi的大小,1-Phij > PQi,beta=0,则不需要预留频谱空洞,1-Phij <=            %PQi,beta不等于0,则需要频谱预留            if PHij2(i) > PQi               betai(i) = 0;            else               betai(i) = 1+log(PQi(i))/lemdas(II)/Treqi(i);             end            %步骤8:计算对应的切换次数            if betai(i) ~=0;               NUM = NUM + 1;            end            end    end    PRO(nn) = NUM/TIME;endhold onplot(1:M,PRO,'k','Linewidth',2);PRO1 = PRO;Treqi   = zeros(M,1);PQi     = zeros(M,1);PQi2    = zeros(M,1);PHij    = zeros(M,N);PHij2   = zeros(M,1);betai   = zeros(M,1);for nn = 1:M    nn    TIME    = 100;    NUM     = 0;    for t = 1:TIME        for i = 1:nn            %步骤1:对次用户业务服务质量所要求的PQi等进行初始化,即最小的不发生切换的概率            PQi(i)  = rand(1,1)/2;            %步骤2:次用户SUi的目标切换概率1-PQi            PQi2(i) = 1 - PQi(i);            %步骤3:计算次用户在不同频谱空洞上通信的实际切换概率Phij            Treqi(i) = 10 + (300-10)*rand(1,1);            for j = 1:N                PHij(i,j) = 1-exp(-lemda(j)*Treqi(i));            end            %步骤4:根据Hi,找到切换概率和目标切换概率的差值最小的频谱空洞j            for j = 1:N                Hs(j) = abs(PQi(i) - exp(-lemda(j)*Treqi(i)));            end            %步骤5:把频谱控制j分配给对应的次用户i            [VV,II] = min(Hs);            H(i) = Hs(II);%将最佳的空洞j分配给次用户i            %下面的步骤引入频谱预留的思想,进行切换的改进            %步骤6:计算次用户SUi在频谱空洞j上通信的不切换概率1-Phij            PHij2(i) = 1-(1-exp(-lemda(II)*Treqi(i)));            %步骤7:比较1-Phij和PQi的大小,1-Phij > PQi,beta=0,则不需要预留频谱空洞,1-Phij <=            %PQi,beta不等于0,则需要频谱预留            if PHij2(i) > PQi               betai(i) = 0;            else               betai(i) = 1+log(PQi(i))/lemda(II)/Treqi(i);             end            %步骤8:计算对应的切换次数            if betai(i) ~=0;               NUM = NUM + 1;            end            end    end    PRO(nn) = NUM/TIME;endhold onplot(1:M,PRO,'b','Linewidth',2);PRO2 = PRO;Treqi   = zeros(M,1);PQi     = zeros(M,1);PQi2    = zeros(M,1);PHij    = zeros(M,N);PHij2   = zeros(M,1);betai   = zeros(M,1);for nn = 1:M    nn    TIME    = 100;    NUM     = 0;    for t = 1:TIME        for i = 1:nn            %步骤1:对次用户业务服务质量所要求的PQi等进行初始化,即最小的不发生切换的概率            PQi(i)  = rand(1,1)/2;            %步骤2:次用户SUi的目标切换概率1-PQi            PQi2(i) = 1 - PQi(i);            %步骤3:计算次用户在不同频谱空洞上通信的实际切换概率Phij            Treqi(i) = 10 + (300-10)*rand(1,1);            for j = 1:N                PHij(i,j) = 1-exp(-lemda(j)*Treqi(i));            end            %步骤4:根据Hi,找到切换概率和目标切换概率的差值最小的频谱空洞j            for j = 1:N                Hs(j) = abs(PQi(i) - exp(-lemda(j)*Treqi(i)));            end            %步骤5:把频谱控制j分配给对应的次用户i            [VV,II] = min(Hs);            H(i) = Hs(II);%将最佳的空洞j分配给次用户i            %步骤6:计算次用户SUi在频谱空洞j上通信的切换概率Phij            PHij2(i) = 1-(1-exp(-lemda(II)*Treqi(i)));            %步骤6:计算对应的切换次数            NUM = NUM+PHij2(i);           end    end    PRO(nn) = NUM/TIME;endhold onplot(1:M,PRO,'r','Linewidth',2);PRO3 = PRO;xlabel('次用户个数');ylabel('切换次数');legend('中继协作基于最小概率的频谱空洞预留算法','基于最小概率的频谱空洞预留算法','基于最小概率的频谱空洞匹配算法');save result1.mat M PRO1 PRO2 PRO31.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61.62.63.64.65.66.67.68.69.70.71.72.73.74.75.76.77.78.79.80.81.82.83.84.85.86.87.88.89.90.91.92.93.94.95.96.97.98.99.100.101.102.103.104.105.106.107.108.109.110.111.112.113.114.115.116.117.118.119.120.121.122.123.124.125.126.127.128.129.130.131.132.133.134.135.136.137.138.139.140.141.142.143.144.145.146.147.148.149.150.151.152.153.154.155.156.157.158.159.160.161.162.163.164.165.166.167.168.169.170.171.172.173.174.175.176.177.178.179.180.181.182.183.184.185.186.187.188.189.190.191.192.193.



4.操作步骤与仿真结论

【频谱分配】基于频谱空洞预留算法的频谱分配算法的matlab仿真_频谱空洞预留算法_12


【频谱分配】基于频谱空洞预留算法的频谱分配算法的matlab仿真_服务质量_13


免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删

QR Code
微信扫一扫,欢迎咨询~

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 155-2731-8020
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

手机不正确

公司不为空