本例研究如何在复杂的高斯噪声中检测确定信号。这种情况在雷达、声纳和通信系统中经常遇到。
有许多不同类型的检测器可用于各种应用。其中最常用的是贝叶斯检测器、最大似然检测器和奈曼-皮尔逊准则(KNP)检测器。在雷达和声纳系统中,KNP 是最受欢迎的选择,因为它可以提供一定水平的误报概率(FAP)。
在本例中,我们只考虑信号是确定的,噪声是高斯白噪声的情况。
示例包括以下部分:相干检测、非相干检测、匹配滤波和接收器检测曲线(ROC)。
\开始
x(t)=s(t)+n(t)
\end{align}
其中$s(t)$ 为信号,$n(t)$ 为噪声。
假设信号功率等于 1 瓦,噪声功率根据信噪比 (SNR) 适当确定。例如,信噪比为 10 dB 时,噪声功率(即噪声方差)为 0.1 瓦。
接收器通常使用匹配滤波器来提高信噪比。从离散信号的角度来看,匹配滤波器的系数指定为相对于发射信号的复共轭值。
在处理复杂信号和噪声时,有两种类型的接收器。第一种是相干接收器,它假定接收信号的振幅和相位是已知的。这将导致相干滤波器系数与信号 s 完美匹配。因此,匹配滤波器的系数可视为共轭信号 s。那么,匹配滤波器的工作模式可以是
\开始
y = s^x = s^(s+n) = |s|^2 + s^*n\ .
\end{align}
请注意,虽然总输出$y$ 仍然是一个复数,但信号完全由$∣s∣^2$ 表征,它是一个实数,包含在同相分量$y$ 中。因此,相干接收机中匹配滤波器之后的检测器通常只使用接收信号的实部。这样的接收器通常性能最佳。然而,相干接收机容易受到相位误差的影响。此外,相干接收机还需要额外的设备来进行相位检测。对于非相干接收机,接收信号被模拟为带有随机相位误差的原始信号的副本。在非相干检测中,匹配滤波器后的信号功率用于计算同相和正交分量
\开始
J = P_d + g(P_{fa} - a)、
\结束
即在给定水平 a 下,最大化检测概率$(Pd)$ ,同时限制误报概率$(Pfa)$ 。等式中的变量 g 是拉格朗日乘数。NP 检测器可组成似然比检验$(LRT)$ ,如下所示:
\开始
\frac{p_y(y|H_1)}{p_y(y|H_0)}{{H_1 \atop >}\atop {< \atop H_0}}}}.Th\ .
\end{align}
在这种特殊情况下$NP$ ,由于误报仅由噪声引起,阈值$Th$ 由噪声决定,以提供一个固定的$Pfa$ 。一般情况下,$LRT$ ,如上图所示,通常很难评估。在实际应用中,我们通常使用信号中易于计算的量,即充分统计量来替代两个概率密度函数的比值。例如,充分统计量$z$ 可以简单为
\开始{对齐}
z = |y
\end{align}
\开始
z {{H_1 \atop >}\atop {< \atop H_0}}T\ .
\end{align}
T 是充分统计量 z 的阈值,其作用与 LRT 的阈值 Th 相同。因此,阈值不仅与概率分布有关,还取决于充分统计量的选择。
我们首先来看一个利用单个样本在噪声中检测信号的例子。
假设信号为单个功率样本,信噪比为 3 dB。通过蒙特卡罗模拟 100000 次尝试,我们生成信号和噪声如下
在这种情况下,匹配滤波器是微不足道的,因为信号本身就是一个单一样本。
在这种情况下,匹配滤波器的增益为 1,因此信噪比没有增益。
现在我们将进行检测并检查检测器的性能。对于相干接收机,匹配滤波器后的接收信号形式如下
相干检测器的充分统计量,即用于与检测阈值比较的值,是匹配滤波器后接收信号的实部,即
假设我们要将$Pfa$ 固定在$10^{-3}$ 。给定足够的统计量$z$ ,决策规则如下
\开始
z {{H_1 \atop >}\atop {< \atop H_0}}T
\end{align}
\开始
P_{fa}=\frac{1}{2}\left[ 1 - {\rm
erf}\left(\frac{T}{\sqrt{NM}}\right)\right]
\end{align}
在这个公式中,N 是信号功率,M 是匹配滤波器的增益。请注意,T 是匹配滤波器后的信号阈值,NM 是匹配滤波器后的噪声功率,因此$T/√ (NM)$ 可以看作是信号和噪声大小的比值,即与信噪比 SNR 有关。由于信噪比通常指的是信号功率和噪声功率的比值,考虑到这一表达式中各量的单位,我们可以看到
\开始{对齐}
\frac{T}{sqrt{NM}}=\sqrt\rm SNR}\ 。
\end{align}
由于 N 和 M 在选择噪声和信号波形后是固定的,因此 T 和 SNR 之间存在对应关系。鉴于 T 是信号的阈值,SNR 可视为信噪比的阈值。因此,阈值方程可改写为
\开始
P_{fa}=\frac{1}{2}\left[ 1 - {\rm
erf}left({/sqrt{SNR}}/right)/right]。
{end{align}
可以使用 npwgnthresh 函数计算 NP 检测器在复白高斯噪声下所需的信噪比阈值,计算公式如下:
请注意,尽管该阈值也采用 SNR 值的形式,但它与接收信号的 SNR 不同。信噪比阈值是根据所需的检测效率计算得出的值,在本例中为 Pfa;而接收信号的信噪比是信号的物理特性,由传播介质、波形、传输功率等决定。
\开始
T=\sqrt{NM}\cdot\sqrt{\rm SNR}.
\end{align}
检测是通过将信号与阈值进行比较来完成的。由于接收信号中包含原始信号 s,因此当接收信号通过阈值(即 z>T)时,检测就成功了。探测器探测目标的能力通常用 Pd 来衡量。在蒙特卡罗建模中,Pd 可计算为信号通过阈值的次数与试验总数之比。
另一方面,当检测结果表明有目标但实际上没有目标时,即接收到的信号通过阈值时只有噪声存在,就会发生误报。当没有目标时,检测器检测到目标的错误概率定义为 Pfa。
为了在图表上看到信噪比、Pd 和 Pfa 之间的关系,我们可以使用 rocsnr 函数绘制信噪比为 3 dB 时的理论 ROC 曲线,即
从图中可以看出,上述信噪比为 3 dB 时的测量值 Pd=0.1390 和 Pfa=0.0009 与 ROC 曲线上的理论点相对应。
非相干接收器考虑到了接收信号的相位,因此对于所考虑的情况,信号 x 包含一个相位项,其定义为
使用非相干接收器时,匹配滤波器后接收信号的功率(或幅度)用于与阈值进行比较。在此模型中,我们选择幅度作为充分统计量
考虑到我们选择的充分统计量 z,阈值与 Pfa 的关系式为
\begin{align}
P_{fa}={rm exp}\left(-\frac{T^2}{NM}\right)={\rm exp}(-{\rm SNR})\ .
\end{align}
NP 检测器的信噪比阈值 SNR 可通过 npwgnthresh 计算如下:
在没有目标的情况下,接收到的信号只包含噪声。我们可以通过蒙特卡罗模拟计算出 Pfa 为
我们可以看到,非相干接收机的检测器性能不如相干接收机。
本例展示了如何使用 Engee 建模并执行各种检测方法。示例说明了信号检测中常见的几个变量之间的关系,即检测概率(Pd)、误报概率(Pfa)和信噪比(SNR)。特别是,该示例使用蒙特卡罗模拟计算了检测器的性能,并使用接收器工作特性曲线(ROC)验证了指标结果。
在检测信号时,我们会遇到两种 SNR 值。第一个是单个数据样本的 SNR。这是显示在 ROC 曲线图上的信噪比值。ROC 曲线上的点给出了达到相应 Pd 和 Pfa 所需的单个样本信噪比。然而,这并不是用于检测的阈值 SNR 值。根据奈曼-皮尔逊(Neyman-Pearson)决策规则,信噪比阈值(我们看到的用于检测的第二个信噪比值)由噪声分布和所需的 Pfa 水平决定。因此,这样的 SNR 阈值确实与 ROC 曲线上的 Pfa 轴相对应。如果我们固定单个样本的 SNR,如上面的 ROC 曲线图所示,曲线上的每个点将对应一个 Pfa 值,这反过来又转化为一个阈值 SNR 值。使用这个阈值 SNR 值进行检测,就会得到相应的 Pd 值。
请注意,信噪比阈值可能与实际检测器中直接使用的阈值不同。在实际检测器中,通常会使用一个易于计算的充分统计值来进行检测。因此,真正的阈值应从上述信噪比阈值中推导出来,使其与充分统计值的选择相匹配。
{"id": "93b6c373-7cbb-4f0d-8ef7-bf69d3ac718a", "data": [{"xaxis": "x", "mode": "lines", "x": [0.0001, 0.00010964781961431851, 0.00012022644346174131, 0.00013182567385564074, 0.0001445439770745928, 0.00015848931924611142, 0.00017378008287493763, 0.00019054607179632462, 0.00020892961308540387, 0.00022908676527677723, 0.00025118864315095795, 0.0002754228703338166, 0.0003019951720402016, 0.0003311311214825911, 0.0003630780547701014, 0.00039810717055349735, 0.0004365158322401661, 0.00047863009232263854, 0.0005248074602497728, 0.0005754399373371566, 0.000630957344480193, 0.0006918309709189362, 0.0007585775750291836, 0.0008317637711026709, 0.0009120108393559096, 0.001, 0.0010964781961431851, 0.001202264434617413, 0.0013182567385564075, 0.001445439770745928, 0.001584893192461114, 0.0017378008287493763, 0.0019054607179632462, 0.0020892961308540386, 0.0022908676527677724, 0.0025118864315095794, 0.002754228703338166, 0.003019951720402016, 0.003311311214825911, 0.003630780547701014, 0.003981071705534973, 0.004365158322401661, 0.004786300923226385, 0.005248074602497728, 0.005754399373371567, 0.00630957344480193, 0.006918309709189363, 0.007585775750291836, 0.008317637711026709, 0.009120108393559097, 0.010000000000000002, 0.01096478196143185, 0.012022644346174132, 0.013182567385564075, 0.014454397707459272, 0.015848931924611134, 0.017378008287493755, 0.019054607179632473, 0.020892961308540396, 0.022908676527677734, 0.025118864315095794, 0.02754228703338166, 0.03019951720402016, 0.03311311214825911, 0.03630780547701014, 0.039810717055349734, 0.043651583224016584, 0.047863009232263824, 0.05248074602497726, 0.057543993733715694, 0.06309573444801933, 0.06918309709189366, 0.07585775750291836, 0.08317637711026708, 0.09120108393559097, 0.1, 0.1096478196143185, 0.12022644346174127, 0.1318256738556407, 0.14454397707459277, 0.15848931924611134, 0.17378008287493754, 0.19054607179632474, 0.20892961308540392, 0.2290867652767773, 0.251188643150958, 0.2754228703338166, 0.3019951720402016, 0.3311311214825911, 0.36307805477010135, 0.39810717055349726, 0.436515832240166, 0.4786300923226383, 0.5248074602497725, 0.5754399373371569, 0.6309573444801932, 0.6918309709189365, 0.7585775750291838, 0.831763771102671, 0.9120108393559098, 1], "showlegend": true, "name": "SNR = 3.0", "colorbar": {"title": {"text": ""}}, "zmin": null, "z": null, "legendgroup": "SNR = 3.0", "y": [0.04259033509476788, 0.04474876702741782, 0.04700736301833669, 0.04937014406859813, 0.05184124914347016, 0.05442493540995498, 0.057125578169340885, 0.05994767045647219, 0.06289582227587849, 0.06597475944331692, 0.06918932199966944, 0.0725444621624835, 0.0760452417787878, 0.07969682924114607, 0.08350449582722029, 0.08747361142145851, 0.09160963957585036, 0.09591813186506916, 0.10040472148972177, 0.10507511607988435, 0.10993508964963504, 0.11499047365189284, 0.12024714708159984, 0.12571102557411523, 0.13138804944467564, 0.13728417061394654, 0.14340533836403047, 0.14975748386891188, 0.15634650344314405, 0.16317824045276402, 0.17025846583287851, 0.1775928571572501, 0.18518697620649602, 0.19304624498325942, 0.20117592012500488, 0.20958106566794632, 0.2182665241191079, 0.2272368857977191, 0.23649645641210512, 0.2460492228440572, 0.2558988171193731, 0.26604847855099983, 0.2765010140500118, 0.2872587566096573, 0.298323521978953, 0.3096965635549601, 0.3213785255369681, 0.3333693944015495, 0.3456684487748223, 0.35827420779753016, 0.3711843780997195, 0.3843957995250657, 0.39790438977038933, 0.41170508813373036, 0.4257917985946729, 0.4401573324835738, 0.4547933510320733, 0.46969030813593143, 0.4848373937029606, 0.5002224780037742, 0.5158320574913755, 0.5316512026074457, 0.54766350814865, 0.5638510468255505, 0.5801943267098837, 0.5966722533332381, 0.6132620972715102, 0.6299394681253017, 0.6466782958864905, 0.6634508207658824, 0.6802275926461271, 0.6969774814181566, 0.7136676995583667, 0.7302638384078406, 0.7467299197242815, 0.7630284641923553, 0.7791205786992068, 0.794966064309713, 0.8105235470113955, 0.8257506334432057, 0.8406040939774739, 0.8550400756929593, 0.8690143479631444, 0.8824825835935727, 0.8954006786836703, 0.9077251146748078, 0.9194133663960893, 0.9304243603606341, 0.9407189881405481, 0.950260680423741, 0.959016048432011, 0.9669556009180575, 0.9740545472163207, 0.9802937002119816, 0.9856604982676592, 0.9901501730531602, 0.9937671016916182, 0.9965263938143268, 0.9984557440094217, 0.9995972120428037, 1], "zmax": null, "line": {"shape": "linear", "color": "rgba(0, 154, 250, 1.000)", "dash": "solid", "width": 1}, "zaxis": null, "yaxis": "y", "metadata": {"smartZoomParams": {"maxCount": 101, "minCount": 25000, "currentCount": 101}, "shouldEnableSmartZoom": false}, "type": "scatter"}], "config": {"showlegend": true, "height": 400, "xaxis": {"showline": true, "showticklabels": true, "gridcolor": "rgba(0, 0, 0, 0.5)", "tickfont": {"family": "Computer Modern", "color": "rgba(0, 0, 0, 1)", "size": 14}, "tickmode": "array", "anchor": "y", "range": [-4.12, 0.12000000000000012], "tickcolor": "rgb(0, 0, 0)", "gridwidth": 0.5, "visible": true, "showgrid": true, "linecolor": "rgba(0, 0, 0, 1)", "zerolinecolor": "rgba(0, 0, 0, 1)", "tickangle": 0, "zeroline": false, "mirror": false, "domain": [0.08526538349372996, 0.9934383202099738], "title": {"font": {"family": "Computer Modern", "color": "rgba(0, 0, 0, 1)", "size": 14}, "text": "Вероятность ложной тревоги (Pfa)"}, "ticks": "inside", "type": "log"}, "annotations": [{"y": 1, "yanchor": "top", "rotation": 0, "x": 0.5393518518518519, "font": {"family": "Computer Modern", "color": "rgba(0, 0, 0, 1)", "size": 14}, "yref": "paper", "xref": "paper", "showarrow": false, "text": "Характеристика обнаружения \n Тип сигнала: NonfluctuatingCoherent", "xanchor": "center"}], "plot_bgcolor": "rgba(255, 255, 255, 1.000)", "paper_bgcolor": "rgba(255, 255, 255, 1.000)", "margin": {"t": 20, "b": 20, "r": 0, "l": 0}, "yaxis": {"showline": true, "showticklabels": true, "gridcolor": "rgba(0, 0, 0, 0.5)", "tickfont": {"family": "Computer Modern", "color": "rgba(0, 0, 0, 1)", "size": 14}, "tickmode": "array", "anchor": "x", "range": [0.013868045147610863, 1.028722289947157], "tickcolor": "rgb(0, 0, 0)", "gridwidth": 0.5, "visible": true, "showgrid": true, "linecolor": "rgba(0, 0, 0, 1)", "zerolinecolor": "rgba(0, 0, 0, 1)", "tickangle": 0, "zeroline": false, "mirror": false, "domain": [0.07928696412948383, 0.9554352580927385], "title": {"font": {"family": "Computer Modern", "color": "rgba(0, 0, 0, 1)", "size": 14}, "text": "Вероятность правильного обнаружения (Pd)"}, "ticks": "inside", "type": "linear"}, "width": 783.59375, "legend": {"x": 1.05, "traceorder": "normal", "yanchor": "right", "font": {"family": "Computer Modern", "color": "rgba(0, 0, 0, 1)", "size": 11}, "borderwidth": 1, "bordercolor": "rgba(0, 0, 0, 0)", "y": 1, "bgcolor": "rgba(0, 0, 0, 0)", "tracegroupgap": 0, "title": {"font": {"family": "Computer Modern", "color": "rgba(0, 0, 0, 1)", "size": 15}, "text": ""}, "xanchor": "upper"}}}
{"id": "76c40f63-51db-4fa0-af8e-b9c6146a34c4", "data": [{"xaxis": "x", "mode": "lines", "x": [0.0001, 0.00010964781961431851, 0.00012022644346174131, 0.00013182567385564074, 0.0001445439770745928, 0.00015848931924611142, 0.00017378008287493763, 0.00019054607179632462, 0.00020892961308540387, 0.00022908676527677723, 0.00025118864315095795, 0.0002754228703338166, 0.0003019951720402016, 0.0003311311214825911, 0.0003630780547701014, 0.00039810717055349735, 0.0004365158322401661, 0.00047863009232263854, 0.0005248074602497728, 0.0005754399373371566, 0.000630957344480193, 0.0006918309709189362, 0.0007585775750291836, 0.0008317637711026709, 0.0009120108393559096, 0.001, 0.0010964781961431851, 0.001202264434617413, 0.0013182567385564075, 0.001445439770745928, 0.001584893192461114, 0.0017378008287493763, 0.0019054607179632462, 0.0020892961308540386, 0.0022908676527677724, 0.0025118864315095794, 0.002754228703338166, 0.003019951720402016, 0.003311311214825911, 0.003630780547701014, 0.003981071705534973, 0.004365158322401661, 0.004786300923226385, 0.005248074602497728, 0.005754399373371567, 0.00630957344480193, 0.006918309709189363, 0.007585775750291836, 0.008317637711026709, 0.009120108393559097, 0.010000000000000002, 0.01096478196143185, 0.012022644346174132, 0.013182567385564075, 0.014454397707459272, 0.015848931924611134, 0.017378008287493755, 0.019054607179632473, 0.020892961308540396, 0.022908676527677734, 0.025118864315095794, 0.02754228703338166, 0.03019951720402016, 0.03311311214825911, 0.03630780547701014, 0.039810717055349734, 0.043651583224016584, 0.047863009232263824, 0.05248074602497726, 0.057543993733715694, 0.06309573444801933, 0.06918309709189366, 0.07585775750291836, 0.08317637711026708, 0.09120108393559097, 0.1, 0.1096478196143185, 0.12022644346174127, 0.1318256738556407, 0.14454397707459277, 0.15848931924611134, 0.17378008287493754, 0.19054607179632474, 0.20892961308540392, 0.2290867652767773, 0.251188643150958, 0.2754228703338166, 0.3019951720402016, 0.3311311214825911, 0.36307805477010135, 0.39810717055349726, 0.436515832240166, 0.4786300923226383, 0.5248074602497725, 0.5754399373371569, 0.6309573444801932, 0.6918309709189365, 0.7585775750291838, 0.831763771102671, 0.9120108393559098, 1], "showlegend": true, "name": "SNR = 3.0", "colorbar": {"title": {"text": ""}}, "zmin": null, "z": null, "legendgroup": "SNR = 3.0", "y": [0.01681171268253448, 0.01775278107794007, 0.01874371104474253, 0.019786943990197463, 0.0208850264668548, 0.022040613638387583, 0.02325647277520845, 0.02453548677175943, 0.025880657676428317, 0.027295110224038435, 0.028782095359787888, 0.030344993742360327, 0.03198731921270987, 0.03371272221370744, 0.03552499314444795, 0.03742806563153424, 0.03942601969807942, 0.04152308480950142, 0.04372364277341369, 0.04603223046904629, 0.04845354237965462, 0.05099243289928614, 0.053653918383082026, 0.05644317890797675, 0.05936555970822947, 0.06242657224767962, 0.06563189488794714, 0.06898737310901353, 0.07249901923570774, 0.07617301162059371, 0.08001569323059823, 0.0840335695814538, 0.0882333059606358, 0.09262172387598162, 0.09720579666356069, 0.10199264418466446, 0.10698952653796971, 0.11220383670904972, 0.11764309207543446, 0.1233149246814047, 0.12922707019262594, 0.13538735543664038, 0.14180368443111932, 0.148484022797697, 0.15543638045515212, 0.1626687924817369, 0.1701892980325738, 0.17800591719432485, 0.18612662565579702, 0.19455932706983922, 0.20331182297887737, 0.2123917801737537, 0.22180669535328357, 0.23156385695015508, 0.2416703039875851, 0.25213278183056487, 0.26295769469570485, 0.27415105478469687, 0.2857184279083905, 0.29766487547153464, 0.3099948926925086, 0.3227123429380065, 0.33582038805980413, 0.3493214146295858, 0.36321695597855613, 0.3775076099613799, 0.39219295237911456, 0.40727144601345894, 0.4227403452450863, 0.43859559625231737, 0.45483173281324973, 0.47144176776493973, 0.4884170802077291, 0.5057472985816303, 0.5234201797852152, 0.541421484556116, 0.5597348493864382, 0.5783416553065678, 0.5972208939375143, 0.6163490312855464, 0.6356998698340102, 0.6552444095763883, 0.6749507087324929, 0.6947837449967569, 0.7147052782845609, 0.7346737160700643, 0.7546439825477959, 0.7745673930010043, 0.7943915349232261, 0.8140601576164559, 0.8335130721804529, 0.8526860640139324, 0.8715108201704047, 0.8899148741501193, 0.9078215709656927, 0.9251500555933969, 0.9418152882155141, 0.9577280899724296, 0.9727952232769252, 0.9869195110981921, 1], "zmax": null, "line": {"shape": "linear", "color": "rgba(0, 154, 250, 1.000)", "dash": "solid", "width": 1}, "zaxis": null, "yaxis": "y", "metadata": {"smartZoomParams": {"maxCount": 101, "minCount": 25000, "currentCount": 101}, "shouldEnableSmartZoom": false}, "type": "scatter"}], "config": {"showlegend": true, "height": 400, "xaxis": {"showline": true, "showticklabels": true, "gridcolor": "rgba(0, 0, 0, 0.5)", "tickfont": {"family": "Computer Modern", "color": "rgba(0, 0, 0, 1)", "size": 14}, "tickmode": "array", "anchor": "y", "range": [-4.12, 0.12000000000000012], "tickcolor": "rgb(0, 0, 0)", "gridwidth": 0.5, "visible": true, "showgrid": true, "linecolor": "rgba(0, 0, 0, 1)", "zerolinecolor": "rgba(0, 0, 0, 1)", "tickangle": 0, "zeroline": false, "mirror": false, "domain": [0.10378390201224846, 0.9934383202099737], "title": {"font": {"family": "Computer Modern", "color": "rgba(0, 0, 0, 1)", "size": 14}, "text": "Вероятность ложной тревоги (Pfa)"}, "ticks": "inside", "type": "log"}, "annotations": [{"y": 1, "yanchor": "top", "rotation": 0, "x": 0.548611111111111, "font": {"family": "Computer Modern", "color": "rgba(0, 0, 0, 1)", "size": 14}, "yref": "paper", "xref": "paper", "showarrow": false, "text": "Характеристика обнаружения \n Тип сигнала: NonfluctuatingNoncoherent", "xanchor": "center"}], "plot_bgcolor": "rgba(255, 255, 255, 1.000)", "paper_bgcolor": "rgba(255, 255, 255, 1.000)", "margin": {"t": 20, "b": 20, "r": 0, "l": 0}, "yaxis": {"showline": true, "showticklabels": true, "gridcolor": "rgba(0, 0, 0, 0.5)", "tickfont": {"family": "Computer Modern", "color": "rgba(0, 0, 0, 1)", "size": 14}, "tickmode": "array", "anchor": "x", "range": [-0.012683935936989577, 1.0294956486195241], "tickcolor": "rgb(0, 0, 0)", "gridwidth": 0.5, "visible": true, "showgrid": true, "linecolor": "rgba(0, 0, 0, 1)", "zerolinecolor": "rgba(0, 0, 0, 1)", "tickangle": 0, "zeroline": false, "mirror": false, "domain": [0.07928696412948383, 0.9554352580927385], "title": {"font": {"family": "Computer Modern", "color": "rgba(0, 0, 0, 1)", "size": 14}, "text": "Вероятность правильного обнаружения (Pd)"}, "ticks": "inside", "type": "linear"}, "width": 783.59375, "legend": {"x": 1.05, "traceorder": "normal", "yanchor": "right", "font": {"family": "Computer Modern", "color": "rgba(0, 0, 0, 1)", "size": 11}, "borderwidth": 1, "bordercolor": "rgba(0, 0, 0, 0)", "y": 1, "bgcolor": "rgba(0, 0, 0, 0)", "tracegroupgap": 0, "title": {"font": {"family": "Computer Modern", "color": "rgba(0, 0, 0, 1)", "size": 15}, "text": ""}, "xanchor": "upper"}}}