function [ output_args ] = ROC( SimuType,varargin )
%UNTITLED Summary of this function goes here
% Detailed explanation goes here
if (nargin<2||cell2mat(varargin)==1)
WantedPfa=0:1:19;
WantedPfa=(WantedPfa*0.0525+0.001);
Type=1;
if (nargin<1)
SimuType=1;
end
elseif(nargin==2&&cell2mat(varargin)~=1)
WantedPfa=19:-1:0;
WantedPfa=0.99*exp(-WantedPfa*0.5);
Type=2;
end
ThresLittletao=[0.77 0.73 0.67];
Lambda=1000;
PowerP=[1000 500 100];
RatioAlfa=200;
DecayExp=2;
AreaA=100;
%第一步,生成合适的Pfa,每调用一次约费时6秒;不专门为固定数量情形进行更改,因为差别实在不大
WantedBigT=zeros(20,3);
WantedBigT(:,1)=GenBigTforPfa(ThresLittletao(1), Lambda, PowerP(1), RatioAlfa, DecayExp, AreaA,WantedPfa');
WantedBigT(:,2)=GenBigTforPfa(ThresLittletao(2), Lambda, PowerP(2), RatioAlfa, DecayExp, AreaA,WantedPfa');
WantedBigT(:,3)=GenBigTforPfa(ThresLittletao(3), Lambda, PowerP(3), RatioAlfa, DecayExp, AreaA,WantedPfa');
ROC11=ROCSimu_WSN(ThresLittletao(1), Lambda, PowerP(1), RatioAlfa, DecayExp, AreaA,SimuType, WantedBigT(:,1));
ROC12=ROCAprox_WSN(ThresLittletao(1), Lambda, PowerP(1), RatioAlfa, DecayExp, AreaA,SimuType, WantedBigT(:,1));
ROC21=ROCSimu_WSN(ThresLittletao(2), Lambda, PowerP(2), RatioAlfa, DecayExp, AreaA,SimuType, WantedBigT(:,2));
ROC22=ROCAprox_WSN(ThresLittletao(2), Lambda, PowerP(2), RatioAlfa, DecayExp, AreaA, SimuType,WantedBigT(:,2));
ROC31=ROCSimu_WSN(ThresLittletao(3), Lambda, PowerP(3), RatioAlfa, DecayExp, AreaA,SimuType, WantedBigT(:,3));
ROC32=ROCAprox_WSN(ThresLittletao(3), Lambda, PowerP(3), RatioAlfa, DecayExp, AreaA,SimuType, WantedBigT(:,3));
if (Type==1)
plot(ROC11(:,1),ROC11(:,2),'or-');
hold on;
plot(ROC12(:,1),ROC12(:,2),'+b-');
hold on;
plot(ROC21(:,1),ROC21(:,2),'^r-');
hold on;
plot(ROC22(:,1),ROC22(:,2),'*b-');
hold on;
plot(ROC31(:,1),ROC31(:,2),'sr-');
hold on;
plot(ROC32(:,1),ROC32(:,2),'xb-');
legend('Simulation(P0=1000)','Approximation(P0=1000)','Simulation(P0=500)','Approximation(P0=500)','Simulation(P0=100)','Approximation(P0=100)','Location','Best');
else
loglog(ROC11(:,1),ROC11(:,2),'or-');
hold on;
loglog(ROC12(:,1),ROC12(:,2),'+b-');
hold on;
loglog(ROC21(:,1),ROC21(:,2),'^r-');
hold on;
loglog(ROC22(:,1),ROC22(:,2),'*b-');
hold on;
loglog(ROC31(:,1),ROC31(:,2),'sr-');
hold on;
loglog(ROC32(:,1),ROC32(:,2),'xb-');
legend('Simulation(P0=1000)','Approximation(P0=1000)','Simulation(P0=500)','Approximation(P0=500)','Simulation(P0=100)','Approximation(P0=100)','Location','Best');
end
end