天天看点

【频谱共享】基于认知无线电的VCG拍卖机制频谱共享算法的MATLAB仿真

目录

​​1.软件版本​​

​​2.本算法理论知识点​​

​​3.算法具体理论​​

​​4.部分核心代码​​

​​5.仿真演示​​

​​6.本算法写论文思路​​

​​7.参考文献​​

​​8.相关算法课题及应用​​

1.软件版本

matlab2021a

2.本算法理论知识点

VCG拍卖机制、频谱共享

3.算法具体理论

【频谱共享】基于认知无线电的VCG拍卖机制频谱共享算法的MATLAB仿真

4.部分核心代码

clc;
clear;
close all;
warning off;

%参数化
lemda   = 0.2;
M       = 50;%用户数量
%信道数目
N       = 10;
lemda   = 1/2000 + (1/200-1/2000)*rand(N,1);%1/2000 ~ 1/200的均匀分布

% p:次用户传输功率; 
% N0 :信道的噪声功率;
% hi :用户i的发射机和接收机之间的信道系数。 
p  = 10;
No = 1;

P_Arrive= [0.2:0.1:0.5]; 
 
for nn = 1:length(P_Arrive)
    nn
    for mm = 1:M
        mm
        TIME    = 500;
        NUM     = 0;
        %信道lemda
        lemda2  =  1/1000 + (1/100-1/1000)*rand(N,1);%1/1000 ~ 1/100的均匀分布
        hi      = zeros(mm,1);
        for t = 1:TIME
            rng(t);
            %Step 1,算法执行的开始,对参加竞价的次用户数等进行初始化。
            hi   = rand(mm,1);
            hicr = rand(mm,1);
            IIs = [];
            for i = 1:mm
                fail = 1;
                %授权用户出现的概率
                P   = rand;
                P2  = rand;
                P0  = rand;
               DROP1ssss=[];
               if P0 < P_Arrive(nn)
                while fail == 1
                    if P2 < 0.01%有认知用户
                        %Step 2,计算出次用户 i 对频谱 j 的估价vi
                        for j =1:N
                            Vi1(j) = 1 - lemda(j)/(log2(1+hi(i)*p/No));
                            Vi2(j) = 1 - lemda2(j)/(log2(1+hicr(i)*p/No));
                        end
                        %Step 3,计算出每个次用户最终提交的竞标价格bi
                        for mm1 =1:N
                            bi1(j) = Vi1(j) - randn(1);
                            bi2(j) = Vi2(j) - randn(1);
                        end
                        %Step 4,比较每个次用户的估价价格和自己提交的竞价价格的大小,如果估价
                        %价格小于竞标价格,说明频谱 j 不适合次用户 i,返回到 Step 2,否则
                        %直接执行下一步。
                        for mm1 =1:N
                            Vi_bi1(j) = Vi1(j) - bi1(j);
                            Vi_bi2(j) = Vi2(j) - bi2(j);
                        end
                        Vi_bi = [Vi_bi1,Vi_bi2]; 
                    else%无认知用户
                        %Step 2,计算出次用户 i 对频谱 j 的估价vi
                        for j =1:N
                            Vi(j) = 1 - lemda(j)/(log2(1+hi(i)*p/No));
                        end
                        %Step 3,计算出每个次用户最终提交的竞标价格bi
                        for mm1 =1:N
                            bi(j) = Vi(j) - randn(1);
                        end
                        %Step 4,%支付机制Vi_bi
                        for mm1 =1:N
                            Vi_bi(j) = Vi(j) - bi(j);
                        end
                    end
                    %去掉小于0的
                    Ind1 = find(Vi_bi>0);

                    if length(Ind1)<1
                       fail = 1;
                       DROP1ssss =[DROP1ssss,1];  
                    else%没有中断,则选择%Step 5,找出最大的竞标价格及对应的次用户 i。
                       [VV,II] = max(Vi_bi);  
                       fail = 0;
                       DROP1ssss =[DROP1ssss,0];  
                    end 
                end
                DROP1sss(i) = mean(DROP1ssss);
               else
                DROP1sss(i) = 0;   
               end
                
            end
            DROP1ss(t) = mean(DROP1sss);
        end
        DROP1s(mm) = mean(DROP1ss);
    end
    DROP4(nn) = mean(DROP1s);   
end
figure;
plot(100*P_Arrive(1:end),100*DROP4(1:end),'b-o','linewidth',2);

xlabel('授权用户出现的概率');
ylabel('中断概率');
save result3.mat P_Arrive DROP4      

5.仿真演示

【频谱共享】基于认知无线电的VCG拍卖机制频谱共享算法的MATLAB仿真

6.本算法写论文思路

认知无线电的历史和相关频谱共享算法,

拍卖理论和在频谱共享算法中的应用,

一种基于VCG拍卖机制的新型频谱共享算法,

仿真实现基于VCG拍卖机制的新型频谱共享算法。

7.参考文献

8.相关算法课题及应用

继续阅读