天天看點

【頻譜共享】基于認知無線電的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.相關算法課題及應用

繼續閱讀