rocsnr
Receiver operating characteristic curves by SNR
Description
[
returns the single-pulse detection probabilities, Pd
,Pfa
]
= rocsnr(SNRdB
)Pd
, and
false-alarm probabilities, Pfa
, for the SNRs in the vector
SNRdB
. By default, for each SNR, the detection
probabilities are computed for 101 false-alarm probabilities between
1e–10
and 1
. The false-alarm probabilities
are logarithmically equally spaced. The ROC curve is constructed assuming a coherent
receiver with a nonfluctuating target.
[
returns detection probabilities and false-alarm probabilities with additional
options specified by one or more name-value arguments.Pd
,Pfa
]
= rocsnr(SNRdB
,Name=Value
)
rocsnr(___)
plots the ROC curves.
Examples
ROC Curves for Different SNRs
Plot ROC curves for different SNRs for a single pulse.
SNRdB = [3 6 9 12]; [Pd,Pfa] = rocsnr(SNRdB,SignalType="NonfluctuatingCoherent"); semilogx(Pfa,Pd) grid on xlabel("P_{fa}") ylabel("P_d") legend("SNR "+SNRdB+" dB",Location="northwest") title("Receiver Operating Characteristic (ROC) Curves")
Input Arguments
SNRdB
— Signal-to-noise ratios
vector
Signal-to-noise ratios in decibels, specified as a row or column vector.
Example: [3 6 9 12]
Data Types: double
Name-Value Arguments
Specify optional pairs of arguments as
Name1=Value1,...,NameN=ValueN
, where Name
is
the argument name and Value
is the corresponding value.
Name-value arguments must appear after other arguments, but the order of the
pairs does not matter.
Example: MinPfa=1e-8,NumPoints=64,NumPulses=10
Before R2021a, use commas to separate each name and value, and enclose
Name
in quotes.
Example: 'MinPfa',1e-8,'NumPoints',64,'NumPulses',10
MaxPfa
— Maximum false-alarm probability to include in the ROC calculation
1
(default) | positive scalar
Maximum false-alarm probability to include in the ROC calculation, specified as a positive scalar.
Data Types: double
MinPfa
— Minimum false-alarm probability to include in the ROC calculation
1e-10
(default) | positive scalar
Minimum false-alarm probability to include in the ROC calculation, specified as a positive scalar.
Data Types: double
NumPulses
— Number of pulses to integrate
1
(default) | positive integer
Number of pulses to integrate when calculating the ROC curves,
specified as a positive integer. A value of 1
indicates no pulse integration.
Data Types: double
NumPoints
— Number of SNR values to use when calculating the ROC curves
101
(default) | positive integer
Number of SNR values to use when calculating the ROC curves, specified
as a positive integer. The actual values are equally spaced between
MinSNR
and MaxSNR
.
Data Types: double
SignalType
— Type of received signal
"NonfluctuatingCoherent"
(default) | "NonfluctuatingNoncoherent"
| "Real"
| "Swerling1"
| "Swerling2"
| "Swerling3"
| "Swerling4"
This property specifies the type of received signal or, equivalently,
the probability density functions (PDF) used to compute the ROC. Valid
values are: "Real"
,
"NonfluctuatingCoherent"
,
"NonfluctuatingNoncoherent"
,
"Swerling1"
, "Swerling2"
,
"Swerling3"
, and "Swerling4"
.
Values are not case sensitive.
The "NonfluctuatingCoherent"
signal type assumes
that the noise in the received signal is a complex-valued, Gaussian
random variable. This variable has independent zero-mean real and
imaginary parts each with variance
σ2/2 under the null
hypothesis. In the case of a single pulse in a coherent receiver with
complex white Gaussian noise, the probability of detection,
PD, for a given
false-alarm probability, PFA is:
where erfc
and
erfc-1
are the
complementary error function and that function’s inverse, and
χ is the SNR not expressed in decibels.
For details about the other supported signal types, see [1].
Data Types: char
| string
Output Arguments
Pd
— Detection probabilities
vector
Detection probabilities corresponding to the false-alarm probabilities,
returned as a vector. For each SNR in SNRdB
,
Pd
contains one column of detection probabilities.
Pfa
— False-alarm probabilities
column vector
False-alarm probabilities, returned as a column vector. By default, the
false-alarm probabilities are 101 logarithmically equally spaced values
between 1e–10
and 1
. To change the
range of probabilities, use the optional MinPfa
or
MaxPfa
input argument. To change the number of
probabilities, use the optional NumPoints
input
argument.
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Usage notes and limitations:
Does not support variable-size inputs.
Supported only when output arguments are specified.
References
[1] Richards, M. A. Fundamentals of Radar Signal Processing. New York: McGraw-Hill, 2005, pp 298–336.
Version History
Introduced in R2011a
See Also
Open Example
You have a modified version of this example. Do you want to open this example with your edits?
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)