资源简介

此算法和程序是用来求解认知无线电协作感知的协作模型的。这种协作模型是通过联盟博弈得到的。上传的程序则通过matlab编程和仿真,实现了通过联盟博弈求解协作模型的融合算法。

资源截图

代码片段和文件信息

clc
clear all
%生成16个SU节点,横坐标在行向量x中,纵坐标在行向量y中。生成1个PU节点,横坐标为x0,纵坐标为y0。
x=3*rand(116)-1.5;
y=3*rand(116)-1.5;
x0=0;
y0=0;
plot(xy‘rx‘x0y0‘bo‘)
grid on;
A={‘1‘‘2‘‘3‘‘4‘‘5‘‘6‘‘7‘‘8‘‘9‘‘10‘‘11‘‘12‘‘13‘‘14‘‘15‘‘16‘};
text(xyA);

%设置各种参数
lambda=13;
m=5;
P0=0.1;
for i=1:1:length(x)
    P(i)=0.01;
end
sigma=10^(-6);
mu=3;
K=1;
alpha=0.1;

%求各节点的Pm(i)和Pf(i)
for i=1:1:length(x)
    Pf0=gammainc(mlambda/2)/gamma(m);
    Pf(i)=Pf0;
    sum0=0;
    sum1=0;
    d(i)=sqrt((x(i)-x0)^2+(y(i)-y0)^2)*1000;
    h(i)=K/d(i)^mu;
    snr(i)=P0*h(i)/sigma^2;
    for n=0:1:m-2
        sum0=sum0+1/factorial(n)*(lambda/2)^n;
    end
    for n=0:1:m-2
        sum1=sum1+1/factorial(n)*(lambda*(snr(i)/2/(1+snr(i))))^n;
    end
    Pm(i)=1-exp(-lambda/2)*sum0-(1+1/snr(i))^(m-1)*(exp(-lambda/2/(snr(i)+1))-exp(-lambda/2)*sum1);
end

%初始化循环判断参数
S={[1][2][3][4][5][6][7][8][9][10][11][12][13][14][15][16]};     %初始化时,每个节点为一个联盟
B=cell(116);                                                                   %另外赋予一个变量,用来作为融合结束的标志
M_max=log10(1-alpha)/log10(1-Pf0);                                              %每个联盟最多的节点数
for i=1:1:length(x)
    for j=1:1:length(x)
        d(ij)=sqrt((x(i)-x(j))^2+(y(i)-y(j))^2)*1000;
        h(ij)=K/d(ij)^mu;
        snr(ij)=P(i)*h(ij)/sigma^2;
        Pe(ij)=1/2*(1-sqrt(snr(ij)/(1+snr(ij))));
    end
end
for i=1:1:length(x)
    Pe(ii)=0;
end

%进行联盟融合
while isequal(BS)==0
    B=S;
    B
for i=1:1:size(S2)-1
    %求出Si这个联盟的检测概率、虚警概率以及效用函数
    if i>size(S2)-1
        break;
    end
    [s]=deal(S{i});                                %把S这个单元数组的第i个,即Si这个联盟的元素赋给s这个向量
    [Pm_max_icoo_i]=max(Pm(s(:)));                %coo_i的值是s这个向量中的坐标,必须要转换成其值才可以
    certer_i=s(coo_i);
    Qm_i=1;
    Qf_i=1;
    for k=1:1:length(s) 
        Qm_i=Qm_i*(Pm(s(k))*(1-Pe(s(k)certer_i))+(1-Pm(s(k)))*Pe(s(k)certer_i));
        Qf_i=Qf_i*((1-Pf0)*(1-Pe(s(k)certer_i))+Pf0*Pe(s(k)certer_i));
    end
    Qf_i=1-Qf_i;
    if Qf_i        CQf_i=-alpha^2*log10(1-(Qf_i/alpha)^2);
    else
        CQf_i=Inf;
    end
    V_i=1-Qm_i-C

评论

共有 条评论