Документация Engee
Notebook

Характеристики обнаружения приемника

Кривые Receiver Operating Characteristic (ROC) представляют собой графические представления эффективности детектора. ROC-кривые можно построить с помощью функций rocpfa и rocsnr.

Если вам интересно изучить влияние изменения вероятности ложного срабатывания на вероятность обнаружения при фиксированном SNR, вы можете использовать rocsnr. Например, пороговый SNR для детектора Неймана-Пирсона для одного образца в реальном гауссовском шуме составляет примерно 13,5 дБ. Используйте rocsnr, чтобы построить график изменения вероятности обнаружения в зависимости от частоты ложных срабатываний при данном SNR.

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

ROC-кривая позволяет легко считать вероятность обнаружения при заданном уровне ложных срабатываний.

С помощью rocsnr можно исследовать работу детектора для различных типов принимаемых сигналов при фиксированном 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-кривые наглядно демонстрируют превосходство вероятности обнаружения для когерентных и некогерентных детекторов над случаем с реальными значениями.

Функция rocsnr принимает на вход вектор SNR, позволяя быстро проанализировать ряд ROC-кривых.

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

На графике видно, что с увеличением SNR поддержки распределений вероятностей для нулевой и альтернативной гипотез становятся более расходящимися. Поэтому при заданной вероятности ложной тревоги вероятность обнаружения возрастает.

Вы можете исследовать вероятность обнаружения как функцию SNR для фиксированной вероятности ложного срабатывания с помощью rocpfa. Чтобы получить ROC-кривые для модели цели Swerling I при вероятности ложного срабатывания (1e-6,1e-4,1e-2,1e-1), используйте

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

С помощью rocpfa изучите влияние SNR на вероятность обнаружения для детектора, использующего некогерентное интегрирование с вероятностью ложного срабатывания 1e-4. Предположим, что цель имеет неколеблющуюся RCS и что вы интегрируете за 5 импульсов.

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