www.gusucode.com > phased 案例源码 matlab代码程序 > phased/ReceiverOperatingCharacteristicsExample.m

    %% 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');
rocsnr(T,'SignalType','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',...
    'MinPfa',1e-8);
[Pd_coh,Pfa_coh] = rocsnr(SNR,...
    'SignalType','NonfluctuatingCoherent',...
    'MinPfa',1e-8);
[Pd_noncoh,Pfa_noncoh] = rocsnr(SNR,'SignalType',...
    'NonfluctuatingNoncoherent','MinPfa',1e-8);
semilogx(Pfa_real,Pd_real)
hold on
grid on
semilogx(Pfa_coh,Pd_coh,'r')
semilogx(Pfa_noncoh,Pd_noncoh,'k')
xlabel('False-Alarm Probability')
ylabel('Probability of Detection')
legend('Real','Coherent','Noncoherent','location','southeast')
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);
rocsnr(SNRs,'SignalType','NonfluctuatingNoncoherent')
%%
% The graph shows that, as the SNR increases, the supports of
% the probability distributions under the null and alternative hypotheses
% become more disjoint. 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];
rocpfa(Pfa,'SignalType','Swerling1')
%%
% % 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,...
    'SignalType','NonfluctuatingNoncoherent',...
    'NumPulses',5);
figure;
plot(SNR,Pd); xlabel('SNR (dB)');
ylabel('Probability of Detection'); grid on;
title('Nonfluctuating Noncoherent Detector (5 Pulses)');