Engee documentation
Notebook

Receiver detection characteristics

Receiver Operating Characteristic (ROC) curves are graphical representations of detector performance. ROC curves can be plotted using the rocpfa and rocsnr functions.

If you are interested in studying the effect of varying the false alarm rate on the probability of detection at a fixed SNR, you can use rocsnr. For example, the threshold SNR for a Neyman-Pearson detector for a single sample in real Gaussian noise is approximately 13.5 dB. Use rocsnr to plot the change in detection probability as a function of false alarm rate at this SNR.

In [ ]:
T = npwgnthresh(1e-6,1,"real")
rocsnr(T;SignalType="Real")
Out[0]:

The ROC curve makes it easy to read the probability of detection for a given false alarm rate.

With rocsnr you can investigate detector performance for different types of received signals at a fixed SNR.

In [ ]:
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!("вероятность ложной тревоги (Pfa)")
ylabel!("Вероятность правильного обнаружения (Pd)")
title!("Кривые обнаружения для нефлутуирующей цели")
Out[0]:

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 a vector of SNR as input, allowing a number of ROC curves to be quickly analysed.

In [ ]:
SNRs = Vector(6:2:12);
rocsnr(SNRs,SignalType="NonfluctuatingNoncoherent")
Out[0]:

The graph shows that as the SNR increases, the support of the probability distributions for the null and alternative hypotheses become more divergent. Therefore, for a given false alarm probability, the probability of detection increases.

You can examine the probability of detection as a function of SNR for a fixed false alarm probability using rocpfa. To obtain ROC curves for the Swerling I target model at false alarm probability (1e-6,1e-4,1e-2,1e-1), use the

In [ ]:
Pfa = [1e-6 1e-4 1e-2 1e-1];
rocpfa(Pfa,SignalType="Swerling1")
Out[0]:

Use rocpfa to study the effect of SNR on detection probability for a detector using incoherent integration with a false alarm probability of 1e-4. Assume that the target has an incoherent RCS and that you integrate over 5 pulses.

In [ ]:
Pd,SNR = rocpfa(1e-4,"Pd&SNR",
    SignalType="NonfluctuatingNoncoherent",NumPulses=5);
plot(SNR,Pd,lab=""); 
xlabel!("ОСШ (дБ)");
ylabel!("Вероятность правлиьного обнаружения")
title!("Некогерентное обнаружение (накопление 5 импульсов)")
Out[0]: