AF协议DF协议对通信性能的影响分析
Posted fpga&matlab
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AF协议DF协议对通信性能的影响分析相关的知识,希望对你有一定的参考价值。
clear all;
SINRO=0.1,T=10^21,k=1.38*10^(-23),refer=0.4,B=10^6,noise=10^(-6),N=50,Pp=10,rr=1.5*10^6;%基本元素的设定,此处的refer值得是第二时隙次用户发送自身信号和主用户信号的功率比,如ps1=(1-refer)ps,ps2=refer*ps
%设定各种信道的信道衰落
K=1,M=15;%规定信道矩阵的大小
V1=10^(-1)/sqrt(3.14/2);%瑞利信道的参数,注意这里不是平均值
V2=10^(-2)/sqrt(3.14/2);
H=15;%Hb表示整个系统程序循环的次数
W=ones(H,N);%每一横排表示一次循环的速率值,不同的纵坐标表示不同的信噪比下系统的速率值
W1=ones(H,N);%case 3 r df模式
W2=ones(H,N);%af模式
Pout=ones(H,N);%case 2 pout
Pout1=ones(H,N);%case 3 pout df模式
Pout2=ones(H,N);%af模式
Gss=random('rayleigh',10^(-1)/sqrt(3.14/2),K,M);%次用户发送端到次用户接收端的信道增益
Gpss=random('rayleigh',10^(-1)/sqrt(3.14/2),K,M);%主用户发送端到次用户发送端的信道增益
Gpp=random('rayleigh',10^(-2)/sqrt(3.14/2),K,M);%主用户发送端到主用户接收端的信道增益
Gsp=random('rayleigh',10^(-1)/sqrt(3.14/2),K,M);%次用户发送端到主用户接收端的信道增益
Gpssd=random('rayleigh',10^(-2)/sqrt(3.14/2),K,M);%主用户发送端到次用户接收端的信道增益
for j=1:1:H
%设定横坐标的范围
SNR=linspace(-10,30,N); %横坐标为信噪比[-10,30]db,SNR=Gss*ps2/(B*noise)
snr=ones(size(SNR)); %snr为信噪比的瓦特表示
for i=1:1:N %SNR到snr的转换
snr(i)=10^(SNR(i)/10);
end%横坐标是次用户接收端的信噪比
%带入公式仿真
%第二种情形的系统速率和中断概率
a=snr.*B*noise;%a=Gss*ps2
ps2=a./Gss(j);
for i=1:1:N
if Gsp(j)*ps2(i)<=T*k*B
ps1(i)=ps2(i)/refer*(1-refer);
rs(i)=B*log2(1+a(i)/(B*noise+Gss(j)*ps1(i)));%rs=B*log2(1+a/b),a=Gss*ps2,b=B*noise+Gss*ps1
temp(i)=ps2(i)/(2^(rr/B)-1);
temp1(i)=-((B^2)*(noise^2))/(2*((temp(i)-ps1(i))^2)*(V1^2));
pout(i)=1-exp(temp1(i));
else
p2o(i)=T*k*B/Gsp(j);%次用户发送自身信号的边界功率
p1o(i)=p2o(i)/refer*(1-refer);
rs(i)=B*log2(1+Gss(j)*p2o(i)/(B*noise+Gss(j)*p1o(i)));
temp(i)=p2o(i)/(2^(rr/B)-1);
temp1(i)=-((B^2)*(noise^2))/(2*((temp(i)-p1o(i))^2)*(V1^2));
pout(i)=1-exp(temp1(i));
end
end
for i=1:1:N
W(j,i)=rs(i);
Pout(j,i)=pout(i);
end
%rs2=ones(size(rs));
%rs2=rs;%把情形二下的速率值付给rs2
%第三种情形的系统速率
a=snr.*B*noise;%a=Gss*ps2
ps2=a./Gss(j);
for i=1:1:N
if Gsp(j)*ps2(i)<=T*k*B %满足对主用户的影响小于特定值
ps1(i)=ps2(i)/refer*(1-refer);
if a(i)/(Pp*Gpssd(j)+B*noise+Gss(j)*ps1(i))>=SINRO%满足次用户的最小通信要求
rs3(i)=B*log2(1+a(i)/(Pp*Gpssd(j)+B*noise+Gss(j)*ps1(i)));%只有同时满足两个条件才能用这个表达式表达。
c=B*log2(1+Gpss(j)*Pp/(B*noise));
d1=1+Gpp(j)*Pp/(B*noise);
d2(i)=Gsp(j)*ps1(i)/(B*noise+Gsp(j)*ps2(i));
e= ps1(i)*Pp*Gpss(j)*Gsp(j)/(B*noise+Pp*Gpss(j));
e1=B*noise*(1+ps1(i)*Gsp(j)/(B*noise+Pp*Gpss(j)))+ps2(i)*Gsp(j);
d3(i)=e/e1;
d(i)=B*log2(d1+d2(i));%df模式
rp(i)=min(c,d(i));
r(i)=rs3(i)+rp(i);
da(i)=B*log2(d1+d3(i));%af模式
rpa(i)=min(c,da(i));
ra(i)=rs3(i)+rpa(i);
% 首先得是df模式主用户的中断概率
if c<d(i)%如果较小的是前者,则主用户的中断概率是一个常数如下
temp4=1;
temp2=(2^(rr/B)-temp4)^2;
temp3=-(temp2*(B^2)*(noise^2))/(2*(Pp^2)*(V1^2));
else
temp4=1+Gsp(j)*ps1(i)/(B*noise+Gsp(j)*ps2(i));
temp2=(2^(rr/B)-temp4)^2;
temp3=-(temp2*(B^2)*(noise^2))/(2*(Pp^2)*(V2^2));
end
%df主用户的中断概率
poutp(i)=1-exp(temp3);
%然后是af模式主用户的中断概率
if c<da(i)%如果较小的是前者,则主用户的中断概率是一个常数如下
temp41=1;
temp21=(2^(rr/B)-temp41)^2;
temp31=-(temp21*(B^2)*(noise^2))/(2*(Pp^2)*(V1^2));
else
temp41=1+d3(i);
temp21=(2^(rr/B)-temp41)^2;
temp31=-(temp21*(B^2)*(noise^2))/(2*(Pp^2)*(V2^2));
end
%af主用户的中断概率
poutpa(i)=1-exp(temp31);
%接下来是次用户的中断概率
temp(i)=ps2(i)/(2^(rr/B)-1);
temp1(i)=-((Pp*Gpssd(j)+B*noise)^2)/(2*((temp(i)-ps1(i))^2)*(V1^2));
pout(i)=1-exp(temp1(i));
%系统的中断概率
poutsys(i)=pout(i)*poutp(i);
poutsysa(i)=pout(i)*poutpa(i);
else%不满足次用户的最小通信要求,即ps2(i)的值太小了
rs3(i)=B*log2(1+SINRO);
refer1=1/refer-1;
ps22=B*noise*SINRO/(Gss(j)*(1-refer1*SINRO));%边界功率值
ps11=ps22/refer*(1-refer);
c=B*log2(1+Gpss(j)*Pp/(B*noise));
d1=1+Gpp(j)*Pp/(B*noise);
d2=Gsp(j)*ps11/(B*noise+Gsp(j)*ps22);
e= ps11*Pp*Gpss(j)*Gsp(j)/(B*noise+Pp*Gpss(j));
e1=B*noise*(1+ps11*Gsp(j)/(B*noise+Pp*Gpss(j)))+ps22*Gsp(j);
d3(i)=e/e1;
%df模式
d=B*log2(d1+d2);
rp(i)=min(c,d);
r(i)=rs3(i)+rp(i);
%af模式
da(i)=B*log2(d1+d3(i));
rpa(i)=min(c,da(i));
ra(i)=rs3(i)+rpa(i);
%df模式主用户的中断概率
if c<d%如果较小的是前者,则主用户的中断概率是一个常数如下
temp4=1;
temp2=(2^(rr/B)-temp4)^2;
temp3=-(temp2*(B^2)*(noise^2))/(2*(Pp^2)*(V1^2));
else
temp4=1+Gsp(j)*ps11/(B*noise+Gsp(j)*ps22);
temp2=(2^(rr/B)-temp4)^2;
temp3=-(temp2*(B^2)*(noise^2))/(2*(Pp^2)*(V2^2));
end
%主用户的中断概率
poutp(i)=1-exp(temp3);
%然后是af模式主用户的中断概率
if c<da(i)%如果较小的是前者,则主用户的中断概率是一个常数如下
temp41=1;
temp21=(2^(rr/B)-temp41)^2;
temp31=-(temp21*(B^2)*(noise^2))/(2*(Pp^2)*(V1^2));
else
temp41=1+d3(i);
temp21=(2^(rr/B)-temp41)^2;
temp31=-(temp21*(B^2)*(noise^2))/(2*(Pp^2)*(V2^2));
end
%af主用户的中断概率
poutpa(i)=1-exp(temp31);
%接下来是次用户的中断概率
temp(i)=ps22/(2^(rr/B)-1);
temp1(i)=-((Pp*Gpssd(j)+B*noise)^2)/(2*((temp(i)-ps11)^2)*(V1^2));
pout(i)=1-exp(temp1(i));
%系统的中断概率
poutsys(i)=pout(i)*poutp(i);
poutsysa(i)=pout(i)*poutpa(i);
end
else%不满足对主用户的影响小于特定值,即ps2(i)的值太大了
p2oo(i)=T*k*B/Gsp(j);%次用户发送自身信号的边界功率
p1oo(i)=p2oo(i)/refer*(1-refer);
rs3(i)=B*log2(1+Gss(j)*p2oo(i)/(Pp*Gpssd(j)+B*noise+Gss(j)*p1oo(i)));
c=B*log2(1+Gpss(j)*Pp/(B*noise));
d1=1+Gpp(j)*Pp/(B*noise);
d2(i)=Gsp(j)*p1oo(i)/(B*noise+Gsp(j)*p2oo(i));
e= p1oo(i)*Pp*Gpss(j)*Gsp(j)/(B*noise+Pp*Gpss(j));
e1=B*noise*(1+p1oo(i)*Gsp(j)/(B*noise+Pp*Gpss(j)))+p2oo(i)*Gsp(j);
d3(i)=e/e1;
%df模式
d(i)=B*log2(d1+d2(i));
rp(i)=min(c,d(i));
r(i)=rs3(i)+rp(i);
%af模式
da(i)=B*log2(d1+d3(i));
rpa(i)=min(c,da(i));
ra(i)=rs3(i)+rpa(i);
%df模式主用户中断概率
if c<d(i)%如果较小的是前者,则主用户的中断概率是一个常数如下
temp4=1;
temp2=(2^(rr/B)-temp4)^2;
temp3=-(temp2*(B^2)*(noise^2))/(2*(Pp^2)*(V1^2));
else
temp4=1+Gsp(j)*p1oo(i)/(B*noise+Gsp(j)*p2oo(i));
temp2=(2^(rr/B)-temp4)^2;
temp3=-(temp2*(B^2)*(noise^2))/(2*(Pp^2)*(V2^2));
end
%主用户的中断概率
poutp(i)=1-exp(temp3);
%af模式主用户中断概率
if c<da(i)%如果较小的是前者,则主用户的中断概率是一个常数如下
temp41=1;
temp21=(2^(rr/B)-temp41)^2;
temp31=-(temp21*(B^2)*(noise^2))/(2*(Pp^2)*(V1^2));
else
temp41=1+d3(i);
temp21=(2^(rr/B)-temp41)^2;
temp31=-(temp21*(B^2)*(noise^2))/(2*(Pp^2)*(V2^2));
end
%主用户的中断概率
poutpa(i)=1-exp(temp31);
%接下来是次用户的中断概率
temp(i)=p2oo(i)/(2^(rr/B)-1);
temp1(i)=-((Pp*Gpssd(j)+B*noise)^2)/(2*((temp(i)-p1oo(i))^2)*(V1^2));
pout(i)=1-exp(temp1(i));
%系统的中断概率
poutsys(i)=pout(i)*poutp(i);
poutsysa(i)=pout(i)*poutpa(i);
end
end
for i=1:1:N
W1(j,i)=r(i);%df模式下系统的容量
W2(j,i)=ra(i);%af模式下系统的容量
Pout1(j,i)=poutsys(i);%df模式下系统的中断概率
Pout2(j,i)=poutsysa(i);%af模式下系统的中断概率
end
end%大循环的结束
for i=1:1:N
r2(i)=mean(W(1:1:H,i));%H次循环的平均值
r3(i)=mean(W1(1:1:H,i));
r3a(i)=mean(W2(1:1:H,i));
Pou(i)=mean(Pout(1:1:H,i));
Pou1(i)=mean(Pout1(1:1:H,i));
Pou1a(i)=mean(Pout2(1:1:H,i));
end
plot(SNR,r2,'o',SNR,r3,'.',SNR,r3a,':');
xlabel('SNR/db');
ylabel('r/(bit/second)');
legend('case2 存/不存','case3 存/存,DF模式','case3 存/存,AF模式');
figure(2)
plot(SNR,Pou,'o',SNR,Pou1,'.',SNR,Pou1a,':');
xlabel('SNR/db');
ylabel('Pout');
legend('case2 存/不存','case3 存/存,DF模式','case3 存/存,AF模式');
D100
以上是关于AF协议DF协议对通信性能的影响分析的主要内容,如果未能解决你的问题,请参考以下文章
现代通信基于matlab协作通信仿真含Matlab源码 1006期