Реконструкция сигнала в режиме real-time
Существует широкий спектр задач, связанных с восстановлением измеренного сигнала, искажённого шумами, до его идеального состояния. Для этого чаще всего применяются рекуррентные нейронные сети, одномерные свёрточные сети и трансформеры.
Когда весь сигнал доступен заранее, можно использовать различные методы предобработки — фильтрацию, извлечение признаков и других статистик, которые затем подаются в нейросеть. Однако в ситуациях, когда данные поступают последовательно, в реальном времени, работать со всем сигналом целиком невозможно. Это усложняет применение свёрточных сетей, которые, как правило, требуют фиксированного сигнала, так как они работают с скользящими окнами.
В таких случаях можно использовать буфер фиксированной длины, который изначально заполнен нулями, а затем постепенно заполняется новыми значениями сигнала. Этот буфер выступает в роли скользящего окна: при поступлении нового элемента первое значение удаляется, остальные сдвигаются, и последнее место занимает новое измерение. Таким образом, свёрточная нейросеть получает доступ к локальному фрагменту сигнала, позволяя извлекать признаки даже в условиях поступающего потока данных.
Такой подход к использованию свёрточных сетей позволяет добиться приближенного к реальному времени режима работы. Однако у него есть один нюанс: первые N точек восстановленного сигнала (где N — длина буфера) могут быть искажены. Это связано с тем, что в начале буфер ещё не содержит достаточно информации — он заполнен нулями, и лишь по мере поступления новых значений начинает отражать реальные характеристики сигнала.
Изначально импортируем все необходимые пакеты
В данном примере используются синтетические данные, которые были получены с помощью функции generate_dataset
. Эта функция генерирует заданное количество синтетических временных сигналов и сохраняет их в указанной папке
Каждый сигнал состоит из:
Модуляция задаётся через случайно выбранную огибающую: затухающая, растущая или с импульсами.
Out[0]:
generate_dataset (generic function with 1 method)
Каждый сгенерированные сигнал содержит 600 элементов. Поскольку идея - работа с буферами, нарежем сигнал на окна размером FRAME_LEN
, соберем все данные в одну общую переменную и инициализируем загрузчики данных
Визуализация наложения окон
Окна с шагом в 1 - моделирование реального времени
Для формирования статистики окна вычисляются среднее и стандартное отклонение (СКО) по значениям внутри окна. В результате каждый сэмпл представляет собой трёхканальный тензор: первый канал — само окно сигнала, второй — вектор, заполненный средним значением, третий — вектор со СКО. Такой подход позволяет явно передать модели важные признаки, что облегчает обучение — ей не нужно извлекать их самостоятельно, так как они уже включены во входные данные.
┌ Info: Всего примеров
└ length(x_all) = 962500
Out[0]:
3008-element DataLoader(::Tuple{Array{Float32, 3}, Matrix{Float32}}, batchsize=64)
with first element:
(16×3×64 Array{Float32, 3}, 1×64 Matrix{Float32},)
Код ниже реализует каузальную TCN-модель для шумоподавления.
Слой CausalConv1D
— свёртка с каузальной паддингом, чтобы выход не зависел от будущих значений. Далее идёт ResBlock
— два каузальных слоя с нелинейностями и возможным приведением размерностей.
Модель DenoiserTCN
строится как цепочка таких блоков с нарастающими каналами и заканчивается сверточным слоем, сжимающим выход до одного канала.
Инициализируем скорость обучения, оптимизатор, функцию потерь, а также переведем нашу модель на тот девайс, который доступен в Engee
Определим функцию, которая выполняет тренировку на одной эпохе
Сохраним обученную модель в указанную директорию
Сгенерируем для теста новые сигналы, которых не видела модель
Выберем из папки случайный сигнал, на котором проведем тесты
Ну и выполним инференс модели, результаты отобразим на графике ниже
Для визуализации того, как работает модель в реальном времени, создадим GIF, которая показывает точку (красным цветом), которую на каждом шаге наполнения буфера предсказывает модель
GIF saved to realtime_inference_demo.gif
[ Info: Saved animation to /user/nn/RealTimeConv/realtime_inference_demo.gif
Результаты работы модель можно улучшить, важно подобрать правильную архитектуру, гиперпараметры, а также можно выполнить предобработку данных перед обучением модели, чтобы зашумленный сигнал имел более высокую корреляцию с эталонным сигналом
В данной работе было разобрано, как с помощью казуальных сверток, которые не заглядывают в будущее сигнала, а работают только с накопившимся буфером, можно сделать восстановления сигнала из зашумленного
{"id": "bf2bc125-b676-4bd1-ac82-c4fc5445c6da", "data": [{"showlegend": true, "mode": "lines", "xaxis": "x", "colorbar": {"y": 0.513888888888889, "title": {"text": ""}, "len": 0.9525371828521435, "x": 0.9960629921259843}, "name": "Эталонный сигнал", "yaxis": "y", "legendgroup": "Эталонный сигнал", "line": {"color": "rgba(0, 154, 250, 1.000)", "shape": "linear", "dash": "solid", "width": 1}, "y": [23.359479842388954, 23.365593860472984, 23.37170783658583, 23.377821728756295, 23.383935495013194, 23.39004909338533, 23.39616248190152, 23.40227561859057, 23.408388461481294, 23.414500968602503, 23.420613097982994, 23.426724807651606, 23.432836055637118, 23.438946799968363, 23.445056998674133, 23.451166609783254, 23.45727559132453, 23.463383901326768, 23.469491497818787, 23.475598338829393, 23.481704382387388, 23.487809586521596, 23.493913909260815, 23.500017308633865, 23.506119742669554, 23.51222116939669, 23.518321546844078, 23.524420833040548, 23.53051898601489, 23.536615963795924, 23.542711724412452, 23.548806225893298, 23.554899426267262, 23.560991283563155, 23.56708175580979, 23.573170801035978, 23.579258377270524, 23.58534444254224, 23.591428954879948, 23.597511872312445, 23.603593152868545, 23.609672754577055, 23.61575063546679, 23.62182675356656, 23.627901066905178, 23.63397353351145, 23.64004411141419, 23.646112758642193, 23.652179433224298, 23.658244093189285, 23.66430669656599, 23.670367201383204, 23.676425565669756, 23.682481747454432, 23.688535704766068, 23.694587395633455, 23.70063677808541, 23.706683810150746, 23.71272844985827, 23.718770655236803, 23.724810384315138, 23.730847595122093, 23.73688224568648, 23.74291429403711, 23.74894369820279, 23.75497041621233, 23.76099440609454, 23.76701562587824, 23.773034033592225, 23.77904958726532, 23.785062244926323, 23.791071964604054, 23.79707870432732, 23.80308242212492, 23.809083076025683, 23.815080624058414, 23.82107502425191, 23.827066234635, 23.833054213236487, 23.839038918085183, 23.84502030720989, 23.850998338639425, 23.856972970402598, 23.86294416052822, 23.8689118670451, 23.874876047982045, 23.880836661367873, 23.886793665231387, 23.892747017601405, 23.898696676506734, 23.904642599976178, 23.910584746038552, 23.91652307272267, 23.92245753805734, 23.928388100071366, 23.93431471679357, 23.940237346252754, 23.94615594647773, 23.95207047549731, 23.957980891340306, 23.963887152035518, 23.969789215611772, 23.975687040097867, 23.981580583522614, 23.987469803914834, 23.993354659303325, 23.9992351077169, 24.00511110718437, 24.010982615734548, 24.016849591396245, 24.022711992198268, 24.028569776169427, 24.034422901338534, 24.0402713257344, 24.046115007385833, 24.051953904321646, 24.057787974570648, 24.06361717616165, 24.069441467123458, 24.075260805484895, 24.081075149274753, 24.08688445652185, 24.092688685255006, 24.098487793503026, 24.10428173929471, 24.110070480658877, 24.115853975624336, 24.121632182219898, 24.12740505847438, 24.133172562416583, 24.138934652075317, 24.144691285479396, 24.150442420657626, 24.15618801563883, 24.1619280284518, 24.167662417125364, 24.173391139688313, 24.179114154169476, 24.184831418597653, 24.190542891001655, 24.1962485294103, 24.20194829185239, 24.207642136356736, 24.213330020952153, 24.21901190366745, 24.22468774253143, 24.230357495572918, 24.236021120820705, 24.241678576303617, 24.24732982005046, 24.252974810090045, 24.258613504451176, 24.264245861162678, 24.26987183825334, 24.27549139375199, 24.281104485687433, 24.286711072088476, 24.292311110983935, 24.297904560402614, 24.303491378373327, 24.30907152292489, 24.3146449520861, 24.320211623885776, 24.32577149635273, 24.33132452751577, 24.336870675403702, 24.342409898045343, 24.347942153469496, 24.353467399704982, 24.358985594780602, 24.36449669672517, 24.370000663567495, 24.375497453336386, 24.380987024060662, 24.386469333769117, 24.391944340490582, 24.397412002253848, 24.402872277087738, 24.408325123021058, 24.41377049808262, 24.41920836030123, 24.424638667705704, 24.430061378324847, 24.435476450187473, 24.440883841322393, 24.446283509758405, 24.45167541352434, 24.457059510649, 24.46243575916119, 24.467804117089724, 24.473164542463408, 24.478516993311064, 24.48386142766149, 24.489197803543508, 24.494526078985913, 24.49984621201753, 24.50515816066716, 24.510461882963614, 24.51575733693571, 24.52104448061225, 24.526323272022054, 24.53159368318431, 24.536855742079837, 24.542109490679806, 24.54735497095541, 24.552592224877845, 24.557821294418293, 24.56304222154795, 24.568255048237997, 24.573459816459636, 24.578656568184044, 24.58384534538242, 24.589026190025944, 24.594199144085824, 24.599364249533227, 24.60452154833936, 24.609671082475405, 24.614812893912546, 24.619947024621986, 24.625073516574908, 24.630192411742495, 24.63530375209595, 24.64040757960645, 24.6455039362452, 24.650592863983366, 24.655674404792162, 24.660748600642762, 24.665815493506365, 24.670875125354158, 24.675927538157328, 24.680972773887063, 24.68601087451456, 24.691041882011003, 24.696065838347586, 24.701082785495494, 24.706092765425918, 24.711095820110042, 24.71609199151907, 24.72108132162418, 24.726063852396567, 24.73103962580742, 24.73600868382792, 24.74097106842927, 24.745926821582653, 24.750875985259263, 24.75581860143028, 24.760754712066902, 24.76568435914031, 24.77060758462171, 24.775524430482275, 24.780434938693205, 24.78533915122568, 24.790237110050906, 24.795128857140057, 24.80001443446433, 24.80489388399491, 24.80976724770299, 24.814634567559757, 24.81949588553641, 24.82435124360412, 24.829200683734097, 24.834044247897516, 24.838881978065576, 24.843713916209463, 24.848540104300362, 24.853360584309474, 24.858175398207973, 24.862984587967066, 24.867788195557928, 24.872586262951764, 24.877378832119742, 24.882165945033076, 24.886947643662932, 24.89172396998052, 24.896494965957018, 24.901260673563623, 24.906021134771514, 24.910776391551895, 24.915526485875937, 24.920271459714854, 24.925011355039818, 24.929746213822014, 24.934476078032645, 24.9392009896429, 24.94392099062396, 24.948636122947022, 24.953346428583274, 24.9580519495039, 24.9627527276801, 24.967448805083055, 24.97214022368396, 24.976827025454, 24.98150925236437, 24.98618694638625, 24.990860149490842, 24.995528903649337, 25.0001932508329, 25.004853233012753, 25.00950889216007, 25.014160270246034, 25.018807409241845, 25.02345035111869, 25.02808913784776, 25.032723811400245, 25.03735441374733, 25.041980986860214, 25.046603572710076, 25.05122221326811, 25.055836950505505, 25.060447826393446, 25.065054882903137, 25.06965816200575, 25.07425770567249, 25.078853555874538, 25.08344575458309, 25.088034343769323, 25.09261936540444, 25.097200861459623, 25.10177887390606, 25.106353444714955, 25.110924615857485, 25.115492429304837, 25.120056927028205, 25.12461815099878, 25.129176143187763, 25.13373094556632, 25.13828260010565, 25.14283114877696, 25.14737663355141, 25.151919096400214, 25.156458579294547, 25.160995124205606, 25.165528773104576, 25.170059567962653, 25.17458755075102, 25.17911276344087, 25.18363524800339, 25.188155046409772, 25.19267220063121, 25.197186752638885, 25.201698744403995, 25.20620821789772, 25.210715215091255, 25.21521977795579, 25.219721948462517, 25.224221768582627, 25.2287192802873, 25.233214525547734, 25.23770754633512, 25.24219838462063, 25.24668708237548, 25.251173681570837, 25.25565822417791, 25.260140752167874, 25.26462130751193, 25.269099932181255, 25.27357666814705, 25.278051557380497, 25.282524641852785, 25.286995963535112, 25.291465564398663, 25.29593348641463, 25.300399771554194, 25.304864461788554, 25.3093275990889, 25.313789225426415, 25.31824938277229, 25.32270811309772, 25.327165458373887, 25.331621460571988, 25.336076161663208, 25.34052960361874, 25.34498182840977, 25.34943287800749, 25.35388279438309, 25.35833161950776, 25.362779395352682, 25.36722616388906, 25.371671967088076, 25.37611684692092, 25.380560845358776, 25.38500400437284, 25.389446365934294, 25.393887972014344, 25.398328864584176, 25.40276908561496, 25.407208677077904, 25.411647680944192, 25.416086139185012, 25.420524093771558, 25.424961586675018, 25.429398659866585, 25.433835355317438, 25.43827171499878, 25.442707780881793, 25.44714359493767, 25.45157919913759, 25.45601463545276, 25.460449945854354, 25.464885172313572, 25.469320356801603], "type": "scatter", "x": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401]}, {"showlegend": true, "mode": "lines", "xaxis": "x", "colorbar": {"y": 0.513888888888889, "title": {"text": ""}, "len": 0.9525371828521435, "x": 0.9960629921259843}, "name": "Шумный сигнал", "yaxis": "y", "legendgroup": "Шумный сигнал", "line": {"color": "rgba(227, 111, 71, 1.000)", "shape": "linear", "dash": "solid", "width": 1}, "y": [23.38233323068796, 23.411528110287207, 23.440884597179004, 23.47033408988832, 23.499805444642064, 23.5292251938814, 23.558517789817376, 23.58760587258044, 23.61641056227117, 23.644851773968963, 23.672848554500142, 23.700319439509556, 23.72718282912305, 23.75335738023644, 23.77876241322086, 23.803318330600824, 23.826947045040722, 23.84957241377325, 23.87112067642154, 23.89152089300904, 23.910705378821188, 23.928610132682316, 23.94517525514338, 23.960345353043266, 23.974069926909365, 23.98630373770487, 23.997007149509834, 24.006146444842415, 24.013694109484543, 24.01962908387286, 24.023936978348477, 24.026610249827833, 24.027648337757416, 24.027057757546153, 24.02485215002599, 24.02105228587067, 24.01568602430055, 24.008788225812165, 24.000400619091483, 23.990571622693018, 23.97935612248919, 23.96681520630908, 23.953015857589044, 23.93803061024342, 23.92193716732755, 23.904817986402733, 23.886759834819358, 23.867853318406304, 23.84819238728917, 23.827873822752878, 23.806996709215547, 23.78566189548605, 23.76397144953935, 23.74202811105835, 23.71993474596181, 23.697793807062855, 23.675706804886396, 23.653773792515747, 23.632092868143513, 23.610759698771652, 23.58986706824399, 23.569504452505903, 23.549757624673695, 23.530708292165603, 23.512433767801173, 23.49500667642097, 23.478494698218473, 23.462960349615333, 23.448460802153694, 23.43504773953007, 23.42276725255668, 23.411659771513555, 23.401760035049396, 23.393097094505595, 23.38569435227711, 23.37956963258856, 23.374735282855884, 23.37119830362327, 23.368960504913233, 23.368018686705337, 23.368364841164446, 23.36998637417423, 23.372866343692856, 23.37698371243636, 23.382313612407863, 23.38882761882727, 23.396494031073964, 23.405278158332038, 23.415142607722686, 23.42604757281795, 23.437951120553215, 23.450809474689493, 23.46457729411893, 23.47920794445574, 23.494653761508168, 23.51086630538257, 23.527796604127168, 23.545395385978164, 23.563613299423555, 23.582401120448466, 23.601709946469132, 23.621491376599636, 23.64169767802508, 23.662281938376836, 23.683198204118355, 23.704401605054382, 23.72584846517126, 23.74749640010132, 23.769304401580285, 23.791232909333253, 23.813243870881934, 23.835300789814177, 23.85736876309653, 23.879414508041943, 23.90140637956835, 23.92331437840036, 23.94511015087572, 23.966766981021753, 23.988259775564572, 24.00956504252673, 24.030660864056753, 24.051526864118603, 24.072144171649317, 24.092495379771197, 24.112564501620117, 24.132336923324893, 24.15179935464437, 24.170939777739758, 24.189747394529455, 24.208212573043205, 24.226326793161782, 24.244082592097776, 24.261473509943123, 24.27849403557942, 24.295139553218238, 24.311406289811124, 24.32729126354183, 24.34279223358813, 24.357907651315745, 24.372636613044286, 24.386978814503014, 24.400934507073817, 24.414504455899994, 24.427689899921297, 24.440492513879573, 24.452914372324074, 24.464957915631672, 24.47662591804439, 24.487921457715498, 24.498847888744525, 24.509408815172616, 24.519608066900997, 24.529449677488046, 24.538937863773665, 24.54807700727424, 24.556871637286015, 24.565326415630786, 24.573446122973923, 24.581235646641666, 24.588699969862205, 24.595844162352922, 24.602673372174554, 24.60919281877207, 24.615407787120986, 24.621323622897673, 24.626945728591913, 24.632279560480306, 24.637330626379423, 24.642104484098525, 24.646606740512397, 24.650843051176288, 24.654819120406085, 24.658540701748667, 24.662013598769057, 24.665243666083033, 24.668236810566018, 24.67099899267135, 24.673536227793793, 24.67585458761643, 24.677960201382426, 24.679859257035787, 24.681558002178683, 24.68306274479605, 24.684379853701916, 24.685515758665243, 24.686476950177095, 24.687269978824787, 24.687901454242443, 24.688378043611916, 24.68870646969188, 24.688893508357257, 24.688945985635627, 24.688870774231297, 24.688674789532495, 24.68836498510109, 24.687948347648906, 24.687431891508716, 24.686822652612403, 24.68612768199272, 24.68535403882898, 24.684508783061084, 24.683598981589807, 24.68263174208526, 24.68161416251432, 24.680553308347818, 24.679456203496617, 24.678329821028534, 24.677181073710155, 24.676016804419334, 24.674843776475505, 24.67366866393578, 24.672498041905516, 24.67133837691207, 24.67019601739053, 24.669077184329304, 24.667987962123128, 24.66693428967914, 24.665921951820604, 24.664956571030764, 24.66404359957699, 24.663188312053105, 24.662395798374934, 24.661670957260995, 24.6610184902274, 24.660442896122287, 24.65994846622206, 24.659539279907563, 24.659219200935325, 24.658991874314644, 24.658860723798043, 24.65882894998876, 24.658899529065305, 24.659075212119575, 24.659358525101773, 24.65975176936182, 24.660257022774093, 24.66087614142933, 24.66161076187477, 24.662462303881163, 24.663431973713223, 24.66452076787769, 24.66572947732192, 24.667058692054134, 24.668508806155216, 24.670080023151367, 24.671772361715707, 24.673585661666955, 24.675519590232742, 24.677573648545412, 24.679747178338154, 24.682039368810116, 24.68444926362928, 24.686975768043215, 24.689617656068346, 24.692373577729793, 24.69524206632482, 24.698221545684348, 24.701310337408398, 24.704506668052687, 24.70780867624519, 24.71121441971303, 24.714721882201417, 24.71832898026824, 24.722033569939086, 24.72583345320925, 24.72972638438069, 24.73371007622316, 24.737782205950552, 24.74194042100422, 24.74618234463694, 24.750505581291836, 24.754907721772156, 24.759386348198387, 24.763939038750735, 24.768563372195274, 24.77325693219353, 24.778017311395438, 24.782842115316843, 24.78772896600283, 24.7926755054793, 24.79767939899495, 24.80273833805722, 24.80785004326521, 24.813012266943513, 24.818222795581075, 24.823479452079262, 24.828780097813752, 24.834122634514944, 24.839505005971677, 24.84492519956329, 24.85038124762504, 24.855871228652056, 24.861393268346983, 24.86694554051653, 24.872526267822245, 24.878133722390714, 24.883766226288447, 24.889422151866853, 24.895099921982265, 24.9007980100966, 24.906514940263623, 24.91224928700605, 24.917999675088698, 24.92376477919277, 24.929543323496357, 24.935334081166268, 24.94113587376607, 24.946947570585536, 24.952768087896235, 24.95859638813829, 24.964431479043128, 24.97027241269702, 24.97611828455028, 24.98196823237672, 24.987821435188156, 24.993677112108564, 24.999534521212517, 25.005392958332333, 25.011251755838572, 25.017110281398235, 25.02296793671496, 25.028824156255723, 25.03467840596812, 25.04053018199247, 25.046379009372874, 25.052224440771187, 25.058066055188018, 25.063903456694444, 25.06973627317831, 25.075564155108918, 25.08138677432348, 25.08720382283907, 25.09301501169329, 25.098820069817073, 25.104618742942687, 25.11041079255005, 25.11619599485426, 25.121974139837107, 25.127745030325265, 25.133508481117556, 25.13926431816382, 25.145012377797354, 25.15075250602314, 25.156484557863628, 25.162208396763756, 25.167923894056717, 25.173630928491804, 25.179329385825415, 25.185019158476162, 25.19070014524473, 25.19637225109915, 25.202035387025482, 25.207689469944366, 25.21333442269285, 25.218970174071504, 25.224596658955914, 25.230213818471906, 25.235821600233276, 25.241419958640826, 25.247008855241084, 25.252588259142918, 25.258158147490086, 25.263718505987395, 25.269269329478043, 25.274810622569362, 25.280342400304118, 25.285864688874113, 25.291377526372834, 25.296880963583448, 25.302375064798508, 25.30785990866731, 25.313335589066828, 25.31880221599185, 25.324259916459955, 25.329708835426587, 25.33514913670559, 25.34058100389023, 25.346004641269857, 25.351420274736938, 25.356828152679512, 25.3622285468537, 25.36762175323107, 25.373008092815486, 25.378387912424223, 25.383761585427884, 25.389129512443873, 25.39449212197824, 25.3998498710104, 25.405203245515782, 25.41055276092119, 25.415898962487866, 25.421242425617397, 25.426583756075562, 25.431923590129646, 25.4372625945945, 25.4426014667832, 25.44794093435799, 25.453281755077704, 25.458624716437626, 25.463970635198578, 25.469320356801603], "type": "scatter", "x": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 267, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 283, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 296, 297, 298, 299, 300, 301, 302, 303, 304, 305, 306, 307, 308, 309, 310, 311, 312, 313, 314, 315, 316, 317, 318, 319, 320, 321, 322, 323, 324, 325, 326, 327, 328, 329, 330, 331, 332, 333, 334, 335, 336, 337, 338, 339, 340, 341, 342, 343, 344, 345, 346, 347, 348, 349, 350, 351, 352, 353, 354, 355, 356, 357, 358, 359, 360, 361, 362, 363, 364, 365, 366, 367, 368, 369, 370, 371, 372, 373, 374, 375, 376, 377, 378, 379, 380, 381, 382, 383, 384, 385, 386, 387, 388, 389, 390, 391, 392, 393, 394, 395, 396, 397, 398, 399, 400, 401]}], "config": {"showlegend": true, "xaxis": {"showticklabels": true, "gridwidth": 0.5, "tickvals": [0, 100, 200, 300, 400], "range": [-11, 413], "domain": [0.039492563429571304, 0.9960629921259843], "mirror": false, "tickangle": 0, "showline": true, "ticktext": ["0", "100", "200", "300", "400"], "zeroline": false, "tickfont": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 11}, "zerolinecolor": "rgba(0, 0, 0, 1)", "anchor": "y", "visible": true, "ticks": "inside", "tickmode": "array", "linecolor": "rgba(0, 0, 0, 1)", "showgrid": true, "title": {"text": "", "font": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 15}}, "gridcolor": "rgba(0, 0, 0, 0.1)", "tickcolor": "rgb(0, 0, 0)", "type": "linear"}, "paper_bgcolor": "rgba(255, 255, 255, 1.000)", "annotations": [], "height": 400, "margin": {"l": 0, "b": 20, "r": 0, "t": 20}, "plot_bgcolor": "rgba(255, 255, 255, 1.000)", "yaxis": {"showticklabels": true, "gridwidth": 0.5, "tickvals": [23.5, 24, 24.5, 25, 25.5], "range": [23.296184626956574, 25.53261557223398], "domain": [0.03762029746281716, 0.9901574803149606], "mirror": false, "tickangle": 0, "showline": true, "ticktext": ["23.5", "24.0", "24.5", "25.0", "25.5"], "zeroline": false, "tickfont": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 11}, "zerolinecolor": "rgba(0, 0, 0, 1)", "anchor": "x", "visible": true, "ticks": "inside", "tickmode": "array", "linecolor": "rgba(0, 0, 0, 1)", "showgrid": true, "title": {"text": "", "font": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 15}}, "gridcolor": "rgba(0, 0, 0, 0.1)", "tickcolor": "rgb(0, 0, 0)", "type": "linear"}, "legend": {"yanchor": "auto", "xanchor": "auto", "bordercolor": "rgba(0, 0, 0, 1)", "bgcolor": "rgba(255, 255, 255, 1.000)", "borderwidth": 1, "tracegroupgap": 0, "y": 1, "font": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 11}, "title": {"font": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 15}, "text": ""}, "traceorder": "normal", "x": 1}, "width": 1119.140625}}
{"id": "cf1c9122-735b-4ed8-9657-1c9a8c7b52c5", "data": [{"showlegend": true, "mode": "lines", "xaxis": "x", "colorbar": {"y": 0.5329861111111112, "title": {"text": ""}, "len": 0.914342738407699, "x": 0.9960629921259843}, "name": "x1", "yaxis": "y", "legendgroup": "x1", "line": {"color": "rgba(0, 154, 250, 1.000)", "shape": "linear", "dash": "solid", "width": 4}, "y": [25.58418, 25.599321, 25.614626, 25.630024, 25.645445, 25.660814, 25.676058, 25.691097, 25.705856, 25.720255, 25.734211, 25.747643, 25.76047, 25.772612, 25.783987, 25.794518], "type": "scatter", "x": [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16]}, {"showlegend": true, "mode": "lines", "xaxis": "x", "colorbar": {"y": 0.5329861111111112, "title": {"text": ""}, "len": 0.914342738407699, "x": 0.9960629921259843}, "name": "x2", "yaxis": "y", "legendgroup": "x2", "line": {"color": "rgba(227, 111, 71, 1.000)", "shape": "linear", "dash": "solid", "width": 4}, "y": [25.599321, 25.614626, 25.630024, 25.645445, 25.660814, 25.676058, 25.691097, 25.705856, 25.720255, 25.734211, 25.747643, 25.76047, 25.772612, 25.783987, 25.794518, 25.804123], "type": "scatter", "x": [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17]}, {"showlegend": true, "mode": "lines", "xaxis": "x", "colorbar": {"y": 0.5329861111111112, "title": {"text": ""}, "len": 0.914342738407699, "x": 0.9960629921259843}, "name": "x3", "yaxis": "y", "legendgroup": "x3", "line": {"color": "rgba(62, 164, 78, 1.000)", "shape": "linear", "dash": "solid", "width": 4}, "y": [25.614626, 25.630024, 25.645445, 25.660814, 25.676058, 25.691097, 25.705856, 25.720255, 25.734211, 25.747643, 25.76047, 25.772612, 25.783987, 25.794518, 25.804123, 25.81273], "type": "scatter", "x": [3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18]}], "config": {"showlegend": true, "xaxis": {"showticklabels": true, "gridwidth": 0.5, "tickvals": [2.5, 5, 7.5, 10, 12.5, 15, 17.5], "range": [0.4900000000000002, 18.509999999999998], "domain": [0.06365923009623797, 0.9960629921259843], "mirror": false, "tickangle": 0, "showline": true, "ticktext": ["2.5", "5.0", "7.5", "10.0", "12.5", "15.0", "17.5"], "zeroline": false, "tickfont": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 11}, "zerolinecolor": "rgba(0, 0, 0, 1)", "anchor": "y", "visible": true, "ticks": "inside", "tickmode": "array", "linecolor": "rgba(0, 0, 0, 1)", "showgrid": true, "title": {"text": "Время (отсчёты)", "font": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 15}}, "gridcolor": "rgba(0, 0, 0, 0.1)", "tickcolor": "rgb(0, 0, 0)", "type": "linear"}, "paper_bgcolor": "rgba(255, 255, 255, 1.000)", "annotations": [], "height": 400, "margin": {"l": 0, "b": 20, "r": 0, "t": 20}, "plot_bgcolor": "rgba(255, 255, 255, 1.000)", "yaxis": {"showticklabels": true, "gridwidth": 0.5, "tickvals": [25.600000000000005, 25.650000000000006, 25.700000000000006, 25.750000000000004, 25.800000000000004], "range": [25.57732433319092, 25.81958728790283], "domain": [0.07581474190726165, 0.9901574803149606], "mirror": false, "tickangle": 0, "showline": true, "ticktext": ["25.60", "25.65", "25.70", "25.75", "25.80"], "zeroline": false, "tickfont": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 11}, "zerolinecolor": "rgba(0, 0, 0, 1)", "anchor": "x", "visible": true, "ticks": "inside", "tickmode": "array", "linecolor": "rgba(0, 0, 0, 1)", "showgrid": true, "title": {"text": "Значение", "font": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 15}}, "gridcolor": "rgba(0, 0, 0, 0.1)", "tickcolor": "rgb(0, 0, 0)", "type": "linear"}, "legend": {"yanchor": "auto", "xanchor": "auto", "bordercolor": "rgba(0, 0, 0, 1)", "bgcolor": "rgba(255, 255, 255, 1.000)", "borderwidth": 1, "tracegroupgap": 0, "y": 1, "font": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 11}, "title": {"font": {"color": "rgba(0, 0, 0, 1)", "family": "sans-serif", "size": 15}, "text": ""}, "traceorder": "normal", "x": 1}, "width": 1119.140625}}