hlayumi的个人空间 https://blog.eetop.cn/hslogic [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

基于多信道协作中继的频谱预留切换机制的相关仿真

热度 10已有 6671 次阅读| 2021-8-6 16:08 |系统分类:芯片设计

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;

end

hold on

plot(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;

end

hold on

plot(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;

end

hold on

plot(1:M,PRO,'r','Linewidth',2);

PRO3 = PRO;

xlabel('次用户个数');

ylabel('切换次数');

legend('中继协作基于最小概率的频谱空洞预留算法','基于最小概率的频谱空洞预留算法','基于最小概率的频谱空洞匹配算法');

save result1.mat M PRO1 PRO2 PRO3


点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 5

    粉丝
  • 0

    好友
  • 1

    获赞
  • 16

    评论
  • 5260

    访问数
关闭

站长推荐 上一条 /2 下一条


小黑屋| 手机版| 关于我们| 联系我们| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-12-26 11:28 , Processed in 0.014325 second(s), 8 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部