求修改程序的信噪比公式。QQ498299826
要修改的地方为程序最后的信噪比公式,希望懂的人能加我QQ498299826,我花钱也行。程序为:
%仿真程序, opportunistic relay selection 采用固定增益放大转发
%通用式为a+sqrt(b)*randn(1,N),a是均值,b是方差,标准差就等于sqrt(b)
%,X = wgn( L,1,N,'linear','complex');产生长为Lx1的复高斯白噪声,均值为0,功率为N(线性)
%norm(X,'fro')F范数
%"'"矩阵共轭转置,“.'”转置
%复数的模 abs()
clear;
tic;
N=20;%备选的中继个数
delta_h2=1; %各链路的信道增益方差
%默认所有节点处的噪声的功率为1
rT=10^(0.5); %rth=5dB 中断SNR阈值
m=1;%中继发射功率与信源发射功率的比例系数
power=0:5:30; %0-30dB 信源发射功率的范围,数组形式,以dB为单位
OP=size(power);%中断概率数组,各元素为对应信噪比下的中断概率
total=20000;%实验次数(越大越精确但计算耗时也越大)
for j=1:length(power)
PS=10^(power(j)/10);%信源S的发射功率
PR=m*PS;%中继R的发射功率
n=1;
opn=0;
while n<=total
Hsr=[];%S-R链路的
H_sr_norm2=[];%
Hrd=[];%R-D链路的
H_rd_norm2=[];%
for i=1:N
Hsr(i)=wgn(1,1,delta_h2,'linear','complex');%生成每个中继与S之间链路的信道增益系数,均为随机的复高斯变量
H_sr_norm2(i)=(norm(Hsr(i),'fro'))^2; %求上述各变量的模的平方
Hrd(i)=wgn(1,1,delta_h2,'linear','complex');
H_rd_norm2(i)=(norm(Hrd(i),'fro'))^2; %求上述各变量的模的平方
a(i)=H_sr_norm2(i);
b(i)=H_rd_norm2(i);
c(i)=min( a(i),b(i));
end
k=find(c==max(c)); %%relay selection ,k为具有最大的信道增益系数的模平方的中继的标号,即第k个中继被选中,参加后续的转发。
hsrk=Hsr(k);
hrdk=Hrd(k);
X=PS*(norm( hsrk,'fro'))^2;
Y=PR*(norm(hrdk,'fro'))^2;
sinr=X*Y/(X+Y+1);%目的节点的接收信噪比
if sinr<rT
opn=opn+1;
end
n=n+1;
end
OP(j)=opn/total;
end
semilogy(power,OP,'m*-.');
toc;
要修改的地方为程序最后的信噪比公式,希望懂的人能加我QQ498299826,我花钱也行。程序为:
%仿真程序, opportunistic relay selection 采用固定增益放大转发
%通用式为a+sqrt(b)*randn(1,N),a是均值,b是方差,标准差就等于sqrt(b)
%,X = wgn( L,1,N,'linear','complex');产生长为Lx1的复高斯白噪声,均值为0,功率为N(线性)
%norm(X,'fro')F范数
%"'"矩阵共轭转置,“.'”转置
%复数的模 abs()
clear;
tic;
N=20;%备选的中继个数
delta_h2=1; %各链路的信道增益方差
%默认所有节点处的噪声的功率为1
rT=10^(0.5); %rth=5dB 中断SNR阈值
m=1;%中继发射功率与信源发射功率的比例系数
power=0:5:30; %0-30dB 信源发射功率的范围,数组形式,以dB为单位
OP=size(power);%中断概率数组,各元素为对应信噪比下的中断概率
total=20000;%实验次数(越大越精确但计算耗时也越大)
for j=1:length(power)
PS=10^(power(j)/10);%信源S的发射功率
PR=m*PS;%中继R的发射功率
n=1;
opn=0;
while n<=total
Hsr=[];%S-R链路的
H_sr_norm2=[];%
Hrd=[];%R-D链路的
H_rd_norm2=[];%
for i=1:N
Hsr(i)=wgn(1,1,delta_h2,'linear','complex');%生成每个中继与S之间链路的信道增益系数,均为随机的复高斯变量
H_sr_norm2(i)=(norm(Hsr(i),'fro'))^2; %求上述各变量的模的平方
Hrd(i)=wgn(1,1,delta_h2,'linear','complex');
H_rd_norm2(i)=(norm(Hrd(i),'fro'))^2; %求上述各变量的模的平方
a(i)=H_sr_norm2(i);
b(i)=H_rd_norm2(i);
c(i)=min( a(i),b(i));
end
k=find(c==max(c)); %%relay selection ,k为具有最大的信道增益系数的模平方的中继的标号,即第k个中继被选中,参加后续的转发。
hsrk=Hsr(k);
hrdk=Hrd(k);
X=PS*(norm( hsrk,'fro'))^2;
Y=PR*(norm(hrdk,'fro'))^2;
sinr=X*Y/(X+Y+1);%目的节点的接收信噪比
if sinr<rT
opn=opn+1;
end
n=n+1;
end
OP(j)=opn/total;
end
semilogy(power,OP,'m*-.');
toc;