Main Content

Receiver Operating Characteristics

Receiver Operating Characteristic (ROC) curves present graphical summaries of a detector's performance. You can generate ROC curves using the rocpfa and rocsnr functions.

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

T = npwgnthresh(1e-6,1,'real');

The ROC curve lets you easily read off the probability of detection for a given false-alarm rate.

You can use rocsnr to examine detector performance for different received signal types at a fixed SNR.

SNR = 13.54;
[Pd_real,Pfa_real] = rocsnr(SNR,'SignalType','real',...
[Pd_coh,Pfa_coh] = rocsnr(SNR,...
[Pd_noncoh,Pfa_noncoh] = rocsnr(SNR,'SignalType',...
hold on
grid on
xlabel('False-Alarm Probability')
ylabel('Probability of Detection')
title('ROC Curve Comparison for Nonfluctuating RCS Target')
hold off

The ROC curves clearly demonstrate the superior probability of detection performance for coherent and noncoherent detectors over the real-valued case.

The rocsnr function accepts an SNR vector input letting you quickly examine a number of ROC curves.

SNRs = (6:2:12);

The graph shows that, as the SNR increases, the supports of the probability distributions under the null and alternative hypotheses become more disjointed. 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 with rocpfa. To obtain ROC curves for a Swerling I target model at false-alarm probabilities of (1e-6,1e-4,1e-2,1e-1), use

Pfa = [1e-6 1e-4 1e-2 1e-1];

Use rocpfa to examine the effect of SNR on the probability of detection for a detector using noncoherent integration with a false-alarm probability of 1e-4. Assume the target has a nonfluctuating RCS and that you are integrating over 5 pulses.

[Pd,SNR] = rocpfa(1e-4,...
plot(SNR,Pd); xlabel('SNR (dB)');
ylabel('Probability of Detection'); grid on;
title('Nonfluctuating Noncoherent Detector (5 Pulses)');

Related Topics