Receiver Detection Characteristics
Receiver Operating Characteristic (ROC) curves are graphical representations of detector efficiency. ROC curves can be constructed using the rocpfa and rocsnr functions.
If you are interested in studying the effect of changing the probability of a false positive on the probability of detection with a fixed SNR, you can use rocsnr. For example, the threshold SNR for the Neumann-Pearson detector for a single sample in real Gaussian noise is approximately 13.5 dB. Use rocsnr to plot the change in detection probability depending on the frequency of false alarms for a given SNR.
T = npwgnthresh(1e-6,1,"real")
rocsnr(T;SignalType="Real")
The ROC curve makes it easy to calculate the probability of detection at a given level of false alarms.
Using rocsnr, it is possible to study the detector operation for various types of received signals with a fixed SNR.
SNR = 13.54;
Pd_real,Pfa_real = rocsnr(SNR,"Pd&Pfa",SignalType="Real",
MinPfa=1e-8);
Pd_coh,Pfa_coh = rocsnr(SNR,"Pd&Pfa",
SignalType="NonfluctuatingCoherent",MinPfa=1e-8);
Pd_noncoh,Pfa_noncoh = rocsnr(SNR,"Pd&Pfa",
SignalType="NonfluctuatingNoncoherent",MinPfa=1e-8);
plot(Pfa_real,Pd_real,label="Real")
plot!(Pfa_coh,Pd_coh,label="Coherent")
plot!(Pfa_noncoh,Pd_noncoh,label="Noncoherent",xscale=:log10,fontfamily="Computer Modern",
titlefontsize=10, guidefontsize=10,legend_position=:outertopright,
legend_foreground_color = :transparent)
xlabel!("False Alarm Probability (Pfa)")
ylabel!("Probability of correct detection (Pd)")
title!("Detection curves for nonflutuating purposes")
The ROC curves clearly demonstrate the superiority of the detection probability for coherent and incoherent detectors over the case with real values.
The rocsnr function takes the SNR vector as input, allowing you to quickly analyze a number of ROC curves.
SNRs = Vector(6:2:12);
rocsnr(SNRs,SignalType="NonfluctuatingNoncoherent")
The graph shows that as the SNR increases, the supports for probability distributions for the null and alternative hypotheses become more divergent. Therefore, with a given probability of a false alarm, the probability of detection increases.
You can explore the probability of detection as an SNR function for a fixed probability of false positive using rocpfa. To get the ROC curves for the Swerling I target model with a false positive probability (1e-6.1e-4.1e-2.1e-1), use
Pfa = [1e-6 1e-4 1e-2 1e-1];
rocpfa(Pfa,SignalType="Swerling1")
Using rocpfa, study the effect of SNR on the probability of detection for a detector using incoherent integration with a false positive probability of 1e-4. Let's assume that the target has a non-oscillating RCS and that you integrate in 5 pulses.
Pd,SNR = rocpfa(1e-4,"Pd&SNR",
SignalType="NonfluctuatingNoncoherent",NumPulses=5);
plot(SNR,Pd,lab="");
xlabel!("SNR (dB)");
ylabel!("Probability of correct detection")
title!("Incoherent detection (accumulation of 5 pulses)")