📄 pecompute_dist.m
字号:
%pecompute: compute PEP based X,Xhat, K,L,snr,source_relay
% src_rly is a vector indicating who is source relay
%throughout this code we assume sigma_a^2=1;
function [Pe]=pecompute_dist(K,L,X,Xhat,snr,src_rly,Dist0,Dist1,Dist2,m_coef)
%DEBUG= 'I AM IN PECOMPUTE_DIST'
Pe=1;
XXhat=X-Xhat;
RDelta=XXhat'*XXhat;
activenodes=find(src_rly==1);
RDelta2=RDelta;
for anii=1:length(activenodes)
RDelta2(activenodes(anii), activenodes(anii))=RDelta2(activenodes(anii), activenodes(anii))*2;% double the element of source relays
end
for peii=1:L
rr=rank(RDelta*diag(Dist1(:,peii).^(-m_coef))*Dist2(peii)^(-m_coef));
lambda1=sort(abs(eig(RDelta*diag(Dist1(:,peii).^(-m_coef))*Dist2(peii)^(-m_coef))));
for rii=K:-1:K-rr+1
gamaj=snr/4*lambda1(rii)/(K+1)+1;
Pe=Pe*(1/gamaj*exp(1/gamaj)*ei_1(1/gamaj))^1;
% DEBUG= 'I AM IN PECOMPUTE_DIST'
end
end
rr2=rank(RDelta2*diag(Dist0.^(-m_coef)));
lambda2=sort(abs(eig(RDelta2*diag(Dist0.^(-m_coef)))));
for rii=K:-1:K-rr2+1
rii;
Pe=Pe*(1+lambda2(rii)*snr/4)^(-1);
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -