PROBLEM SETUP:
1) Binary hypothesis testing problem
2) Null hypothesis: S = zeros(10,1)
3) Alternate hypothesis: S = ones(10,1)
4) Probabilistic transition mechanism: Multidimensional Gaussian with mean vector S and covariance matrix equal to scaled identity
5) SNR d2 defined as STQ-1S where Q is the covariance matrix of the multidimensional Gaussian distribution
MATLAB CODE:
clc;
clear all;
close all;
s=ones(10,1);
nos=zeros(10,1);
sigma=[sqrt(20) sqrt(10) sqrt(5)];
imax=10000; %NUMBER OF EXPERIMENTS
threshold=-50:2:50; %THRESHOLD RANGE OF LOG-LIKELIHOOD RATIO(THEORETICAL RANGE FROM -INFINITY TO +INFINITY)
for j=1:length(threshold) %LOOP TO VARY THRESHOLD
numdetect1(j)=0; %NUMBER OF DETECTIONS
numfa1(j)=0; %NUMBER OF FALSE ALARMS
numdetect2(j)=0;
numfa2(j)=0;
numdetect3(j)=0;
numfa3(j)=0;
notst(j)=0; %NUMBER OF TIMES ALTERNATE HYPOTHESIS IS TRUE
notsnt(j)=0; %NUMBER OF TIMES NULL HYPOTHESIS IS TRUE
for i=1:imax %EXPERIMENT NUMBER i
n=randn(10,1);
n1=sigma(1)*n; %GENERATE NOISE FOR i-th EXPT WITH DIFFERNT POWERS CORRESPONDING TO DIFFERENT SNRs
n2=sigma(2)*n;
n3=sigma(3)*n;
sgnlpresent=randi(2)-1; %RANDOM GENERATION OF HYPOTHESES
if sgnlpresent==1
notst(j)=notst(j)+1;
r1=s+n1; %PROBABILISTIC TRANSITION MECHANISM FOR ALTERNATE HYPOTHESIS FOR DIFFERENT SNRs
r2=s+n2;
r3=s+n3;
else
notsnt(j)=notsnt(j)+1;
r1=nos+n1;
r2=nos+n2; %PROBABILISTIC TRANSITITON MECHANISM FOR NULL HYPOTHESIS FOR DIFFERENT SNRs
r3=nos+n3;
end
suffstat1=transpose(r1)*s; %COMPUTE SUFFICIENT STATISTIC FROM RECEIVED OBSERVATIONS
suffstat2=transpose(r2)*s;
suffstat3=transpose(r3)*s; %STATISTIC DERIVED USING BAYE'S MINIMUM RISK ANALYSIS
if suffstat1>threshold(j)
detect1=1;
else %THRESHOLDING FOR DECESION DEVICE
detect1=0;
end
if detect1==1 && sgnlpresent==1
numdetect1(j)=numdetect1(j)+1;
end
if detect1==1 && sgnlpresent==0
numfa1(j)=numfa1(j)+1;
end
pd1(j)=numdetect1(j)/notst(j);
pf1(j)=numfa1(j)/notsnt(j);
if suffstat2>threshold(j)
detect2=1;
else
detect2=0;
end
if detect2==1 && sgnlpresent==1
numdetect2(j)=numdetect2(j)+1;
end %COMPUTING Pr(False Alarm) and Pr(Detection) FOR DIFFERENT SNRs
if detect2==1 && sgnlpresent==0
numfa2(j)=numfa2(j)+1;
end
pd2(j)=numdetect2(j)/notst(j);
pf2(j)=numfa2(j)/notsnt(j);
if suffstat3>threshold(j)
detect3=1;
else
detect3=0;
end
if detect3==1 && sgnlpresent==1
numdetect3(j)=numdetect3(j)+1;
end
if detect3==1 && sgnlpresent==0
numfa3(j)=numfa3(j)+1;
end
pd3(j)=numdetect3(j)/notst(j);
pf3(j)=numfa3(j)/notsnt(j);
end
end
figure(1);
plot(pf1,pd1,pf2,pd2,pf3,pd3,'linewidth',1.5);
title('RECEIVER OPERATING CHARACTERISTICS FOR DIFFERENT VALUES OF SNR');
xlabel('PROBABILITY OF FALSE ALARM');
ylabel('PROBABILITY OF DETECTION');
legend('d2=0.5','d2=1','d2=2');
grid;
ROC PLOT:
SOME PHILOSOPHY:
1) The statistic is derived in a generic framework using Bayes’ criterion. The result can be applied with minor modifications to problems whose null hypothesis, alternate hypothesis and probabilistic transition mechanism follow the model described in the beginning. I have tried this code to detect image signals in the presence of noise and it works properly.
No comments:
Post a Comment