<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
	<id>http://docs.gtlab.pro/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AlekseyCube</id>
	<title>GTL-wiki - Вклад [ru]</title>
	<link rel="self" type="application/atom+xml" href="http://docs.gtlab.pro/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=AlekseyCube"/>
	<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php/%D0%A1%D0%BB%D1%83%D0%B6%D0%B5%D0%B1%D0%BD%D0%B0%D1%8F:%D0%92%D0%BA%D0%BB%D0%B0%D0%B4/AlekseyCube"/>
	<updated>2026-10-24T13:51:17Z</updated>
	<subtitle>Вклад</subtitle>
	<generator>MediaWiki 1.40.0</generator>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.create_instant_thd&amp;diff=1422</id>
		<title>Gtl.create instant thd</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.create_instant_thd&amp;diff=1422"/>
		<updated>2026-10-22T05:20:07Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Пример использования */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для расчета коэффициента гармонических искажений вибрационного сигнала.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let _thd = gtl.create_instant_thd({&lt;br /&gt;
	src: gtl.analog_inputs[0],&lt;br /&gt;
	name: &amp;quot;thd&amp;quot;,&lt;br /&gt;
	time: 0.01,&lt;br /&gt;
	avg: 10,&lt;br /&gt;
	start: false,&lt;br /&gt;
	single_shot: true,&lt;br /&gt;
	order: 4,&lt;br /&gt;
	freq: 100,&lt;br /&gt;
	harms_number: 1,&lt;br /&gt;
	min_harm: 0.5,&lt;br /&gt;
	max_harm: 10,&lt;br /&gt;
	tolerance: 0.050&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.src = gtl.analog_inputs[0];&amp;lt;/code&amp;gt; - источник сигнала вибрации;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.name = &amp;quot;thd&amp;quot;;&amp;lt;/code&amp;gt; - присвоение имени скользящего значения размаха амплитуд;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.time = 0.01;&amp;lt;/code&amp;gt; - время выборки данных;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.avg = 10;&amp;lt;/code&amp;gt; - количество усреднений;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.start = false;&amp;lt;/code&amp;gt; - автоматический старт расчета при запуске скрипта;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.single_shot= true;&amp;lt;/code&amp;gt; - ......;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.order = 4;&amp;lt;/code&amp;gt; - ......;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.freq = 100;&amp;lt;/code&amp;gt; - частота, для которой вычисляется коэффициент;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.harms_number = 1;&amp;lt;/code&amp;gt; - номер гармоники установленной частоты, для которой вычисляется коэффициент;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.min_harm = 0.5;&amp;lt;/code&amp;gt; - ......;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.max_harm = 10;&amp;lt;/code&amp;gt; - ......;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.tolerance = 0.050;&amp;lt;/code&amp;gt; - коридор определения гармоники;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
let dt = .01;&lt;br /&gt;
let config = {&lt;br /&gt;
  src: gtl.analog_inputs[0], // источник сигнала&lt;br /&gt;
  name: &amp;quot;thd&amp;quot;, // наименование объекта&lt;br /&gt;
  time: dt, // временное окно измерений&lt;br /&gt;
  avg: 100, // количество усреднений&lt;br /&gt;
  start: false, // автоматический запуск расчета&lt;br /&gt;
  single_shot: true, //&lt;br /&gt;
  order: 4, //&lt;br /&gt;
  freq: 100, // частота, для которой определяется коэффициент&lt;br /&gt;
  harms_number: 1, // порядковй номер гармоники&lt;br /&gt;
  min_harm: 0.5, //&lt;br /&gt;
  max_harm: 10, //&lt;br /&gt;
  tolerance: 0.050 // коридор обнаружения гармоники&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
let _thd = gtl.create_instant_thd(config); // создание объета&lt;br /&gt;
_thd.start(); // передача команды старта расчетов &lt;br /&gt;
&lt;br /&gt;
let plot = gtl.plots.add(&amp;quot;values&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = gtl.acq_time;&lt;br /&gt;
function diagnose() {&lt;br /&gt;
  gtl.log.info(&amp;quot;average value&amp;quot;, _thd.avg_value)&lt;br /&gt;
&lt;br /&gt;
  // Отрисовка результатов на координатной плоскости&lt;br /&gt;
  plot.add({&lt;br /&gt;
    color: 0xff0000,&lt;br /&gt;
    name: &amp;quot;values&amp;quot;,&lt;br /&gt;
    x: dt,&lt;br /&gt;
    y: _thd.values&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  gtl.results = {&lt;br /&gt;
    thd: _thd,&lt;br /&gt;
    avg_value: _thd.avg_value&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  gtl.diagnostic.stop();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.create_instant_thd&amp;diff=1421</id>
		<title>Gtl.create instant thd</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.create_instant_thd&amp;diff=1421"/>
		<updated>2026-10-22T05:19:55Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Пример использования */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для расчета коэффициента гармонических искажений вибрационного сигнала.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let _thd = gtl.create_instant_thd({&lt;br /&gt;
	src: gtl.analog_inputs[0],&lt;br /&gt;
	name: &amp;quot;thd&amp;quot;,&lt;br /&gt;
	time: 0.01,&lt;br /&gt;
	avg: 10,&lt;br /&gt;
	start: false,&lt;br /&gt;
	single_shot: true,&lt;br /&gt;
	order: 4,&lt;br /&gt;
	freq: 100,&lt;br /&gt;
	harms_number: 1,&lt;br /&gt;
	min_harm: 0.5,&lt;br /&gt;
	max_harm: 10,&lt;br /&gt;
	tolerance: 0.050&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.src = gtl.analog_inputs[0];&amp;lt;/code&amp;gt; - источник сигнала вибрации;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.name = &amp;quot;thd&amp;quot;;&amp;lt;/code&amp;gt; - присвоение имени скользящего значения размаха амплитуд;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.time = 0.01;&amp;lt;/code&amp;gt; - время выборки данных;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.avg = 10;&amp;lt;/code&amp;gt; - количество усреднений;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.start = false;&amp;lt;/code&amp;gt; - автоматический старт расчета при запуске скрипта;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.single_shot= true;&amp;lt;/code&amp;gt; - ......;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.order = 4;&amp;lt;/code&amp;gt; - ......;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.freq = 100;&amp;lt;/code&amp;gt; - частота, для которой вычисляется коэффициент;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.harms_number = 1;&amp;lt;/code&amp;gt; - номер гармоники установленной частоты, для которой вычисляется коэффициент;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.min_harm = 0.5;&amp;lt;/code&amp;gt; - ......;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.max_harm = 10;&amp;lt;/code&amp;gt; - ......;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.tolerance = 0.050;&amp;lt;/code&amp;gt; - коридор определения гармоники;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
let dt = .01;&lt;br /&gt;
let config = {&lt;br /&gt;
  src: gtl.analog_inputs[0], // источник сигнала&lt;br /&gt;
  name: &amp;quot;thd&amp;quot;, // наименование объекта&lt;br /&gt;
  time: dt, // временное окно измерений&lt;br /&gt;
  avg: 100, // количество усреднений&lt;br /&gt;
  start: false, // автоматический запуск расчета&lt;br /&gt;
  single_shot: true, //&lt;br /&gt;
  order: 4, //&lt;br /&gt;
  freq: 100, // частота, для которой определяется коэффициент&lt;br /&gt;
  harms_number: 1, // порядковй номер гармоники&lt;br /&gt;
  min_harm: 0.5, //&lt;br /&gt;
  max_harm: 10, //&lt;br /&gt;
  tolerance: 0.050 // коридор обнаружения гармоники&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
let _thd = gtl.create_instant_thd(config); // создание объета&lt;br /&gt;
_thd.start(); // передача команды старта расчетов &lt;br /&gt;
&lt;br /&gt;
let plot = gtl.plots.add(&amp;quot;values&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = gtl.acq_time;&lt;br /&gt;
function diagnose() {&lt;br /&gt;
  gtl.log.info(&amp;quot;average value&amp;quot;, _thd.avg_value)&lt;br /&gt;
&lt;br /&gt;
  // Отрисовка результатов на координатной плоскости&lt;br /&gt;
  plot.add({&lt;br /&gt;
    color: 0xff0000,&lt;br /&gt;
    name: &amp;quot;values&amp;quot;,&lt;br /&gt;
    x: dt,&lt;br /&gt;
    y: _thd.values&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  gtl.results = {&lt;br /&gt;
	thd: _thd,&lt;br /&gt;
	avg_value: _thd.avg_value&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  gtl.diagnostic.stop();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.create_instant_thd&amp;diff=1420</id>
		<title>Gtl.create instant thd</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.create_instant_thd&amp;diff=1420"/>
		<updated>2026-10-22T05:19:30Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Пример использования */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для расчета коэффициента гармонических искажений вибрационного сигнала.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let _thd = gtl.create_instant_thd({&lt;br /&gt;
	src: gtl.analog_inputs[0],&lt;br /&gt;
	name: &amp;quot;thd&amp;quot;,&lt;br /&gt;
	time: 0.01,&lt;br /&gt;
	avg: 10,&lt;br /&gt;
	start: false,&lt;br /&gt;
	single_shot: true,&lt;br /&gt;
	order: 4,&lt;br /&gt;
	freq: 100,&lt;br /&gt;
	harms_number: 1,&lt;br /&gt;
	min_harm: 0.5,&lt;br /&gt;
	max_harm: 10,&lt;br /&gt;
	tolerance: 0.050&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.src = gtl.analog_inputs[0];&amp;lt;/code&amp;gt; - источник сигнала вибрации;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.name = &amp;quot;thd&amp;quot;;&amp;lt;/code&amp;gt; - присвоение имени скользящего значения размаха амплитуд;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.time = 0.01;&amp;lt;/code&amp;gt; - время выборки данных;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.avg = 10;&amp;lt;/code&amp;gt; - количество усреднений;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.start = false;&amp;lt;/code&amp;gt; - автоматический старт расчета при запуске скрипта;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.single_shot= true;&amp;lt;/code&amp;gt; - ......;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.order = 4;&amp;lt;/code&amp;gt; - ......;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.freq = 100;&amp;lt;/code&amp;gt; - частота, для которой вычисляется коэффициент;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.harms_number = 1;&amp;lt;/code&amp;gt; - номер гармоники установленной частоты, для которой вычисляется коэффициент;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.min_harm = 0.5;&amp;lt;/code&amp;gt; - ......;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.max_harm = 10;&amp;lt;/code&amp;gt; - ......;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.tolerance = 0.050;&amp;lt;/code&amp;gt; - коридор определения гармоники;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
let dt = .01;&lt;br /&gt;
let config = {&lt;br /&gt;
  src: gtl.analog_inputs[0], // источник сигнала&lt;br /&gt;
  name: &amp;quot;thd&amp;quot;, // наименование объекта&lt;br /&gt;
  time: dt, // временное окно измерений&lt;br /&gt;
  avg: 100, // количество усреднений&lt;br /&gt;
  start: false, // автоматический запуск расчета&lt;br /&gt;
  single_shot: true, //&lt;br /&gt;
  order: 4, //&lt;br /&gt;
  freq: 100, // частота, для которой определяется коэффициент&lt;br /&gt;
  harms_number: 1, // порядковй номер гармоники&lt;br /&gt;
  min_harm: 0.5, //&lt;br /&gt;
  max_harm: 10, //&lt;br /&gt;
  tolerance: 0.050 // коридор обнаружения гармоники&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
let _thd = gtl.create_instant_thd(config); // создание объета&lt;br /&gt;
_thd.start(); // передача команды старта расчетов &lt;br /&gt;
&lt;br /&gt;
let plot = gtl.plots.add(&amp;quot;values&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = gtl.acq_time;&lt;br /&gt;
function diagnose() {&lt;br /&gt;
  gtl.log.info(&amp;quot;average value&amp;quot;, _thd.avg_value)&lt;br /&gt;
&lt;br /&gt;
  // Отрисовка результатов на координатной плоскости&lt;br /&gt;
  plot.add({&lt;br /&gt;
  	color: 0xff0000,&lt;br /&gt;
  	name: &amp;quot;values&amp;quot;,&lt;br /&gt;
	x: dt,&lt;br /&gt;
	y: _thd.values&lt;br /&gt;
  });&lt;br /&gt;
&lt;br /&gt;
  gtl.results = {&lt;br /&gt;
	thd: _thd,&lt;br /&gt;
	avg_value: _thd.avg_value&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  gtl.diagnostic.stop();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.create_instant_thd&amp;diff=1419</id>
		<title>Gtl.create instant thd</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.create_instant_thd&amp;diff=1419"/>
		<updated>2026-10-22T05:18:09Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Пример использования */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для расчета коэффициента гармонических искажений вибрационного сигнала.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let _thd = gtl.create_instant_thd({&lt;br /&gt;
	src: gtl.analog_inputs[0],&lt;br /&gt;
	name: &amp;quot;thd&amp;quot;,&lt;br /&gt;
	time: 0.01,&lt;br /&gt;
	avg: 10,&lt;br /&gt;
	start: false,&lt;br /&gt;
	single_shot: true,&lt;br /&gt;
	order: 4,&lt;br /&gt;
	freq: 100,&lt;br /&gt;
	harms_number: 1,&lt;br /&gt;
	min_harm: 0.5,&lt;br /&gt;
	max_harm: 10,&lt;br /&gt;
	tolerance: 0.050&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.src = gtl.analog_inputs[0];&amp;lt;/code&amp;gt; - источник сигнала вибрации;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.name = &amp;quot;thd&amp;quot;;&amp;lt;/code&amp;gt; - присвоение имени скользящего значения размаха амплитуд;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.time = 0.01;&amp;lt;/code&amp;gt; - время выборки данных;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.avg = 10;&amp;lt;/code&amp;gt; - количество усреднений;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.start = false;&amp;lt;/code&amp;gt; - автоматический старт расчета при запуске скрипта;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.single_shot= true;&amp;lt;/code&amp;gt; - ......;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.order = 4;&amp;lt;/code&amp;gt; - ......;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.freq = 100;&amp;lt;/code&amp;gt; - частота, для которой вычисляется коэффициент;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.harms_number = 1;&amp;lt;/code&amp;gt; - номер гармоники установленной частоты, для которой вычисляется коэффициент;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.min_harm = 0.5;&amp;lt;/code&amp;gt; - ......;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.max_harm = 10;&amp;lt;/code&amp;gt; - ......;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.tolerance = 0.050;&amp;lt;/code&amp;gt; - коридор определения гармоники;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
let dt = .01;&lt;br /&gt;
let config = {&lt;br /&gt;
	src: gtl.analog_inputs[0], // источник сигнала&lt;br /&gt;
	name: &amp;quot;thd&amp;quot;, // наименование объекта&lt;br /&gt;
	time: dt, // временное окно измерений&lt;br /&gt;
	avg: 100, // количество усреднений&lt;br /&gt;
	start: false, // автоматический запуск расчета&lt;br /&gt;
	single_shot: true, //&lt;br /&gt;
	order: 4, //&lt;br /&gt;
	freq: 100, // частота, для которой определяется коэффициент&lt;br /&gt;
	harms_number: 1, // порядковй номер гармоники&lt;br /&gt;
	min_harm: 0.5, //&lt;br /&gt;
	max_harm: 10, //&lt;br /&gt;
	tolerance: 0.050 // коридор обнаружения гармоники&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
let _thd = gtl.create_instant_thd(config); // создание объета&lt;br /&gt;
_thd.start(); // передача команды старта расчетов &lt;br /&gt;
&lt;br /&gt;
let plot = gtl.plots.add(&amp;quot;values&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = gtl.acq_time;&lt;br /&gt;
function diagnose() {&lt;br /&gt;
	gtl.log.info(&amp;quot;average value&amp;quot;, _thd.avg_value)&lt;br /&gt;
&lt;br /&gt;
	// Отрисовка результатов на координатной плоскости&lt;br /&gt;
	plot.add({&lt;br /&gt;
		color: 0xff0000,&lt;br /&gt;
		name: &amp;quot;values&amp;quot;,&lt;br /&gt;
		x: dt,&lt;br /&gt;
		y: _thd.values&lt;br /&gt;
	});&lt;br /&gt;
&lt;br /&gt;
	gtl.results = {&lt;br /&gt;
		thd: _thd,&lt;br /&gt;
		avg_value: _thd.avg_value&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	gtl.diagnostic.stop();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.create_instant_thd&amp;diff=1418</id>
		<title>Gtl.create instant thd</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.create_instant_thd&amp;diff=1418"/>
		<updated>2026-10-22T05:17:16Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Свойства (методы) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для расчета коэффициента гармонических искажений вибрационного сигнала.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let _thd = gtl.create_instant_thd({&lt;br /&gt;
	src: gtl.analog_inputs[0],&lt;br /&gt;
	name: &amp;quot;thd&amp;quot;,&lt;br /&gt;
	time: 0.01,&lt;br /&gt;
	avg: 10,&lt;br /&gt;
	start: false,&lt;br /&gt;
	single_shot: true,&lt;br /&gt;
	order: 4,&lt;br /&gt;
	freq: 100,&lt;br /&gt;
	harms_number: 1,&lt;br /&gt;
	min_harm: 0.5,&lt;br /&gt;
	max_harm: 10,&lt;br /&gt;
	tolerance: 0.050&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.src = gtl.analog_inputs[0];&amp;lt;/code&amp;gt; - источник сигнала вибрации;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.name = &amp;quot;thd&amp;quot;;&amp;lt;/code&amp;gt; - присвоение имени скользящего значения размаха амплитуд;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.time = 0.01;&amp;lt;/code&amp;gt; - время выборки данных;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.avg = 10;&amp;lt;/code&amp;gt; - количество усреднений;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.start = false;&amp;lt;/code&amp;gt; - автоматический старт расчета при запуске скрипта;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.single_shot= true;&amp;lt;/code&amp;gt; - ......;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.order = 4;&amp;lt;/code&amp;gt; - ......;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.freq = 100;&amp;lt;/code&amp;gt; - частота, для которой вычисляется коэффициент;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.harms_number = 1;&amp;lt;/code&amp;gt; - номер гармоники установленной частоты, для которой вычисляется коэффициент;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.min_harm = 0.5;&amp;lt;/code&amp;gt; - ......;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.max_harm = 10;&amp;lt;/code&amp;gt; - ......;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.tolerance = 0.050;&amp;lt;/code&amp;gt; - коридор определения гармоники;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
let dt = .01;&lt;br /&gt;
let config = {&lt;br /&gt;
	src: gtl.analog_inputs[0], // источник сигнала&lt;br /&gt;
	name: &amp;quot;thd&amp;quot;, // наименование объекта&lt;br /&gt;
	time: dt, // временное окно измерений&lt;br /&gt;
	avg: 100, // количество усреднений&lt;br /&gt;
	start: false, // автоматический запуск расчета&lt;br /&gt;
	single_shot: true, //&lt;br /&gt;
	order: 4, //&lt;br /&gt;
	freq: 100, // частота, для которой определяется коэффициент&lt;br /&gt;
	harms_number: 1, // порядковй номер гармоники&lt;br /&gt;
	min_harm: 0.5, //&lt;br /&gt;
	max_harm: 10, //&lt;br /&gt;
	tolerance: 0.050 // коридор обнаружения гармоники&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
let _thd = gtl.create_instant_thd(config); // создание объета&lt;br /&gt;
_thd.start(); // передача команды старта расчетов &lt;br /&gt;
&lt;br /&gt;
let plot = gtl.plots.add(&amp;quot;values&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = gtl.acq_time;&lt;br /&gt;
function diagnose() {&lt;br /&gt;
	gtl.log.info(&amp;quot;average value&amp;quot;, _thd.avg_value)&lt;br /&gt;
&lt;br /&gt;
	// Отрисовка результатов на координатной плоскости&lt;br /&gt;
	plot.add({&lt;br /&gt;
		color: 0xff0000,&lt;br /&gt;
		name: &amp;quot;values&amp;quot;,&lt;br /&gt;
		x: dt,&lt;br /&gt;
		y: _thd.values&lt;br /&gt;
	});&lt;br /&gt;
&lt;br /&gt;
	gtl.results = {&lt;br /&gt;
		thd: _thd,&lt;br /&gt;
		avg_value: _thd.avg_value&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	gtl.diagnostic.stop();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.create_instant_thd&amp;diff=1417</id>
		<title>Gtl.create instant thd</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.create_instant_thd&amp;diff=1417"/>
		<updated>2026-10-22T05:17:05Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: Новая страница: «== Краткое описание == Функция предназначена для расчета коэффициента гармонических искажений вибрационного сигнала.  == Объявление функции == &amp;lt;pre style=&amp;quot;color: purple&amp;gt; let _thd = gtl.create_instant_thd({ 	src: gtl.analog_inputs[0], 	name: &amp;quot;thd&amp;quot;, 	time: 0.01, 	avg: 10, 	start: false, 	single_shot: true, 	order: 4, 	freq: 100, 	harms_number: 1,...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для расчета коэффициента гармонических искажений вибрационного сигнала.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let _thd = gtl.create_instant_thd({&lt;br /&gt;
	src: gtl.analog_inputs[0],&lt;br /&gt;
	name: &amp;quot;thd&amp;quot;,&lt;br /&gt;
	time: 0.01,&lt;br /&gt;
	avg: 10,&lt;br /&gt;
	start: false,&lt;br /&gt;
	single_shot: true,&lt;br /&gt;
	order: 4,&lt;br /&gt;
	freq: 100,&lt;br /&gt;
	harms_number: 1,&lt;br /&gt;
	min_harm: 0.5,&lt;br /&gt;
	max_harm: 10,&lt;br /&gt;
	tolerance: 0.050&lt;br /&gt;
});&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.src = gtl.analog_inputs[0];&amp;lt;/code&amp;gt; - источник сигнала вибрации;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.name = &amp;quot;thd&amp;quot;;&amp;lt;/code&amp;gt; - присвоение имени скользящего значения размаха амплитуд;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.time = 0.01;&amp;lt;/code&amp;gt; - время выборки данных;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.avg = 10;&amp;lt;/code&amp;gt; - количество усреднений;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.start = false;&amp;lt;/code&amp;gt; - автоматический старт расчета при запуске скрипта;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.single_shot= true;&amp;lt;/code&amp;gt; - ......;ъ&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.order = 4;&amp;lt;/code&amp;gt; - ......;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.freq = 100;&amp;lt;/code&amp;gt; - частота, для которой вычисляется коэффициент;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.harms_number = 1;&amp;lt;/code&amp;gt; - номер гармоники установленной частоты, для которой вычисляется коэффициент;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.min_harm = 0.5;&amp;lt;/code&amp;gt; - ......;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.max_harm = 10;&amp;lt;/code&amp;gt; - ......;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__ptp.tolerance = 0.050;&amp;lt;/code&amp;gt; - коридор определения гармоники;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
let dt = .01;&lt;br /&gt;
let config = {&lt;br /&gt;
	src: gtl.analog_inputs[0], // источник сигнала&lt;br /&gt;
	name: &amp;quot;thd&amp;quot;, // наименование объекта&lt;br /&gt;
	time: dt, // временное окно измерений&lt;br /&gt;
	avg: 100, // количество усреднений&lt;br /&gt;
	start: false, // автоматический запуск расчета&lt;br /&gt;
	single_shot: true, //&lt;br /&gt;
	order: 4, //&lt;br /&gt;
	freq: 100, // частота, для которой определяется коэффициент&lt;br /&gt;
	harms_number: 1, // порядковй номер гармоники&lt;br /&gt;
	min_harm: 0.5, //&lt;br /&gt;
	max_harm: 10, //&lt;br /&gt;
	tolerance: 0.050 // коридор обнаружения гармоники&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
let _thd = gtl.create_instant_thd(config); // создание объета&lt;br /&gt;
_thd.start(); // передача команды старта расчетов &lt;br /&gt;
&lt;br /&gt;
let plot = gtl.plots.add(&amp;quot;values&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = gtl.acq_time;&lt;br /&gt;
function diagnose() {&lt;br /&gt;
	gtl.log.info(&amp;quot;average value&amp;quot;, _thd.avg_value)&lt;br /&gt;
&lt;br /&gt;
	// Отрисовка результатов на координатной плоскости&lt;br /&gt;
	plot.add({&lt;br /&gt;
		color: 0xff0000,&lt;br /&gt;
		name: &amp;quot;values&amp;quot;,&lt;br /&gt;
		x: dt,&lt;br /&gt;
		y: _thd.values&lt;br /&gt;
	});&lt;br /&gt;
&lt;br /&gt;
	gtl.results = {&lt;br /&gt;
		thd: _thd,&lt;br /&gt;
		avg_value: _thd.avg_value&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	gtl.diagnostic.stop();&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1416</id>
		<title>Справочник GTLD:JS-API</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1416"/>
		<updated>2026-10-21T04:23:54Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Функции инициализации диагностики GTLd: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Основные понятия: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.script Диагностические скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.masterscript Мастер-скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.monitoringscript Мониторинговые скрипты];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.node: ==&lt;br /&gt;
Объект gtld.node предоставляет API для доступа к свойствам и методам узлов дерева диагностируемого объекта.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.name Свойство gtld.node.name ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.uuid Свойство gtld.node.uuid ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.options Свойство gtld.node.options ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.parent Свойство gtld.node.parent ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.children Свойство gtld.node.children ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.lastResult Свойство gtld.node.lastResult ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.selectLastResults Метод gtld.node.selectLastResults() ];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.storage: ==&lt;br /&gt;
Объект gtld.storage предназначен для работы с историческими данными.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastPointResults Метод gtld.storage.selectLastPointResults()];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastObjectResults Метод gtld.storage.selectLastObjectResults()];&lt;br /&gt;
&lt;br /&gt;
== Часто используемые функции JavaScript: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_arrays Использование массивов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_objects Использование объектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_if Условное ветвление &amp;lt;code&amp;gt;if(...)&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_switch Конструкция ветвления &amp;lt;code&amp;gt;switch&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_for Цикл &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt;];&lt;br /&gt;
&lt;br /&gt;
== Функции инициализации диагностики GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_common_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_filter_irr Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_freq Определение частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_intg Интегрирование сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_avg Получение скользящего среднего значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_median Получение скользящего медианного значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_offset Получение скользящего значения смещения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_freq Получение скользящего значения частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_max Получение скользящего значения максимальных амплитуд];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_min Получение скользящего значения минимальных амплитуд ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_peak_to_peak Получение скользящего значения размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_corr Получение скользящего значения корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_instant_thd Вычисление коэффициента гармонических искажений];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.history Получение массива значений из сигнала (истории)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_apfc Определение АФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_afc Определение АЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_pfc Определение ФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase Разница фаз моногармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase_spec Разница фаз полигармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_coherence Коэффициент когерентности сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_rms Определение СКЗ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_max_data Определение максимального значения СКЗ в заданном временном интервале];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_ampl Определение амплитудных (максимальных) значений];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_peak_to_peak Определение размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_kurt Определение коэффициента эксцесса (куртозис)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_corr Определение коэффициента корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_var Определение дисперсии (разброса значений)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ausp Построение спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_spen Построение спектра огибающей вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_phase Построение фазового спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_psd Построение спектра мощности (спектральная плотность)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_orsp Построение порядкового спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ceps Построение кепстра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.get_kurt_value Определение альтернативного коэффициента эксцесса (по огибающей сигнала)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_thresh_data Вылавливание превышений уровня сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_thresh Определение превышений уровня сигнала в установленном временном окне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.set_timer Установка таймера запуска функций];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.from_csv Загрузка данных из .CSV файла];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.to_csv Экспорт данных в .CSV файл];&lt;br /&gt;
&lt;br /&gt;
== Библиотека диагностических функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_diag_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.interval Интервал запуска функции диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/function_diagnose Основная функция диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.stop Остановка процесса диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.log.info Вывод информации в лог программы диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.options.customOptions Передача параметров в скрипт];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.player Управление процессом воспроизведения сигнала в плеере];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add Отрисовка произвольного графика на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add_axis Управление осями координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_spec_tools Отрисовка компонентов (инструментов) спектра на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.table Формирование произвольной таблицы];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results Получение результатов диагностики];&lt;br /&gt;
&lt;br /&gt;
== Библиотека пользовательских функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filters Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freq Определение частоты вращения по источнику данных и автоматическое уточнение];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_instability Нестабильность частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_functions Определение функциональных частот объектов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freqness Минимально необходимая частота вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_frequency Расчетная центральная частота полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_width Ширина полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_speс_params Расчетные параметры спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_square Интегральная площадь спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_todb Перевод значений массива в дБ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_mod_factor Глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_deep_factor Условная глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_ampl_factor Амплитудный коэффициент];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_std_measures Набор стандартных измерений параметров вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_tools Построение компонентов и частотных линий на спектре];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_corr Коэффициент корреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_autocorr Функция автокорреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_crosscorr Функция кросс-корреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getDefSet Формирование наборов признаков дефектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getCrossSpec Расчет перекрестного спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getFrequencyResponse Расчет частотного отклика];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_thinArray Прореживание массива данных];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_aggregateAverage Аггрегация массива данных];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_linearInterpolate Линейная интерполяция данных массива];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_exponentialSmoothing Экспотенциальное сглаживание];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_linearRegression Линейная регрессия];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_simpleAR1 Простая ARIMA модель (авторегрессия)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_avgArray Вычисление среднего массива данных из множества];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_sortedArray Сортировка массива данных с сохранением исходных индексов];&lt;br /&gt;
&lt;br /&gt;
== Библиотека функций GTLd-daemon: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_async Асинхронная обработка данных в демоне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_recorder Использование рекордера в движке];&lt;br /&gt;
&lt;br /&gt;
== Практические примеры ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results_var Варианты компоновки результатов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.scripts_var Примеры диагностических скриптов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trends_var Примеры построения трендов параметров];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trendspec_var Примеры построения трендов параметров и построение спектра при превышении порогового значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.ranges_var Примеры выбора диапазонов востроизведения сигнала по триггеру];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.triggers_var Пример определения направления вращения по сдвигу фазы двух источников импульсов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.round_var Пример построения круговой диаграммы временного сигнала вибрации];&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.player&amp;diff=1415</id>
		<title>Gtl.player</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.player&amp;diff=1415"/>
		<updated>2026-10-16T06:11:00Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Пример использования */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для управления диапазонами (участками) воспроизведения сигнала вибрации в плеере. Используется в случае необходимости анализа вибрации на конкретных участках сигнала.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Диапазоны различают:&lt;br /&gt;
1. Сохраненные, заданные вручную на графике;&lt;br /&gt;
2. Пользовательские, заданные в скрипте;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Если пользовательские диапазоны не заданы или представляют собой пустой массив, то диапазоны берутся из файла (заданные на графике). Если и они пустые, то воспроизводится весь файл от начала до конца.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let player = gtl.player;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;player.stored_ranges = [];&amp;lt;/code&amp;gt; - массив диапазонов из файла (заданые вручную на графике). Только чтение;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;player.custom_ranges = [];&amp;lt;/code&amp;gt; - массив пользовательских диапазонов. Запись/чтение;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;player.play_all = true;&amp;lt;/code&amp;gt; - принудительное воспроизведение всего файла. По умолчанию false;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;player.cyclic = false;&amp;lt;/code&amp;gt; - циклическое воспроизведение. По умолчанию true. Плеер запускается сразу после старта скрипта.&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;player.play_time = 12;&amp;lt;/code&amp;gt; - расчетное время воспроизведения файла, сек;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;player.start();&amp;lt;/code&amp;gt; - запуск воспроизведения;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;player.finished.connect(function);&amp;lt;/code&amp;gt; - обработчик события окончания воспроизведения;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Примечание:&lt;br /&gt;
Массивы диапазонов представляют собой массивы объектов с указанием левой и правой границы участка в секундах:&lt;br /&gt;
player.custom_ranges = [{min: 1, max: 2}, {min: 10, max: 12}]; //задаем два диапазона&lt;br /&gt;
где:&lt;br /&gt;
min - левая граница диапазона;&lt;br /&gt;
max - правая граница диапазона;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
let plot = gtl.plots.add(&amp;quot;signals&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
let counter = 0;&lt;br /&gt;
gtl.player.finished.connect(finished_playing)&lt;br /&gt;
gtl.log.info(&amp;quot;cyclic&amp;quot;, gtl.player.cyclic);&lt;br /&gt;
&lt;br /&gt;
//циклическое воспроизведение. по умолчанию true. плеер запускается сразу после старта скрипта.&lt;br /&gt;
gtl.player.cyclic = false;&lt;br /&gt;
&lt;br /&gt;
// диапазоны из файла (заданые руками на чарте). только чтение.&lt;br /&gt;
let ranges = gtl.player.stored_ranges;&lt;br /&gt;
&lt;br /&gt;
gtl.log.info(&amp;quot;ranges&amp;quot;, JSON.stringify(ranges));&lt;br /&gt;
&lt;br /&gt;
// диапазоны кастомные. запись/чтение&lt;br /&gt;
// логика такая: если кастомные не заданы или пустой массив, то берем из файла. если и они пустые, то воспроизводим весь файл.&lt;br /&gt;
//gtl.player.custom_ranges = [];&lt;br /&gt;
gtl.player.custom_ranges = [{ min: 0, max: .01 }/*, ranges[0]*/];&lt;br /&gt;
gtl.log.info(&amp;quot;ranges&amp;quot;, JSON.stringify(gtl.player.custom_ranges));&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// принудительное воспроизведение всего файла. по умолчанию false&lt;br /&gt;
//gtl.player.play_all = true;&lt;br /&gt;
&lt;br /&gt;
gtl.log.info(&amp;quot;play time&amp;quot;, gtl.player.play_time);&lt;br /&gt;
gtl.analog_inputs[0].history = gtl.player.play_time;&lt;br /&gt;
&lt;br /&gt;
function finished_playing() {&lt;br /&gt;
    gtl.log.info(&amp;quot;playing finished&amp;quot;, counter);&lt;br /&gt;
    plot.add({&lt;br /&gt;
        color: 0xff0000,&lt;br /&gt;
        name: &amp;quot;history buffer&amp;quot;,&lt;br /&gt;
        x: 1 / gtl.analog_inputs[0].rate,&lt;br /&gt;
        y: gtl.analog_inputs[0].getHistoryArray()&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    plot.axis_at(0).fit();&lt;br /&gt;
&lt;br /&gt;
    counter++;&lt;br /&gt;
    if (counter == 2) {&lt;br /&gt;
        gtl.stop();&lt;br /&gt;
        return;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    gtl.player.custom_ranges = [{ min: 0.01, max: .02 }/*, ranges[0]*/];&lt;br /&gt;
    gtl.log.info(&amp;quot;play time&amp;quot;, gtl.player.play_time);&lt;br /&gt;
    gtl.analog_inputs[0].history = gtl.player.play_time;&lt;br /&gt;
    gtl.player.start();&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.player&amp;diff=1414</id>
		<title>Gtl.player</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.player&amp;diff=1414"/>
		<updated>2026-10-16T05:24:44Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Свойства (методы) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для управления диапазонами (участками) воспроизведения сигнала вибрации в плеере. Используется в случае необходимости анализа вибрации на конкретных участках сигнала.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Диапазоны различают:&lt;br /&gt;
1. Сохраненные, заданные вручную на графике;&lt;br /&gt;
2. Пользовательские, заданные в скрипте;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Если пользовательские диапазоны не заданы или представляют собой пустой массив, то диапазоны берутся из файла (заданные на графике). Если и они пустые, то воспроизводится весь файл от начала до конца.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let player = gtl.player;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;player.stored_ranges = [];&amp;lt;/code&amp;gt; - массив диапазонов из файла (заданые вручную на графике). Только чтение;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;player.custom_ranges = [];&amp;lt;/code&amp;gt; - массив пользовательских диапазонов. Запись/чтение;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;player.play_all = true;&amp;lt;/code&amp;gt; - принудительное воспроизведение всего файла. По умолчанию false;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;player.cyclic = false;&amp;lt;/code&amp;gt; - циклическое воспроизведение. По умолчанию true. Плеер запускается сразу после старта скрипта.&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;player.play_time = 12;&amp;lt;/code&amp;gt; - расчетное время воспроизведения файла, сек;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;player.start();&amp;lt;/code&amp;gt; - запуск воспроизведения;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;player.finished.connect(function);&amp;lt;/code&amp;gt; - обработчик события окончания воспроизведения;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Примечание:&lt;br /&gt;
Массивы диапазонов представляют собой массивы объектов с указанием левой и правой границы участка в секундах:&lt;br /&gt;
player.custom_ranges = [{min: 1, max: 2}, {min: 10, max: 12}]; //задаем два диапазона&lt;br /&gt;
где:&lt;br /&gt;
min - левая граница диапазона;&lt;br /&gt;
max - правая граница диапазона;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//диапазоны из файла (заданые вручную на графике). только чтение.&lt;br /&gt;
let ranges = gtl.player.stored_ranges;&lt;br /&gt;
&lt;br /&gt;
//пользовательские диапазоны. запись/чтение&lt;br /&gt;
//gtl.player.custom_ranges = [];&lt;br /&gt;
gtl.player.custom_ranges = [{min : 1, max: 2}, ranges[0]];&lt;br /&gt;
&lt;br /&gt;
//принудительное воспроизведение всего файла. по умолчанию false&lt;br /&gt;
//gtl.player.play_all = true;&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = 1;&lt;br /&gt;
function diagnose()&lt;br /&gt;
{&lt;br /&gt;
  gtl.log.info(&amp;quot;ranges&amp;quot;, JSON.stringify(ranges));&lt;br /&gt;
  gtl.log.info(&amp;quot;ranges&amp;quot;, JSON.stringify(gtl.player.custom_ranges));&lt;br /&gt;
  gtl.log.info(&amp;quot;play time&amp;quot;, gtl.player.play_time);&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.player&amp;diff=1413</id>
		<title>Gtl.player</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.player&amp;diff=1413"/>
		<updated>2026-10-16T05:21:25Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Свойства (методы) */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для управления диапазонами (участками) воспроизведения сигнала вибрации в плеере. Используется в случае необходимости анализа вибрации на конкретных участках сигнала.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Диапазоны различают:&lt;br /&gt;
1. Сохраненные, заданные вручную на графике;&lt;br /&gt;
2. Пользовательские, заданные в скрипте;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Если пользовательские диапазоны не заданы или представляют собой пустой массив, то диапазоны берутся из файла (заданные на графике). Если и они пустые, то воспроизводится весь файл от начала до конца.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let player = gtl.player;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;player.stored_ranges = [];&amp;lt;/code&amp;gt; - массив диапазонов из файла (заданые вручную на графике). Только чтение;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;player.custom_ranges = [];&amp;lt;/code&amp;gt; - массив пользовательских диапазонов. Запись/чтение;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;player.play_all = true;&amp;lt;/code&amp;gt; - принудительное воспроизведение всего файла. По умолчанию false;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;player.cyclic = false;&amp;lt;/code&amp;gt; - циклическое воспроизведение. По умолчанию true. Плеер запускается сразу после старта скрипта.&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;player.play_time = 12;&amp;lt;/code&amp;gt; - расчетное время воспроизведения файла, сек;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;player.start();&amp;lt;/code&amp;gt; - запуск воспроизведения;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Примечание:&lt;br /&gt;
Массивы диапазонов представляют собой массивы объектов с указанием левой и правой границы участка в секундах:&lt;br /&gt;
player.custom_ranges = [{min: 1, max: 2}, {min: 10, max: 12}]; //задаем два диапазона&lt;br /&gt;
где:&lt;br /&gt;
min - левая граница диапазона;&lt;br /&gt;
max - правая граница диапазона;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//диапазоны из файла (заданые вручную на графике). только чтение.&lt;br /&gt;
let ranges = gtl.player.stored_ranges;&lt;br /&gt;
&lt;br /&gt;
//пользовательские диапазоны. запись/чтение&lt;br /&gt;
//gtl.player.custom_ranges = [];&lt;br /&gt;
gtl.player.custom_ranges = [{min : 1, max: 2}, ranges[0]];&lt;br /&gt;
&lt;br /&gt;
//принудительное воспроизведение всего файла. по умолчанию false&lt;br /&gt;
//gtl.player.play_all = true;&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = 1;&lt;br /&gt;
function diagnose()&lt;br /&gt;
{&lt;br /&gt;
  gtl.log.info(&amp;quot;ranges&amp;quot;, JSON.stringify(ranges));&lt;br /&gt;
  gtl.log.info(&amp;quot;ranges&amp;quot;, JSON.stringify(gtl.player.custom_ranges));&lt;br /&gt;
  gtl.log.info(&amp;quot;play time&amp;quot;, gtl.player.play_time);&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1412</id>
		<title>Справочник GTLD:JS-API</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1412"/>
		<updated>2026-10-16T05:12:51Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Библиотека диагностических функций GTLd: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Основные понятия: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.script Диагностические скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.masterscript Мастер-скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.monitoringscript Мониторинговые скрипты];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.node: ==&lt;br /&gt;
Объект gtld.node предоставляет API для доступа к свойствам и методам узлов дерева диагностируемого объекта.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.name Свойство gtld.node.name ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.uuid Свойство gtld.node.uuid ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.options Свойство gtld.node.options ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.parent Свойство gtld.node.parent ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.children Свойство gtld.node.children ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.lastResult Свойство gtld.node.lastResult ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.selectLastResults Метод gtld.node.selectLastResults() ];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.storage: ==&lt;br /&gt;
Объект gtld.storage предназначен для работы с историческими данными.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastPointResults Метод gtld.storage.selectLastPointResults()];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastObjectResults Метод gtld.storage.selectLastObjectResults()];&lt;br /&gt;
&lt;br /&gt;
== Часто используемые функции JavaScript: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_arrays Использование массивов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_objects Использование объектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_if Условное ветвление &amp;lt;code&amp;gt;if(...)&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_switch Конструкция ветвления &amp;lt;code&amp;gt;switch&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_for Цикл &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt;];&lt;br /&gt;
&lt;br /&gt;
== Функции инициализации диагностики GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_common_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_filter_irr Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_freq Определение частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_intg Интегрирование сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_avg Получение скользящего среднего значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_median Получение скользящего медианного значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_offset Получение скользящего значения смещения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_freq Получение скользящего значения частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_max Получение скользящего значения максимальных амплитуд];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_min Получение скользящего значения минимальных амплитуд ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_peak_to_peak Получение скользящего значения размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_corr Получение скользящего значения корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.history Получение массива значений из сигнала (истории)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_apfc Определение АФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_afc Определение АЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_pfc Определение ФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase Разница фаз моногармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase_spec Разница фаз полигармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_coherence Коэффициент когерентности сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_rms Определение СКЗ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_max_data Определение максимального значения СКЗ в заданном временном интервале];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_ampl Определение амплитудных (максимальных) значений];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_peak_to_peak Определение размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_kurt Определение коэффициента эксцесса (куртозис)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_corr Определение коэффициента корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_var Определение дисперсии (разброса значений)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ausp Построение спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_spen Построение спектра огибающей вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_phase Построение фазового спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_psd Построение спектра мощности (спектральная плотность)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_orsp Построение порядкового спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ceps Построение кепстра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.get_kurt_value Определение альтернативного коэффициента эксцесса (по огибающей сигнала)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_thresh_data Вылавливание превышений уровня сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_thresh Определение превышений уровня сигнала в установленном временном окне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.set_timer Установка таймера запуска функций];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.from_csv Загрузка данных из .CSV файла];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.to_csv Экспорт данных в .CSV файл];&lt;br /&gt;
&lt;br /&gt;
== Библиотека диагностических функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_diag_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.interval Интервал запуска функции диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/function_diagnose Основная функция диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.stop Остановка процесса диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.log.info Вывод информации в лог программы диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.options.customOptions Передача параметров в скрипт];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.player Управление процессом воспроизведения сигнала в плеере];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add Отрисовка произвольного графика на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add_axis Управление осями координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_spec_tools Отрисовка компонентов (инструментов) спектра на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.table Формирование произвольной таблицы];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results Получение результатов диагностики];&lt;br /&gt;
&lt;br /&gt;
== Библиотека пользовательских функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filters Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freq Определение частоты вращения по источнику данных и автоматическое уточнение];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_instability Нестабильность частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_functions Определение функциональных частот объектов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freqness Минимально необходимая частота вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_frequency Расчетная центральная частота полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_width Ширина полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_speс_params Расчетные параметры спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_square Интегральная площадь спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_todb Перевод значений массива в дБ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_mod_factor Глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_deep_factor Условная глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_ampl_factor Амплитудный коэффициент];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_std_measures Набор стандартных измерений параметров вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_tools Построение компонентов и частотных линий на спектре];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_corr Коэффициент корреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_autocorr Функция автокорреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_crosscorr Функция кросс-корреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getDefSet Формирование наборов признаков дефектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getCrossSpec Расчет перекрестного спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getFrequencyResponse Расчет частотного отклика];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_thinArray Прореживание массива данных];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_aggregateAverage Аггрегация массива данных];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_linearInterpolate Линейная интерполяция данных массива];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_exponentialSmoothing Экспотенциальное сглаживание];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_linearRegression Линейная регрессия];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_simpleAR1 Простая ARIMA модель (авторегрессия)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_avgArray Вычисление среднего массива данных из множества];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_sortedArray Сортировка массива данных с сохранением исходных индексов];&lt;br /&gt;
&lt;br /&gt;
== Библиотека функций GTLd-daemon: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_async Асинхронная обработка данных в демоне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_recorder Использование рекордера в движке];&lt;br /&gt;
&lt;br /&gt;
== Практические примеры ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results_var Варианты компоновки результатов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.scripts_var Примеры диагностических скриптов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trends_var Примеры построения трендов параметров];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trendspec_var Примеры построения трендов параметров и построение спектра при превышении порогового значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.ranges_var Примеры выбора диапазонов востроизведения сигнала по триггеру];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.triggers_var Пример определения направления вращения по сдвигу фазы двух источников импульсов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.round_var Пример построения круговой диаграммы временного сигнала вибрации];&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.player_start&amp;diff=1411</id>
		<title>Gtl.player start</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.player_start&amp;diff=1411"/>
		<updated>2026-10-16T05:09:37Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: Новая страница: «== Краткое описание == Функция предназначена для управления диапазонами (участками) воспроизведения сигнала вибрации в плеере. Используется в случае необходимости анализа вибрации на конкретных участках сигнала. &amp;lt;pre&amp;gt; Диапазоны различают: 1. Сохраненные,...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для управления диапазонами (участками) воспроизведения сигнала вибрации в плеере. Используется в случае необходимости анализа вибрации на конкретных участках сигнала.&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Диапазоны различают:&lt;br /&gt;
1. Сохраненные, заданные вручную на графике;&lt;br /&gt;
2. Пользовательские, заданные в скрипте;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Если пользовательские диапазоны не заданы или представляют собой пустой массив, то диапазоны берутся из файла (заданные на графике). Если и они пустые, то воспроизводится весь файл от начала до конца.&lt;br /&gt;
&lt;br /&gt;
== Объявление функции ==&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let player = gtl.player;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Свойства (методы) ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;player.stored_ranges = [];&amp;lt;/code&amp;gt; - массив диапазонов из файла (заданые вручную на графике). Только чтение;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;player.custom_ranges = [];&amp;lt;/code&amp;gt; - массив пользовательских диапазонов. Запись/чтение;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;player.play_all = true;&amp;lt;/code&amp;gt; - принудительное воспроизведение всего файла. По умолчанию false;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;player.play_time;&amp;lt;/code&amp;gt; - расчетное время воспроизведения файла, сек;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Примечание:&lt;br /&gt;
Массивы диапазонов представляют собой массивы объектов с указанием левой и правой границы участка в секундах:&lt;br /&gt;
player.custom_ranges = [{min: 1, max: 2}, {min: 10, max: 12}]; //задаем два диапазона&lt;br /&gt;
где:&lt;br /&gt;
min - левая граница диапазона;&lt;br /&gt;
max - правая граница диапазона;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Пример использования ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
//диапазоны из файла (заданые вручную на графике). только чтение.&lt;br /&gt;
let ranges = gtl.player.stored_ranges;&lt;br /&gt;
&lt;br /&gt;
//пользовательские диапазоны. запись/чтение&lt;br /&gt;
//gtl.player.custom_ranges = [];&lt;br /&gt;
gtl.player.custom_ranges = [{min : 1, max: 2}, ranges[0]];&lt;br /&gt;
&lt;br /&gt;
//принудительное воспроизведение всего файла. по умолчанию false&lt;br /&gt;
//gtl.player.play_all = true;&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = 1;&lt;br /&gt;
function diagnose()&lt;br /&gt;
{&lt;br /&gt;
  gtl.log.info(&amp;quot;ranges&amp;quot;, JSON.stringify(ranges));&lt;br /&gt;
  gtl.log.info(&amp;quot;ranges&amp;quot;, JSON.stringify(gtl.player.custom_ranges));&lt;br /&gt;
  gtl.log.info(&amp;quot;play time&amp;quot;, gtl.player.play_time);&lt;br /&gt;
};&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1410</id>
		<title>Справочник GTLD:JS-API</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1410"/>
		<updated>2026-10-16T05:00:07Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Библиотека диагностических функций GTLd: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Основные понятия: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.script Диагностические скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.masterscript Мастер-скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.monitoringscript Мониторинговые скрипты];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.node: ==&lt;br /&gt;
Объект gtld.node предоставляет API для доступа к свойствам и методам узлов дерева диагностируемого объекта.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.name Свойство gtld.node.name ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.uuid Свойство gtld.node.uuid ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.options Свойство gtld.node.options ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.parent Свойство gtld.node.parent ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.children Свойство gtld.node.children ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.lastResult Свойство gtld.node.lastResult ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.selectLastResults Метод gtld.node.selectLastResults() ];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.storage: ==&lt;br /&gt;
Объект gtld.storage предназначен для работы с историческими данными.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastPointResults Метод gtld.storage.selectLastPointResults()];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastObjectResults Метод gtld.storage.selectLastObjectResults()];&lt;br /&gt;
&lt;br /&gt;
== Часто используемые функции JavaScript: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_arrays Использование массивов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_objects Использование объектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_if Условное ветвление &amp;lt;code&amp;gt;if(...)&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_switch Конструкция ветвления &amp;lt;code&amp;gt;switch&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_for Цикл &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt;];&lt;br /&gt;
&lt;br /&gt;
== Функции инициализации диагностики GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_common_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_filter_irr Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_freq Определение частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_intg Интегрирование сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_avg Получение скользящего среднего значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_median Получение скользящего медианного значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_offset Получение скользящего значения смещения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_freq Получение скользящего значения частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_max Получение скользящего значения максимальных амплитуд];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_min Получение скользящего значения минимальных амплитуд ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_peak_to_peak Получение скользящего значения размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_corr Получение скользящего значения корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.history Получение массива значений из сигнала (истории)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_apfc Определение АФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_afc Определение АЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_pfc Определение ФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase Разница фаз моногармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase_spec Разница фаз полигармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_coherence Коэффициент когерентности сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_rms Определение СКЗ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_max_data Определение максимального значения СКЗ в заданном временном интервале];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_ampl Определение амплитудных (максимальных) значений];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_peak_to_peak Определение размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_kurt Определение коэффициента эксцесса (куртозис)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_corr Определение коэффициента корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_var Определение дисперсии (разброса значений)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ausp Построение спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_spen Построение спектра огибающей вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_phase Построение фазового спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_psd Построение спектра мощности (спектральная плотность)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_orsp Построение порядкового спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ceps Построение кепстра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.get_kurt_value Определение альтернативного коэффициента эксцесса (по огибающей сигнала)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_thresh_data Вылавливание превышений уровня сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_thresh Определение превышений уровня сигнала в установленном временном окне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.set_timer Установка таймера запуска функций];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.from_csv Загрузка данных из .CSV файла];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.to_csv Экспорт данных в .CSV файл];&lt;br /&gt;
&lt;br /&gt;
== Библиотека диагностических функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_diag_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.interval Интервал запуска функции диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/function_diagnose Основная функция диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.stop Остановка процесса диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.log.info Вывод информации в лог программы диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.options.customOptions Передача параметров в скрипт];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.player Управление диапазонами (участками) воспроизведения сигнала в плеере];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.player_start Управление процессом воспроизведения сигнала в плеере];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add Отрисовка произвольного графика на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add_axis Управление осями координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_spec_tools Отрисовка компонентов (инструментов) спектра на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.table Формирование произвольной таблицы];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results Получение результатов диагностики];&lt;br /&gt;
&lt;br /&gt;
== Библиотека пользовательских функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filters Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freq Определение частоты вращения по источнику данных и автоматическое уточнение];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_instability Нестабильность частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_functions Определение функциональных частот объектов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freqness Минимально необходимая частота вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_frequency Расчетная центральная частота полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_width Ширина полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_speс_params Расчетные параметры спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_square Интегральная площадь спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_todb Перевод значений массива в дБ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_mod_factor Глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_deep_factor Условная глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_ampl_factor Амплитудный коэффициент];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_std_measures Набор стандартных измерений параметров вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_tools Построение компонентов и частотных линий на спектре];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_corr Коэффициент корреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_autocorr Функция автокорреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_crosscorr Функция кросс-корреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getDefSet Формирование наборов признаков дефектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getCrossSpec Расчет перекрестного спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getFrequencyResponse Расчет частотного отклика];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_thinArray Прореживание массива данных];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_aggregateAverage Аггрегация массива данных];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_linearInterpolate Линейная интерполяция данных массива];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_exponentialSmoothing Экспотенциальное сглаживание];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_linearRegression Линейная регрессия];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_simpleAR1 Простая ARIMA модель (авторегрессия)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_avgArray Вычисление среднего массива данных из множества];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_sortedArray Сортировка массива данных с сохранением исходных индексов];&lt;br /&gt;
&lt;br /&gt;
== Библиотека функций GTLd-daemon: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_async Асинхронная обработка данных в демоне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_recorder Использование рекордера в движке];&lt;br /&gt;
&lt;br /&gt;
== Практические примеры ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results_var Варианты компоновки результатов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.scripts_var Примеры диагностических скриптов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trends_var Примеры построения трендов параметров];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trendspec_var Примеры построения трендов параметров и построение спектра при превышении порогового значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.ranges_var Примеры выбора диапазонов востроизведения сигнала по триггеру];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.triggers_var Пример определения направления вращения по сдвигу фазы двух источников импульсов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.round_var Пример построения круговой диаграммы временного сигнала вибрации];&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1409</id>
		<title>Справочник GTLD:JS-API</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1409"/>
		<updated>2026-10-16T04:58:47Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Библиотека диагностических функций GTLd: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Основные понятия: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.script Диагностические скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.masterscript Мастер-скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.monitoringscript Мониторинговые скрипты];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.node: ==&lt;br /&gt;
Объект gtld.node предоставляет API для доступа к свойствам и методам узлов дерева диагностируемого объекта.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.name Свойство gtld.node.name ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.uuid Свойство gtld.node.uuid ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.options Свойство gtld.node.options ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.parent Свойство gtld.node.parent ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.children Свойство gtld.node.children ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.lastResult Свойство gtld.node.lastResult ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.selectLastResults Метод gtld.node.selectLastResults() ];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.storage: ==&lt;br /&gt;
Объект gtld.storage предназначен для работы с историческими данными.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastPointResults Метод gtld.storage.selectLastPointResults()];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastObjectResults Метод gtld.storage.selectLastObjectResults()];&lt;br /&gt;
&lt;br /&gt;
== Часто используемые функции JavaScript: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_arrays Использование массивов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_objects Использование объектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_if Условное ветвление &amp;lt;code&amp;gt;if(...)&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_switch Конструкция ветвления &amp;lt;code&amp;gt;switch&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_for Цикл &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt;];&lt;br /&gt;
&lt;br /&gt;
== Функции инициализации диагностики GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_common_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_filter_irr Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_freq Определение частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_intg Интегрирование сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_avg Получение скользящего среднего значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_median Получение скользящего медианного значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_offset Получение скользящего значения смещения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_freq Получение скользящего значения частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_max Получение скользящего значения максимальных амплитуд];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_min Получение скользящего значения минимальных амплитуд ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_peak_to_peak Получение скользящего значения размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_corr Получение скользящего значения корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.history Получение массива значений из сигнала (истории)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_apfc Определение АФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_afc Определение АЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_pfc Определение ФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase Разница фаз моногармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase_spec Разница фаз полигармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_coherence Коэффициент когерентности сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_rms Определение СКЗ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_max_data Определение максимального значения СКЗ в заданном временном интервале];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_ampl Определение амплитудных (максимальных) значений];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_peak_to_peak Определение размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_kurt Определение коэффициента эксцесса (куртозис)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_corr Определение коэффициента корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_var Определение дисперсии (разброса значений)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ausp Построение спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_spen Построение спектра огибающей вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_phase Построение фазового спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_psd Построение спектра мощности (спектральная плотность)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_orsp Построение порядкового спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ceps Построение кепстра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.get_kurt_value Определение альтернативного коэффициента эксцесса (по огибающей сигнала)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_thresh_data Вылавливание превышений уровня сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_thresh Определение превышений уровня сигнала в установленном временном окне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.set_timer Установка таймера запуска функций];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.from_csv Загрузка данных из .CSV файла];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.to_csv Экспорт данных в .CSV файл];&lt;br /&gt;
&lt;br /&gt;
== Библиотека диагностических функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_diag_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.interval Интервал запуска функции диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/function_diagnose Основная функция диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.stop Остановка процесса диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.log.info Вывод информации в лог программы диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.options.customOptions Передача параметров в скрипт];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.player Управление диапазонами (участками) воспроизведения сигнала в плеере];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.player_start Управление диапазонами (участками) воспроизведения сигнала в плеере];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add Отрисовка произвольного графика на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add_axis Управление осями координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_spec_tools Отрисовка компонентов (инструментов) спектра на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.table Формирование произвольной таблицы];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results Получение результатов диагностики];&lt;br /&gt;
&lt;br /&gt;
== Библиотека пользовательских функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filters Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freq Определение частоты вращения по источнику данных и автоматическое уточнение];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_instability Нестабильность частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_functions Определение функциональных частот объектов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freqness Минимально необходимая частота вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_frequency Расчетная центральная частота полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_width Ширина полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_speс_params Расчетные параметры спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_square Интегральная площадь спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_todb Перевод значений массива в дБ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_mod_factor Глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_deep_factor Условная глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_ampl_factor Амплитудный коэффициент];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_std_measures Набор стандартных измерений параметров вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_tools Построение компонентов и частотных линий на спектре];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_corr Коэффициент корреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_autocorr Функция автокорреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_crosscorr Функция кросс-корреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getDefSet Формирование наборов признаков дефектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getCrossSpec Расчет перекрестного спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getFrequencyResponse Расчет частотного отклика];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_thinArray Прореживание массива данных];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_aggregateAverage Аггрегация массива данных];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_linearInterpolate Линейная интерполяция данных массива];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_exponentialSmoothing Экспотенциальное сглаживание];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_linearRegression Линейная регрессия];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_simpleAR1 Простая ARIMA модель (авторегрессия)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_avgArray Вычисление среднего массива данных из множества];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_sortedArray Сортировка массива данных с сохранением исходных индексов];&lt;br /&gt;
&lt;br /&gt;
== Библиотека функций GTLd-daemon: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_async Асинхронная обработка данных в демоне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_recorder Использование рекордера в движке];&lt;br /&gt;
&lt;br /&gt;
== Практические примеры ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results_var Варианты компоновки результатов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.scripts_var Примеры диагностических скриптов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trends_var Примеры построения трендов параметров];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trendspec_var Примеры построения трендов параметров и построение спектра при превышении порогового значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.ranges_var Примеры выбора диапазонов востроизведения сигнала по триггеру];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.triggers_var Пример определения направления вращения по сдвигу фазы двух источников импульсов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.round_var Пример построения круговой диаграммы временного сигнала вибрации];&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1408</id>
		<title>Справочник GTLD:JS-API</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1408"/>
		<updated>2026-10-16T04:57:45Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Основные понятия: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.script Диагностические скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.masterscript Мастер-скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.monitoringscript Мониторинговые скрипты];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.node: ==&lt;br /&gt;
Объект gtld.node предоставляет API для доступа к свойствам и методам узлов дерева диагностируемого объекта.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.name Свойство gtld.node.name ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.uuid Свойство gtld.node.uuid ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.options Свойство gtld.node.options ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.parent Свойство gtld.node.parent ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.children Свойство gtld.node.children ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.lastResult Свойство gtld.node.lastResult ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.selectLastResults Метод gtld.node.selectLastResults() ];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.storage: ==&lt;br /&gt;
Объект gtld.storage предназначен для работы с историческими данными.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastPointResults Метод gtld.storage.selectLastPointResults()];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastObjectResults Метод gtld.storage.selectLastObjectResults()];&lt;br /&gt;
&lt;br /&gt;
== Часто используемые функции JavaScript: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_arrays Использование массивов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_objects Использование объектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_if Условное ветвление &amp;lt;code&amp;gt;if(...)&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_switch Конструкция ветвления &amp;lt;code&amp;gt;switch&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_for Цикл &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt;];&lt;br /&gt;
&lt;br /&gt;
== Функции инициализации диагностики GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_common_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_filter_irr Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_freq Определение частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_intg Интегрирование сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_avg Получение скользящего среднего значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_median Получение скользящего медианного значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_offset Получение скользящего значения смещения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_freq Получение скользящего значения частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_max Получение скользящего значения максимальных амплитуд];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_min Получение скользящего значения минимальных амплитуд ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_peak_to_peak Получение скользящего значения размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_corr Получение скользящего значения корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.history Получение массива значений из сигнала (истории)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_apfc Определение АФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_afc Определение АЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_pfc Определение ФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase Разница фаз моногармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase_spec Разница фаз полигармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_coherence Коэффициент когерентности сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_rms Определение СКЗ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_max_data Определение максимального значения СКЗ в заданном временном интервале];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_ampl Определение амплитудных (максимальных) значений];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_peak_to_peak Определение размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_kurt Определение коэффициента эксцесса (куртозис)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_corr Определение коэффициента корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_var Определение дисперсии (разброса значений)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ausp Построение спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_spen Построение спектра огибающей вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_phase Построение фазового спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_psd Построение спектра мощности (спектральная плотность)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_orsp Построение порядкового спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ceps Построение кепстра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.get_kurt_value Определение альтернативного коэффициента эксцесса (по огибающей сигнала)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_thresh_data Вылавливание превышений уровня сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_thresh Определение превышений уровня сигнала в установленном временном окне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.set_timer Установка таймера запуска функций];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.from_csv Загрузка данных из .CSV файла];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.to_csv Экспорт данных в .CSV файл];&lt;br /&gt;
&lt;br /&gt;
== Библиотека диагностических функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_diag_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.interval Интервал запуска функции диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/function_diagnose Основная функция диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.stop Остановка процесса диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.log.info Вывод информации в лог программы диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.options.customOptions Передача параметров в скрипт];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.player Управление диапазонами (участками) воспроизведения сигнала в плеере];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add Отрисовка произвольного графика на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add_axis Управление осями координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_spec_tools Отрисовка компонентов (инструментов) спектра на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.table Формирование произвольной таблицы];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results Получение результатов диагностики];&lt;br /&gt;
&lt;br /&gt;
== Библиотека пользовательских функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filters Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freq Определение частоты вращения по источнику данных и автоматическое уточнение];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_instability Нестабильность частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_functions Определение функциональных частот объектов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freqness Минимально необходимая частота вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_frequency Расчетная центральная частота полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_width Ширина полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_speс_params Расчетные параметры спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_square Интегральная площадь спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_todb Перевод значений массива в дБ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_mod_factor Глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_deep_factor Условная глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_ampl_factor Амплитудный коэффициент];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_std_measures Набор стандартных измерений параметров вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_tools Построение компонентов и частотных линий на спектре];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_corr Коэффициент корреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_autocorr Функция автокорреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_crosscorr Функция кросс-корреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getDefSet Формирование наборов признаков дефектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getCrossSpec Расчет перекрестного спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getFrequencyResponse Расчет частотного отклика];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_thinArray Прореживание массива данных];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_aggregateAverage Аггрегация массива данных];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_linearInterpolate Линейная интерполяция данных массива];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_exponentialSmoothing Экспотенциальное сглаживание];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_linearRegression Линейная регрессия];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_simpleAR1 Простая ARIMA модель (авторегрессия)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_avgArray Вычисление среднего массива данных из множества];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_sortedArray Сортировка массива данных с сохранением исходных индексов];&lt;br /&gt;
&lt;br /&gt;
== Библиотека функций GTLd-daemon: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_async Асинхронная обработка данных в демоне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_recorder Использование рекордера в движке];&lt;br /&gt;
&lt;br /&gt;
== Практические примеры ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results_var Варианты компоновки результатов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.scripts_var Примеры диагностических скриптов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trends_var Примеры построения трендов параметров];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trendspec_var Примеры построения трендов параметров и построение спектра при превышении порогового значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.ranges_var Примеры выбора диапазонов востроизведения сигнала по триггеру];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.triggers_var Пример определения направления вращения по сдвигу фазы двух источников импульсов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.round_var Пример построения круговой диаграммы временного сигнала вибрации];&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1407</id>
		<title>Справочник GTLD:JS-API</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1407"/>
		<updated>2026-10-09T05:04:58Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Функции инициализации диагностики GTLd: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Основные понятия: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.script Диагностические скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.masterscript Мастер-скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.monitoringscript Мониторинговые скрипты];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.node: ==&lt;br /&gt;
Объект gtld.node предоставляет API для доступа к свойствам и методам узлов дерева диагностируемого объекта.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.name Свойство gtld.node.name ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.uuid Свойство gtld.node.uuid ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.options Свойство gtld.node.options ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.parent Свойство gtld.node.parent ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.children Свойство gtld.node.children ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.lastResult Свойство gtld.node.lastResult ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.selectLastResults Метод gtld.node.selectLastResults() ];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.storage: ==&lt;br /&gt;
Объект gtld.storage предназначен для работы с историческими данными.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastPointResults Метод gtld.storage.selectLastPointResults()];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastObjectResults Метод gtld.storage.selectLastObjectResults()];&lt;br /&gt;
&lt;br /&gt;
== Часто используемые функции JavaScript: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_arrays Использование массивов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_objects Использование объектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_if Условное ветвление &amp;lt;code&amp;gt;if(...)&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_switch Конструкция ветвления &amp;lt;code&amp;gt;switch&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_for Цикл &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt;];&lt;br /&gt;
&lt;br /&gt;
== Функции инициализации диагностики GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_common_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_filter_irr Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_freq Определение частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_intg Интегрирование сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_avg Получение скользящего среднего значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_median Получение скользящего медианного значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_offset Получение скользящего значения смещения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_freq Получение скользящего значения частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_max Получение скользящего значения максимальных амплитуд];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_min Получение скользящего значения минимальных амплитуд ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_peak_to_peak Получение скользящего значения размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_corr Получение скользящего значения корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.history Получение массива значений из сигнала (истории)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_apfc Определение АФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_afc Определение АЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_pfc Определение ФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase Разница фаз моногармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase_spec Разница фаз полигармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_coherence Коэффициент когерентности сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_rms Определение СКЗ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_max_data Определение максимального значения СКЗ в заданном временном интервале];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_ampl Определение амплитудных (максимальных) значений];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_peak_to_peak Определение размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_kurt Определение коэффициента эксцесса (куртозис)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_corr Определение коэффициента корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_var Определение дисперсии (разброса значений)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ausp Построение спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_spen Построение спектра огибающей вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_phase Построение фазового спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_psd Построение спектра мощности (спектральная плотность)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_orsp Построение порядкового спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ceps Построение кепстра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.get_kurt_value Определение альтернативного коэффициента эксцесса (по огибающей сигнала)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_thresh_data Вылавливание превышений уровня сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_thresh Определение превышений уровня сигнала в установленном временном окне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.player Управление диапазонами (участками) воспроизведения сигнала в плеере];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.set_timer Установка таймера запуска функций];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.from_csv Загрузка данных из .CSV файла];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.to_csv Экспорт данных в .CSV файл];&lt;br /&gt;
&lt;br /&gt;
== Библиотека диагностических функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_diag_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.interval Интервал запуска функции диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/function_diagnose Основная функция диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.stop Остановка процесса диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.log.info Вывод информации в лог программы диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.options.customOptions Передача параметров в скрипт];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add Отрисовка произвольного графика на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add_axis Управление осями координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_spec_tools Отрисовка компонентов (инструментов) спектра на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.table Формирование произвольной таблицы];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results Получение результатов диагностики];&lt;br /&gt;
&lt;br /&gt;
== Библиотека пользовательских функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filters Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freq Определение частоты вращения по источнику данных и автоматическое уточнение];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_instability Нестабильность частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_functions Определение функциональных частот объектов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freqness Минимально необходимая частота вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_frequency Расчетная центральная частота полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_width Ширина полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_speс_params Расчетные параметры спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_square Интегральная площадь спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_todb Перевод значений массива в дБ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_mod_factor Глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_deep_factor Условная глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_ampl_factor Амплитудный коэффициент];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_std_measures Набор стандартных измерений параметров вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_tools Построение компонентов и частотных линий на спектре];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_corr Коэффициент корреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_autocorr Функция автокорреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_crosscorr Функция кросс-корреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getDefSet Формирование наборов признаков дефектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getCrossSpec Расчет перекрестного спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getFrequencyResponse Расчет частотного отклика];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_thinArray Прореживание массива данных];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_aggregateAverage Аггрегация массива данных];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_linearInterpolate Линейная интерполяция данных массива];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_exponentialSmoothing Экспотенциальное сглаживание];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_linearRegression Линейная регрессия];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_simpleAR1 Простая ARIMA модель (авторегрессия)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_avgArray Вычисление среднего массива данных из множества];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_sortedArray Сортировка массива данных с сохранением исходных индексов];&lt;br /&gt;
&lt;br /&gt;
== Библиотека функций GTLd-daemon: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_async Асинхронная обработка данных в демоне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_recorder Использование рекордера в движке];&lt;br /&gt;
&lt;br /&gt;
== Практические примеры ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results_var Варианты компоновки результатов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.scripts_var Примеры диагностических скриптов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trends_var Примеры построения трендов параметров];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trendspec_var Примеры построения трендов параметров и построение спектра при превышении порогового значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.ranges_var Примеры выбора диапазонов востроизведения сигнала по триггеру];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.triggers_var Пример определения направления вращения по сдвигу фазы двух источников импульсов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.round_var Пример построения круговой диаграммы временного сигнала вибрации];&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtld_sortedArray&amp;diff=1406</id>
		<title>Gtld sortedArray</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtld_sortedArray&amp;diff=1406"/>
		<updated>2026-10-09T05:03:47Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: Новая страница: «== Краткое описание == Функция предназначена для сортировки массива данных по убыванию с сохранением исходных индексов его элементов. Данная функция используется для ранжирования значений с дальнейшим использованием рангов.    &amp;lt;p style=&amp;quot;color: red&amp;gt;Cодержание фу...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для сортировки массива данных по убыванию с сохранением исходных индексов его элементов. Данная функция используется для ранжирования значений с дальнейшим использованием рангов.   &lt;br /&gt;
&amp;lt;p style=&amp;quot;color: red&amp;gt;Cодержание функции может дополняться!&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
Стандартная конструкция выглядит таким образом:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let __sortedArr = getSortedArray(array);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Аргументы ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;array&amp;lt;/code&amp;gt; - исходный массив числовых данных;&lt;br /&gt;
&lt;br /&gt;
== Содержание функции ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * Сортирует массив чисел по убыванию и возвращает как отсортированные значения,&lt;br /&gt;
 * так и соответствующие им индексы из исходного массива.&lt;br /&gt;
 *&lt;br /&gt;
 * @param {number[]} arr - Массив чисел для сортировки.&lt;br /&gt;
 * @returns {{ values: number[], indices: number[] }} Объект с двумя полями:&lt;br /&gt;
 *   - values: массив значений, отсортированных по убыванию;&lt;br /&gt;
 *   - indices: массив индексов элементов в исходном массиве, соответствующих&lt;br /&gt;
 *     порядку отсортированных значений.&lt;br /&gt;
 *&lt;br /&gt;
 * @example&lt;br /&gt;
 * const result = getSortedArray([10, 3, 8, 15]);&lt;br /&gt;
 * // result.values  =&amp;gt; [15, 10, 8, 3]&lt;br /&gt;
 * // result.indices =&amp;gt; [3, 0, 2, 1]&lt;br /&gt;
 */&lt;br /&gt;
function getSortedArray(arr) {&lt;br /&gt;
    const indexed = arr.map((value, index) =&amp;gt; ({ value, index })); //создаём массив объектов со значением и исходным индексом &lt;br /&gt;
    indexed.sort((a, b) =&amp;gt; b.value - a.value); //сортируем по значению по убыванию&lt;br /&gt;
    const sortedValues = indexed.map(item =&amp;gt; item.value); //получаем отсортированные значения&lt;br /&gt;
    const sortedIndices = indexed.map(item =&amp;gt; item.index); //получаем индексы элементов в исходном массиве в порядке сортировки&lt;br /&gt;
    &lt;br /&gt;
    return {&lt;br /&gt;
        values: sortedValues,&lt;br /&gt;
        indices: sortedIndices&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1405</id>
		<title>Справочник GTLD:JS-API</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1405"/>
		<updated>2026-10-09T05:03:38Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Библиотека пользовательских функций GTLd: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Основные понятия: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.script Диагностические скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.masterscript Мастер-скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.monitoringscript Мониторинговые скрипты];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.node: ==&lt;br /&gt;
Объект gtld.node предоставляет API для доступа к свойствам и методам узлов дерева диагностируемого объекта.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.name Свойство gtld.node.name ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.uuid Свойство gtld.node.uuid ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.options Свойство gtld.node.options ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.parent Свойство gtld.node.parent ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.children Свойство gtld.node.children ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.lastResult Свойство gtld.node.lastResult ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.selectLastResults Метод gtld.node.selectLastResults() ];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.storage: ==&lt;br /&gt;
Объект gtld.storage предназначен для работы с историческими данными.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastPointResults Метод gtld.storage.selectLastPointResults()];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastObjectResults Метод gtld.storage.selectLastObjectResults()];&lt;br /&gt;
&lt;br /&gt;
== Часто используемые функции JavaScript: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_arrays Использование массивов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_objects Использование объектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_if Условное ветвление &amp;lt;code&amp;gt;if(...)&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_switch Конструкция ветвления &amp;lt;code&amp;gt;switch&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_for Цикл &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt;];&lt;br /&gt;
&lt;br /&gt;
== Функции инициализации диагностики GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_common_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_filter_irr Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_freq Определение частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_intg Интегрирование сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_avg Получение скользящего среднего значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_median Получение скользящего медианного значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_offset Получение скользящего значения смещения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_freq Получение скользящего значения частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_max Получение скользящего значения максимальных амплитуд];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_min Получение скользящего значения минимальных амплитуд ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_peak_to_peak Получение скользящего значения размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_corr Получение скользящего значения корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.history Получение массива значений из сигнала (истории)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_apfc Определение АФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_afc Определение АЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_pfc Определение ФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase Разница фаз моногармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase_spec Разница фаз полигармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_coherence Коэффициент когерентности сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_rms Определение СКЗ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_max_data Определение максимального значения СКЗ в заданном временном интервале];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_ampl Определение амплитудных (максимальных) значений];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_peak_to_peak Определение размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_kurt Определение коэффициента эксцесса (куртозис)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_corr Определение коэффициента корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_var Определение дисперсии (разброса значений)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ausp Построение спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_spen Построение спектра огибающей вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_phase Построение фазового спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_psd Построение спектра мощности (спектральная плотность)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_orsp Построение порядкового спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ceps Построение кепстра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.get_kurt_value Определение альтернативного коэффициента эксцесса (по огибающей сигнала)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_thresh_data Вылавливание превышений уровня сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_thresh Определение превышений уровня сигнала в установленном временном окне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.player Управление диапазонами (участками) воспроизведения сигнала в плеере];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.set_timer Установка таймера запуска функций];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.from_csv Загрузка данных из csv файла];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.to_csv Экспорт данных в csv файл];&lt;br /&gt;
&lt;br /&gt;
== Библиотека диагностических функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_diag_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.interval Интервал запуска функции диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/function_diagnose Основная функция диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.stop Остановка процесса диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.log.info Вывод информации в лог программы диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.options.customOptions Передача параметров в скрипт];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add Отрисовка произвольного графика на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add_axis Управление осями координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_spec_tools Отрисовка компонентов (инструментов) спектра на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.table Формирование произвольной таблицы];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results Получение результатов диагностики];&lt;br /&gt;
&lt;br /&gt;
== Библиотека пользовательских функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filters Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freq Определение частоты вращения по источнику данных и автоматическое уточнение];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_instability Нестабильность частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_functions Определение функциональных частот объектов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freqness Минимально необходимая частота вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_frequency Расчетная центральная частота полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_width Ширина полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_speс_params Расчетные параметры спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_square Интегральная площадь спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_todb Перевод значений массива в дБ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_mod_factor Глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_deep_factor Условная глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_ampl_factor Амплитудный коэффициент];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_std_measures Набор стандартных измерений параметров вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_tools Построение компонентов и частотных линий на спектре];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_corr Коэффициент корреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_autocorr Функция автокорреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_crosscorr Функция кросс-корреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getDefSet Формирование наборов признаков дефектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getCrossSpec Расчет перекрестного спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getFrequencyResponse Расчет частотного отклика];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_thinArray Прореживание массива данных];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_aggregateAverage Аггрегация массива данных];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_linearInterpolate Линейная интерполяция данных массива];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_exponentialSmoothing Экспотенциальное сглаживание];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_linearRegression Линейная регрессия];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_simpleAR1 Простая ARIMA модель (авторегрессия)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_avgArray Вычисление среднего массива данных из множества];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_sortedArray Сортировка массива данных с сохранением исходных индексов];&lt;br /&gt;
&lt;br /&gt;
== Библиотека функций GTLd-daemon: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_async Асинхронная обработка данных в демоне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_recorder Использование рекордера в движке];&lt;br /&gt;
&lt;br /&gt;
== Практические примеры ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results_var Варианты компоновки результатов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.scripts_var Примеры диагностических скриптов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trends_var Примеры построения трендов параметров];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trendspec_var Примеры построения трендов параметров и построение спектра при превышении порогового значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.ranges_var Примеры выбора диапазонов востроизведения сигнала по триггеру];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.triggers_var Пример определения направления вращения по сдвигу фазы двух источников импульсов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.round_var Пример построения круговой диаграммы временного сигнала вибрации];&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtld_sortedArra&amp;diff=1404</id>
		<title>Gtld sortedArra</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtld_sortedArra&amp;diff=1404"/>
		<updated>2026-10-09T05:00:19Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: Новая страница: «== Краткое описание == Функция предназначена для сортировки массива данных по убыванию с сохранением исходных индексов его элементов. Данная функция используется для ранжирования значений с дальнейшим использованием рангов.    &amp;lt;p style=&amp;quot;color: red&amp;gt;Cодержание фу...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для сортировки массива данных по убыванию с сохранением исходных индексов его элементов. Данная функция используется для ранжирования значений с дальнейшим использованием рангов.   &lt;br /&gt;
&amp;lt;p style=&amp;quot;color: red&amp;gt;Cодержание функции может дополняться!&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
Стандартная конструкция выглядит таким образом:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let __sortedArr = getSortedArray(array);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Аргументы ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;array&amp;lt;/code&amp;gt; - исходный массив числовых данных;&lt;br /&gt;
&lt;br /&gt;
== Содержание функции ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * Сортирует массив чисел по убыванию и возвращает как отсортированные значения,&lt;br /&gt;
 * так и соответствующие им индексы из исходного массива.&lt;br /&gt;
 *&lt;br /&gt;
 * @param {number[]} arr - Массив чисел для сортировки.&lt;br /&gt;
 * @returns {{ values: number[], indices: number[] }} Объект с двумя полями:&lt;br /&gt;
 *   - values: массив значений, отсортированных по убыванию;&lt;br /&gt;
 *   - indices: массив индексов элементов в исходном массиве, соответствующих&lt;br /&gt;
 *     порядку отсортированных значений.&lt;br /&gt;
 *&lt;br /&gt;
 * @example&lt;br /&gt;
 * const result = getSortedArray([10, 3, 8, 15]);&lt;br /&gt;
 * // result.values  =&amp;gt; [15, 10, 8, 3]&lt;br /&gt;
 * // result.indices =&amp;gt; [3, 0, 2, 1]&lt;br /&gt;
 */&lt;br /&gt;
function getSortedArray(arr) {&lt;br /&gt;
    const indexed = arr.map((value, index) =&amp;gt; ({ value, index })); //создаём массив объектов со значением и исходным индексом &lt;br /&gt;
    indexed.sort((a, b) =&amp;gt; b.value - a.value); //сортируем по значению по убыванию&lt;br /&gt;
    const sortedValues = indexed.map(item =&amp;gt; item.value); //получаем отсортированные значения&lt;br /&gt;
    const sortedIndices = indexed.map(item =&amp;gt; item.index); //получаем индексы элементов в исходном массиве в порядке сортировки&lt;br /&gt;
    &lt;br /&gt;
    return {&lt;br /&gt;
        values: sortedValues,&lt;br /&gt;
        indices: sortedIndices&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtld_avgArray&amp;diff=1403</id>
		<title>Gtld avgArray</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtld_avgArray&amp;diff=1403"/>
		<updated>2026-10-09T04:58:36Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Аргументы */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для вычисления среднего массива из множества массивов данных. Данная функция используется для получения среднего (эталонного) массива данных.   &lt;br /&gt;
&amp;lt;p style=&amp;quot;color: red&amp;gt;Cодержание функции может дополняться!&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
Стандартная конструкция выглядит таким образом:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let __avgArr = getAvgArray(arrays);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Аргументы ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;arrays&amp;lt;/code&amp;gt; - исходный массив числовых массивов данных;&lt;br /&gt;
&lt;br /&gt;
== Содержание функции ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * Вычисляет среднее арифметическое для каждого индекса по всем вложенным массивам.&lt;br /&gt;
 *&lt;br /&gt;
 * Функция принимает массив числовых массивов одинаковой длины и возвращает новый массив,&lt;br /&gt;
 * где каждый элемент — это среднее значение элементов с тем же индексом из всех входных массивов.&lt;br /&gt;
 *&lt;br /&gt;
 * @param {number[][]} arrays - Массив числовых массивов одинаковой длины.&lt;br /&gt;
 * @returns {number[]} Массив средних значений по каждому индексу.&lt;br /&gt;
 */&lt;br /&gt;
function getAvgArray(arrays) {&lt;br /&gt;
    const length = arrays[0].length; //длина вложенного массива&lt;br /&gt;
    const result = new Array(length); //новый массив фиксированной длины, чтобы не пушить&lt;br /&gt;
    const numArrays = arrays.length; //количество вложенных массивов&lt;br /&gt;
&lt;br /&gt;
    for (let i = 0; i &amp;lt; length; i++) {&lt;br /&gt;
        let sum = 0;&lt;br /&gt;
        for (let j = 0; j &amp;lt; numArrays; j++) { sum += arrays[j][i] }&lt;br /&gt;
        result[i] = sum / numArrays;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return result;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtld_avgArray&amp;diff=1402</id>
		<title>Gtld avgArray</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtld_avgArray&amp;diff=1402"/>
		<updated>2026-10-09T04:58:10Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для вычисления среднего массива из множества массивов данных. Данная функция используется для получения среднего (эталонного) массива данных.   &lt;br /&gt;
&amp;lt;p style=&amp;quot;color: red&amp;gt;Cодержание функции может дополняться!&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
Стандартная конструкция выглядит таким образом:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let __avgArr = getAvgArray(arrays);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Аргументы ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;arrays&amp;lt;/code&amp;gt; - исходный массив числовых данных;&lt;br /&gt;
&lt;br /&gt;
== Содержание функции ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * Вычисляет среднее арифметическое для каждого индекса по всем вложенным массивам.&lt;br /&gt;
 *&lt;br /&gt;
 * Функция принимает массив числовых массивов одинаковой длины и возвращает новый массив,&lt;br /&gt;
 * где каждый элемент — это среднее значение элементов с тем же индексом из всех входных массивов.&lt;br /&gt;
 *&lt;br /&gt;
 * @param {number[][]} arrays - Массив числовых массивов одинаковой длины.&lt;br /&gt;
 * @returns {number[]} Массив средних значений по каждому индексу.&lt;br /&gt;
 */&lt;br /&gt;
function getAvgArray(arrays) {&lt;br /&gt;
    const length = arrays[0].length; //длина вложенного массива&lt;br /&gt;
    const result = new Array(length); //новый массив фиксированной длины, чтобы не пушить&lt;br /&gt;
    const numArrays = arrays.length; //количество вложенных массивов&lt;br /&gt;
&lt;br /&gt;
    for (let i = 0; i &amp;lt; length; i++) {&lt;br /&gt;
        let sum = 0;&lt;br /&gt;
        for (let j = 0; j &amp;lt; numArrays; j++) { sum += arrays[j][i] }&lt;br /&gt;
        result[i] = sum / numArrays;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return result;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1401</id>
		<title>Справочник GTLD:JS-API</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1401"/>
		<updated>2026-10-09T04:54:25Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Библиотека пользовательских функций GTLd: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Основные понятия: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.script Диагностические скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.masterscript Мастер-скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.monitoringscript Мониторинговые скрипты];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.node: ==&lt;br /&gt;
Объект gtld.node предоставляет API для доступа к свойствам и методам узлов дерева диагностируемого объекта.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.name Свойство gtld.node.name ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.uuid Свойство gtld.node.uuid ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.options Свойство gtld.node.options ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.parent Свойство gtld.node.parent ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.children Свойство gtld.node.children ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.lastResult Свойство gtld.node.lastResult ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.selectLastResults Метод gtld.node.selectLastResults() ];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.storage: ==&lt;br /&gt;
Объект gtld.storage предназначен для работы с историческими данными.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastPointResults Метод gtld.storage.selectLastPointResults()];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastObjectResults Метод gtld.storage.selectLastObjectResults()];&lt;br /&gt;
&lt;br /&gt;
== Часто используемые функции JavaScript: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_arrays Использование массивов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_objects Использование объектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_if Условное ветвление &amp;lt;code&amp;gt;if(...)&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_switch Конструкция ветвления &amp;lt;code&amp;gt;switch&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_for Цикл &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt;];&lt;br /&gt;
&lt;br /&gt;
== Функции инициализации диагностики GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_common_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_filter_irr Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_freq Определение частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_intg Интегрирование сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_avg Получение скользящего среднего значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_median Получение скользящего медианного значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_offset Получение скользящего значения смещения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_freq Получение скользящего значения частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_max Получение скользящего значения максимальных амплитуд];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_min Получение скользящего значения минимальных амплитуд ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_peak_to_peak Получение скользящего значения размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_corr Получение скользящего значения корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.history Получение массива значений из сигнала (истории)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_apfc Определение АФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_afc Определение АЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_pfc Определение ФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase Разница фаз моногармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase_spec Разница фаз полигармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_coherence Коэффициент когерентности сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_rms Определение СКЗ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_max_data Определение максимального значения СКЗ в заданном временном интервале];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_ampl Определение амплитудных (максимальных) значений];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_peak_to_peak Определение размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_kurt Определение коэффициента эксцесса (куртозис)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_corr Определение коэффициента корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_var Определение дисперсии (разброса значений)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ausp Построение спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_spen Построение спектра огибающей вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_phase Построение фазового спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_psd Построение спектра мощности (спектральная плотность)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_orsp Построение порядкового спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ceps Построение кепстра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.get_kurt_value Определение альтернативного коэффициента эксцесса (по огибающей сигнала)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_thresh_data Вылавливание превышений уровня сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_thresh Определение превышений уровня сигнала в установленном временном окне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.player Управление диапазонами (участками) воспроизведения сигнала в плеере];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.set_timer Установка таймера запуска функций];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.from_csv Загрузка данных из csv файла];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.to_csv Экспорт данных в csv файл];&lt;br /&gt;
&lt;br /&gt;
== Библиотека диагностических функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_diag_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.interval Интервал запуска функции диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/function_diagnose Основная функция диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.stop Остановка процесса диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.log.info Вывод информации в лог программы диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.options.customOptions Передача параметров в скрипт];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add Отрисовка произвольного графика на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add_axis Управление осями координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_spec_tools Отрисовка компонентов (инструментов) спектра на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.table Формирование произвольной таблицы];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results Получение результатов диагностики];&lt;br /&gt;
&lt;br /&gt;
== Библиотека пользовательских функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filters Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freq Определение частоты вращения по источнику данных и автоматическое уточнение];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_instability Нестабильность частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_functions Определение функциональных частот объектов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freqness Минимально необходимая частота вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_frequency Расчетная центральная частота полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_width Ширина полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_speс_params Расчетные параметры спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_square Интегральная площадь спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_todb Перевод значений массива в дБ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_mod_factor Глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_deep_factor Условная глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_ampl_factor Амплитудный коэффициент];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_std_measures Набор стандартных измерений параметров вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_tools Построение компонентов и частотных линий на спектре];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_corr Коэффициент корреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_autocorr Функция автокорреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_crosscorr Функция кросс-корреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getDefSet Формирование наборов признаков дефектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getCrossSpec Расчет перекрестного спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getFrequencyResponse Расчет частотного отклика];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_thinArray Прореживание массива данных];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_aggregateAverage Аггрегация массива данных];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_linearInterpolate Линейная интерполяция данных массива];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_exponentialSmoothing Экспотенциальное сглаживание];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_linearRegression Линейная регрессия];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_simpleAR1 Простая ARIMA модель (авторегрессия)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_avgArray Вычисление среднего массива данных из множества];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_sortedArra Сортировка массива данных с сохранением исходных индексов];&lt;br /&gt;
&lt;br /&gt;
== Библиотека функций GTLd-daemon: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_async Асинхронная обработка данных в демоне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_recorder Использование рекордера в движке];&lt;br /&gt;
&lt;br /&gt;
== Практические примеры ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results_var Варианты компоновки результатов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.scripts_var Примеры диагностических скриптов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trends_var Примеры построения трендов параметров];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trendspec_var Примеры построения трендов параметров и построение спектра при превышении порогового значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.ranges_var Примеры выбора диапазонов востроизведения сигнала по триггеру];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.triggers_var Пример определения направления вращения по сдвигу фазы двух источников импульсов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.round_var Пример построения круговой диаграммы временного сигнала вибрации];&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtld_avgArray&amp;diff=1400</id>
		<title>Gtld avgArray</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtld_avgArray&amp;diff=1400"/>
		<updated>2026-09-28T06:15:41Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Содержание функции */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для вычисления среднего массива из множества массивов данных. Данная функция используется для получения среднего (эталонного) массива данных.   &lt;br /&gt;
&amp;lt;p style=&amp;quot;color: red&amp;gt;Cодержание функции может дополняться!&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
Стандартная конструкция выглядит таким образом:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let __avgArr = getAvgArray(arrays);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Аргументы ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;arrays&amp;lt;/code&amp;gt; - исходный массив числовых массивов данных;&lt;br /&gt;
&lt;br /&gt;
== Содержание функции ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * Вычисляет среднее арифметическое для каждого индекса по всем вложенным массивам.&lt;br /&gt;
 *&lt;br /&gt;
 * Функция принимает массив числовых массивов одинаковой длины и возвращает новый массив,&lt;br /&gt;
 * где каждый элемент — это среднее значение элементов с тем же индексом из всех входных массивов.&lt;br /&gt;
 *&lt;br /&gt;
 * @param {number[][]} arrays - Массив числовых массивов одинаковой длины.&lt;br /&gt;
 * @returns {number[]} Массив средних значений по каждому индексу.&lt;br /&gt;
 */&lt;br /&gt;
function getAvgArray(arrays) {&lt;br /&gt;
    const length = arrays[0].length; //длина вложенного массива&lt;br /&gt;
    const result = new Array(length); //новый массив фиксированной длины, чтобы не пушить&lt;br /&gt;
    const numArrays = arrays.length; //количество вложенных массивов&lt;br /&gt;
&lt;br /&gt;
    for (let i = 0; i &amp;lt; length; i++) {&lt;br /&gt;
        let sum = 0;&lt;br /&gt;
        for (let j = 0; j &amp;lt; numArrays; j++) { sum += arrays[j][i] }&lt;br /&gt;
        result[i] = sum / numArrays;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return result;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtld_avgArray&amp;diff=1399</id>
		<title>Gtld avgArray</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtld_avgArray&amp;diff=1399"/>
		<updated>2026-09-28T06:09:34Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: Новая страница: «== Краткое описание == Функция предназначена для вычисления среднего массива из множества массивов данных. Данная функция используется для получения среднего (эталонного) массива данных.    &amp;lt;p style=&amp;quot;color: red&amp;gt;Cодержание функции может дополняться!&amp;lt;/p&amp;gt;  == Синтакси...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для вычисления среднего массива из множества массивов данных. Данная функция используется для получения среднего (эталонного) массива данных.   &lt;br /&gt;
&amp;lt;p style=&amp;quot;color: red&amp;gt;Cодержание функции может дополняться!&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
Стандартная конструкция выглядит таким образом:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let __avgArr = getAvgArray(arrays);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Аргументы ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;arrays&amp;lt;/code&amp;gt; - исходный массив числовых массивов данных;&lt;br /&gt;
&lt;br /&gt;
== Содержание функции ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/**&lt;br /&gt;
 * Вычисляет среднее арифметическое для каждого индекса по всем вложенным массивам.&lt;br /&gt;
 *&lt;br /&gt;
 * Функция принимает массив числовых массивов одинаковой длины и возвращает новый массив,&lt;br /&gt;
 * где каждый элемент — это среднее значение элементов с тем же индексом из всех входных массивов.&lt;br /&gt;
 *&lt;br /&gt;
 * Пример:&lt;br /&gt;
 * ```js&lt;br /&gt;
 * const input = [&lt;br /&gt;
 *   [1, 2, 3],&lt;br /&gt;
 *   [4, 5, 6],&lt;br /&gt;
 *   [7, 8, 9]&lt;br /&gt;
 * ];&lt;br /&gt;
 * getAvgArray(input); // [4, 5, 6]&lt;br /&gt;
 * ```&lt;br /&gt;
 *&lt;br /&gt;
 * @param {number[][]} arrays - Массив числовых массивов одинаковой длины.&lt;br /&gt;
 * @returns {number[]} Массив средних значений по каждому индексу.&lt;br /&gt;
 */&lt;br /&gt;
function getAvgArray(arrays) {&lt;br /&gt;
    const length = arrays[0].length; //длина вложенного массива&lt;br /&gt;
    const result = new Array(length); //новый массив фиксированной длины, чтобы не пушить&lt;br /&gt;
    const numArrays = arrays.length; //количество вложенных массивов&lt;br /&gt;
&lt;br /&gt;
    for (let i = 0; i &amp;lt; length; i++) {&lt;br /&gt;
        let sum = 0;&lt;br /&gt;
        for (let j = 0; j &amp;lt; numArrays; j++) { sum += arrays[j][i] }&lt;br /&gt;
        result[i] = sum / numArrays;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return result;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtld_aggregateAverage&amp;diff=1398</id>
		<title>Gtld aggregateAverage</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtld_aggregateAverage&amp;diff=1398"/>
		<updated>2026-09-28T06:02:36Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для аггрегации массива данных. Функция возвращает массив с указанным количеством элементов. Данная функция используется для уменьшения количества элементов массива путем усреднения данных по группам.   &lt;br /&gt;
&amp;lt;p style=&amp;quot;color: red&amp;gt;Cодержание функции может дополняться!&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
Стандартная конструкция выглядит таким образом:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let __aggr = aggregateAverage(array, M);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Аргументы ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;array&amp;lt;/code&amp;gt; - исходный массив данных;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;M&amp;lt;/code&amp;gt; - длина целевого массива;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Содержание функции ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function aggregateAverage(arr, M) {&lt;br /&gt;
	//Функция для уменьшения элементов исходного массива методом агрегации (среднее по группам)&lt;br /&gt;
	//arr - исходный массив данных&lt;br /&gt;
	//M - длина целевого массива данных&lt;br /&gt;
	const result = []; //массив для результата&lt;br /&gt;
	const N = arr.length; //длина исходного НЧ массива&lt;br /&gt;
	if (M &amp;lt;= 0 || N === 0) return []; //если целевой массив пустой, то возвращаем пустой&lt;br /&gt;
	if (M &amp;gt;= N) return arr.slice(); //если размер целевого &amp;gt;= исходного, то возвращаем копию исходного&lt;br /&gt;
&lt;br /&gt;
	//Разбиваем массив на M групп с примерно равным количеством элементов&lt;br /&gt;
	for (let i = 0; i &amp;lt; M; i++) {&lt;br /&gt;
		const start = Math.floor(i * N / M); //стартовый индекс группы&lt;br /&gt;
		const end = Math.floor((i + 1) * N / M); //конечный индекс группы&lt;br /&gt;
&lt;br /&gt;
		const group = arr.slice(start, end); //вырезаем группу&lt;br /&gt;
		const avg = group.reduce((a, b) =&amp;gt; a + b, 0) / group.length; //считаем среднее в группе&lt;br /&gt;
		result.push(avg);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	return result;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1397</id>
		<title>Справочник GTLD:JS-API</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1397"/>
		<updated>2026-09-28T06:01:57Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Библиотека пользовательских функций GTLd: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Основные понятия: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.script Диагностические скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.masterscript Мастер-скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.monitoringscript Мониторинговые скрипты];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.node: ==&lt;br /&gt;
Объект gtld.node предоставляет API для доступа к свойствам и методам узлов дерева диагностируемого объекта.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.name Свойство gtld.node.name ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.uuid Свойство gtld.node.uuid ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.options Свойство gtld.node.options ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.parent Свойство gtld.node.parent ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.children Свойство gtld.node.children ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.lastResult Свойство gtld.node.lastResult ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.selectLastResults Метод gtld.node.selectLastResults() ];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.storage: ==&lt;br /&gt;
Объект gtld.storage предназначен для работы с историческими данными.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastPointResults Метод gtld.storage.selectLastPointResults()];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastObjectResults Метод gtld.storage.selectLastObjectResults()];&lt;br /&gt;
&lt;br /&gt;
== Часто используемые функции JavaScript: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_arrays Использование массивов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_objects Использование объектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_if Условное ветвление &amp;lt;code&amp;gt;if(...)&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_switch Конструкция ветвления &amp;lt;code&amp;gt;switch&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_for Цикл &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt;];&lt;br /&gt;
&lt;br /&gt;
== Функции инициализации диагностики GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_common_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_filter_irr Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_freq Определение частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_intg Интегрирование сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_avg Получение скользящего среднего значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_median Получение скользящего медианного значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_offset Получение скользящего значения смещения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_freq Получение скользящего значения частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_max Получение скользящего значения максимальных амплитуд];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_min Получение скользящего значения минимальных амплитуд ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_peak_to_peak Получение скользящего значения размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_corr Получение скользящего значения корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.history Получение массива значений из сигнала (истории)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_apfc Определение АФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_afc Определение АЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_pfc Определение ФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase Разница фаз моногармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase_spec Разница фаз полигармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_coherence Коэффициент когерентности сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_rms Определение СКЗ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_max_data Определение максимального значения СКЗ в заданном временном интервале];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_ampl Определение амплитудных (максимальных) значений];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_peak_to_peak Определение размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_kurt Определение коэффициента эксцесса (куртозис)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_corr Определение коэффициента корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_var Определение дисперсии (разброса значений)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ausp Построение спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_spen Построение спектра огибающей вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_phase Построение фазового спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_psd Построение спектра мощности (спектральная плотность)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_orsp Построение порядкового спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ceps Построение кепстра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.get_kurt_value Определение альтернативного коэффициента эксцесса (по огибающей сигнала)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_thresh_data Вылавливание превышений уровня сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_thresh Определение превышений уровня сигнала в установленном временном окне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.player Управление диапазонами (участками) воспроизведения сигнала в плеере];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.set_timer Установка таймера запуска функций];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.from_csv Загрузка данных из csv файла];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.to_csv Экспорт данных в csv файл];&lt;br /&gt;
&lt;br /&gt;
== Библиотека диагностических функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_diag_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.interval Интервал запуска функции диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/function_diagnose Основная функция диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.stop Остановка процесса диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.log.info Вывод информации в лог программы диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.options.customOptions Передача параметров в скрипт];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add Отрисовка произвольного графика на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add_axis Управление осями координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_spec_tools Отрисовка компонентов (инструментов) спектра на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.table Формирование произвольной таблицы];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results Получение результатов диагностики];&lt;br /&gt;
&lt;br /&gt;
== Библиотека пользовательских функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filters Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freq Определение частоты вращения по источнику данных и автоматическое уточнение];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_instability Нестабильность частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_functions Определение функциональных частот объектов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freqness Минимально необходимая частота вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_frequency Расчетная центральная частота полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_width Ширина полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_speс_params Расчетные параметры спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_square Интегральная площадь спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_todb Перевод значений массива в дБ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_mod_factor Глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_deep_factor Условная глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_ampl_factor Амплитудный коэффициент];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_std_measures Набор стандартных измерений параметров вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_tools Построение компонентов и частотных линий на спектре];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_corr Коэффициент корреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_autocorr Функция автокорреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_crosscorr Функция кросс-корреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getDefSet Формирование наборов признаков дефектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getCrossSpec Расчет перекрестного спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getFrequencyResponse Расчет частотного отклика];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_thinArray Прореживание массива данных];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_aggregateAverage Аггрегация массива данных];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_linearInterpolate Линейная интерполяция данных массива];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_exponentialSmoothing Экспотенциальное сглаживание];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_linearRegression Линейная регрессия];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_simpleAR1 Простая ARIMA модель (авторегрессия)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_avgArray Вычисление среднего массива данных из множества];&lt;br /&gt;
&lt;br /&gt;
== Библиотека функций GTLd-daemon: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_async Асинхронная обработка данных в демоне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_recorder Использование рекордера в движке];&lt;br /&gt;
&lt;br /&gt;
== Практические примеры ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results_var Варианты компоновки результатов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.scripts_var Примеры диагностических скриптов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trends_var Примеры построения трендов параметров];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trendspec_var Примеры построения трендов параметров и построение спектра при превышении порогового значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.ranges_var Примеры выбора диапазонов востроизведения сигнала по триггеру];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.triggers_var Пример определения направления вращения по сдвигу фазы двух источников импульсов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.round_var Пример построения круговой диаграммы временного сигнала вибрации];&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtld_crosscorr&amp;diff=1396</id>
		<title>Gtld crosscorr</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtld_crosscorr&amp;diff=1396"/>
		<updated>2026-09-20T23:56:03Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Результат */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для проведения кросс корреляционного анализа сигнала с фиксированным сдвигом на предмет наличия линейной связи двух массивов (степень похожести). В результате работы функции возвращается объект с параметрами расчетов.&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
Стандартная конструкция выглядит таким образом:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
var __cross = new corrClass(&lt;br /&gt;
    {&lt;br /&gt;
      x: array1, //первый массив&lt;br /&gt;
      y: array2, //второй массив&lt;br /&gt;
      lag: 2, //величина сдвига (количество индексов)&lt;br /&gt;
    }&lt;br /&gt;
); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Результат ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__cross.calcCorr()&amp;lt;/code&amp;gt; - вычисление коэффициента корреляции двух массивов;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__cross.calcCross()&amp;lt;/code&amp;gt; - получение кросс-корреляционной функции двух массивов для фиксированного сдвига;&lt;br /&gt;
&lt;br /&gt;
== Содержание функции ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class corrClass {&lt;br /&gt;
    constructor(args) {&lt;br /&gt;
        this.x = args.x; // массив данных X&lt;br /&gt;
        this.y = args.y; // массив данных Y&lt;br /&gt;
        this.lag = args.lag; // величина сдвига (количество индексов)&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Вычисление коэффициента корреляции Пирсона&lt;br /&gt;
    calcCorr(x, y) {&lt;br /&gt;
        const meanX = x.reduce((sum, val) =&amp;gt; sum + val, 0) / x.length; // вычисление среднего значения по массиву X&lt;br /&gt;
        const meanY = y.reduce((sum, val) =&amp;gt; sum + val, 0) / y.length; // вычисление среднего значения по массиву Y&lt;br /&gt;
        let cov = 0, varX = 0, varY = 0;&lt;br /&gt;
        for (let i = 0; i &amp;lt; x.length; i++) {&lt;br /&gt;
            cov += (x[i] - meanX) * (y[i] - meanY); // ковариация&lt;br /&gt;
            varX += (x[i] - meanX) * (x[i] - meanX); // дисперсия первого массива (отклонение от среднего)&lt;br /&gt;
            varY += (y[i] - meanY) * (y[i] - meanY); // дисперсия второго массива (отклонение от среднего)&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (varX === 0 || varY === 0) return 0; // изменчивости нет — корреляцию посчитать нельзя. Возвращаем 0 &lt;br /&gt;
        return cov / Math.sqrt(varX * varY)&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Вычисление кросс-корреляции (коэффициент Пирсона)&lt;br /&gt;
    calcCross(x, y, lag) {&lt;br /&gt;
        const n = x.length; // длина массива&lt;br /&gt;
        const outLen = 2 * lag + 1;&lt;br /&gt;
        const result = new Float64Array(outLen); // массив результатов расчета корреляции (кросс корреляционная функция)&lt;br /&gt;
&lt;br /&gt;
        // Добавляем lag нулей в начало и lag нулей в конец&lt;br /&gt;
        const zeros = Array(lag).fill(0); // нулевой массив&lt;br /&gt;
        const xArr = [...zeros, ...x, ...zeros]; // расширяем массив x&lt;br /&gt;
&lt;br /&gt;
        for (let i = 0; i &amp;lt; outLen; i++) {&lt;br /&gt;
            const start = i; // при i=0 берем окно с lag нулей слева&lt;br /&gt;
            const xWin = xArr.slice(start, start + n); // вырезаем из массива окно, равной длины&lt;br /&gt;
            result[i] = this.__calcCorr(xWin, y); // вычисляем корреляцию&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        return result&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtld_crosscorr&amp;diff=1395</id>
		<title>Gtld crosscorr</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtld_crosscorr&amp;diff=1395"/>
		<updated>2026-09-20T23:52:55Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Синтаксис */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для проведения кросс корреляционного анализа сигнала с фиксированным сдвигом на предмет наличия линейной связи двух массивов (степень похожести). В результате работы функции возвращается объект с параметрами расчетов.&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
Стандартная конструкция выглядит таким образом:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
var __cross = new corrClass(&lt;br /&gt;
    {&lt;br /&gt;
      x: array1, //первый массив&lt;br /&gt;
      y: array2, //второй массив&lt;br /&gt;
      lag: 2, //величина сдвига (количество индексов)&lt;br /&gt;
    }&lt;br /&gt;
); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Результат ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__autocorr.avg&amp;lt;/code&amp;gt; - среднее значение модуля коэффициента автокорреляции;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__autocorr.rms&amp;lt;/code&amp;gt; - СКЗ коэффициента автокорреляции;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__autocorr.ampl&amp;lt;/code&amp;gt; - максимальное значение коэффициента автокорреляции после 1% формы сигнала;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__autocorr.data&amp;lt;/code&amp;gt; - массив значений коэффициента автокорреляции (для построения графика);&lt;br /&gt;
&lt;br /&gt;
== Содержание функции ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class corrClass {&lt;br /&gt;
    constructor(args) {&lt;br /&gt;
        this.x = args.x; // массив данных X&lt;br /&gt;
        this.y = args.y; // массив данных Y&lt;br /&gt;
        this.lag = args.lag; // величина сдвига (количество индексов)&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Вычисление коэффициента корреляции Пирсона&lt;br /&gt;
    calcCorr(x, y) {&lt;br /&gt;
        const meanX = x.reduce((sum, val) =&amp;gt; sum + val, 0) / x.length; // вычисление среднего значения по массиву X&lt;br /&gt;
        const meanY = y.reduce((sum, val) =&amp;gt; sum + val, 0) / y.length; // вычисление среднего значения по массиву Y&lt;br /&gt;
        let cov = 0, varX = 0, varY = 0;&lt;br /&gt;
        for (let i = 0; i &amp;lt; x.length; i++) {&lt;br /&gt;
            cov += (x[i] - meanX) * (y[i] - meanY); // ковариация&lt;br /&gt;
            varX += (x[i] - meanX) * (x[i] - meanX); // дисперсия первого массива (отклонение от среднего)&lt;br /&gt;
            varY += (y[i] - meanY) * (y[i] - meanY); // дисперсия второго массива (отклонение от среднего)&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (varX === 0 || varY === 0) return 0; // изменчивости нет — корреляцию посчитать нельзя. Возвращаем 0 &lt;br /&gt;
        return cov / Math.sqrt(varX * varY)&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Вычисление кросс-корреляции (коэффициент Пирсона)&lt;br /&gt;
    calcCross(x, y, lag) {&lt;br /&gt;
        const n = x.length; // длина массива&lt;br /&gt;
        const outLen = 2 * lag + 1;&lt;br /&gt;
        const result = new Float64Array(outLen); // массив результатов расчета корреляции (кросс корреляционная функция)&lt;br /&gt;
&lt;br /&gt;
        // Добавляем lag нулей в начало и lag нулей в конец&lt;br /&gt;
        const zeros = Array(lag).fill(0); // нулевой массив&lt;br /&gt;
        const xArr = [...zeros, ...x, ...zeros]; // расширяем массив x&lt;br /&gt;
&lt;br /&gt;
        for (let i = 0; i &amp;lt; outLen; i++) {&lt;br /&gt;
            const start = i; // при i=0 берем окно с lag нулей слева&lt;br /&gt;
            const xWin = xArr.slice(start, start + n); // вырезаем из массива окно, равной длины&lt;br /&gt;
            result[i] = this.__calcCorr(xWin, y); // вычисляем корреляцию&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        return result&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtld_crosscorr&amp;diff=1394</id>
		<title>Gtld crosscorr</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtld_crosscorr&amp;diff=1394"/>
		<updated>2026-09-20T23:50:34Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Содержание функции */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для проведения кросс корреляционного анализа сигнала с фиксированным сдвигом на предмет наличия линейной связи двух массивов (степень похожести). В результате работы функции возвращается объект с параметрами расчетов.&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
Стандартная конструкция выглядит таким образом:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
var __autocorr = getAutoCorr(&lt;br /&gt;
    {&lt;br /&gt;
      name: &amp;quot;Correlation form&amp;quot;, //имя графика функции&lt;br /&gt;
      src: __max, //массив данных пиковой формы сигнала&lt;br /&gt;
      lag: 0.5, //коэффициент смещения сигнала&lt;br /&gt;
      color: 0x6A5ACD, //цвет отрисовки графика в формате HEX&lt;br /&gt;
      time: 0.01, //цена деления оси времени, с&lt;br /&gt;
      canvas: canvas3 //координатная плоскость для отрисовки графика функции&lt;br /&gt;
    }&lt;br /&gt;
); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Результат ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__autocorr.avg&amp;lt;/code&amp;gt; - среднее значение модуля коэффициента автокорреляции;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__autocorr.rms&amp;lt;/code&amp;gt; - СКЗ коэффициента автокорреляции;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__autocorr.ampl&amp;lt;/code&amp;gt; - максимальное значение коэффициента автокорреляции после 1% формы сигнала;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__autocorr.data&amp;lt;/code&amp;gt; - массив значений коэффициента автокорреляции (для построения графика);&lt;br /&gt;
&lt;br /&gt;
== Содержание функции ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
class corrClass {&lt;br /&gt;
    constructor(args) {&lt;br /&gt;
        this.x = args.x; // массив данных X&lt;br /&gt;
        this.y = args.y; // массив данных Y&lt;br /&gt;
        this.lag = args.lag; // величина сдвига (количество индексов)&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Вычисление коэффициента корреляции Пирсона&lt;br /&gt;
    calcCorr(x, y) {&lt;br /&gt;
        const meanX = x.reduce((sum, val) =&amp;gt; sum + val, 0) / x.length; // вычисление среднего значения по массиву X&lt;br /&gt;
        const meanY = y.reduce((sum, val) =&amp;gt; sum + val, 0) / y.length; // вычисление среднего значения по массиву Y&lt;br /&gt;
        let cov = 0, varX = 0, varY = 0;&lt;br /&gt;
        for (let i = 0; i &amp;lt; x.length; i++) {&lt;br /&gt;
            cov += (x[i] - meanX) * (y[i] - meanY); // ковариация&lt;br /&gt;
            varX += (x[i] - meanX) * (x[i] - meanX); // дисперсия первого массива (отклонение от среднего)&lt;br /&gt;
            varY += (y[i] - meanY) * (y[i] - meanY); // дисперсия второго массива (отклонение от среднего)&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        if (varX === 0 || varY === 0) return 0; // изменчивости нет — корреляцию посчитать нельзя. Возвращаем 0 &lt;br /&gt;
        return cov / Math.sqrt(varX * varY)&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Вычисление кросс-корреляции (коэффициент Пирсона)&lt;br /&gt;
    calcCross(x, y, lag) {&lt;br /&gt;
        const n = x.length; // длина массива&lt;br /&gt;
        const outLen = 2 * lag + 1;&lt;br /&gt;
        const result = new Float64Array(outLen); // массив результатов расчета корреляции (кросс корреляционная функция)&lt;br /&gt;
&lt;br /&gt;
        // Добавляем lag нулей в начало и lag нулей в конец&lt;br /&gt;
        const zeros = Array(lag).fill(0); // нулевой массив&lt;br /&gt;
        const xArr = [...zeros, ...x, ...zeros]; // расширяем массив x&lt;br /&gt;
&lt;br /&gt;
        for (let i = 0; i &amp;lt; outLen; i++) {&lt;br /&gt;
            const start = i; // при i=0 берем окно с lag нулей слева&lt;br /&gt;
            const xWin = xArr.slice(start, start + n); // вырезаем из массива окно, равной длины&lt;br /&gt;
            result[i] = this.__calcCorr(xWin, y); // вычисляем корреляцию&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        return result&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.ranges_var&amp;diff=1393</id>
		<title>Gtl.ranges var</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.ranges_var&amp;diff=1393"/>
		<updated>2026-09-18T07:04:14Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Выбор диапазонов воспроизведения сигнала по триггеру ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;use strict&amp;quot;;&lt;br /&gt;
let src = gtl.analog_inputs[0]; //источник сигнала&lt;br /&gt;
let time = 20; //полное время записи для анализа: gtl.options.record.playerTime&lt;br /&gt;
let time_window = 0.02 //временное окно наблюдения&lt;br /&gt;
let time_impulse = 0.5 //временное окно для анализа импульса (например не менее времени построения его спектра) &lt;br /&gt;
let time_pre = time_window / 2; //время предыстории для анализа импульса &lt;br /&gt;
let ranges = []; //массив диапазонов для импульсов (массив объектов)&lt;br /&gt;
let arrays = []; //двумерный массив для записи в .csv&lt;br /&gt;
let tries = 0; //циклы диагностки&lt;br /&gt;
let is_ranges = false; //состояние готовности диапазонов&lt;br /&gt;
&lt;br /&gt;
// Скользящая амплитуда для создания &amp;quot;огибающей&amp;quot; импульса&lt;br /&gt;
let __max = gtl.create_moving_max({&lt;br /&gt;
  src: src, //источник сигнала&lt;br /&gt;
  name: &amp;quot;max&amp;quot;, //наименование&lt;br /&gt;
  time: time_window //рассчетное окно&lt;br /&gt;
});&lt;br /&gt;
__max.history = 2; //история сохраненных данных сигнала&lt;br /&gt;
&lt;br /&gt;
// Триггера&lt;br /&gt;
let __thresh = gtl.create_moving_thresh({&lt;br /&gt;
  src: __max, //источник сигнала&lt;br /&gt;
  name: &amp;quot;thresh&amp;quot;, //наименование&lt;br /&gt;
  time: time_window, //временное окно наблюдения&lt;br /&gt;
  level: 315 //уровень срабатывания триггера&lt;br /&gt;
});&lt;br /&gt;
__thresh.history = 2; //история сохраненных данных сигнала&lt;br /&gt;
&lt;br /&gt;
__thresh.triggered.connect(thresh_triggered_event); //подключаем асинхронную функцию&lt;br /&gt;
&lt;br /&gt;
// Функция обработки события по срабатыванию триггера&lt;br /&gt;
function thresh_triggered_event(flag, sample) {&lt;br /&gt;
  if (is_ranges) return;&lt;br /&gt;
  if (flag) {&lt;br /&gt;
    let start = (sample / __thresh.rate) - time_pre; //время срабатывания триггера, сек&lt;br /&gt;
    gtl.log.info(&amp;quot;trigger on time&amp;quot;, start); //выводим информацию в лог&lt;br /&gt;
&lt;br /&gt;
    // Формируем объект с результатом работы триггера&lt;br /&gt;
    let range = {&lt;br /&gt;
      min: start,&lt;br /&gt;
      max: start + time_impulse&lt;br /&gt;
    };&lt;br /&gt;
    let array = [start, start + time_impulse]; //массив начало-конец&lt;br /&gt;
&lt;br /&gt;
    ranges.push(range); //добавляем диапазон в массив&lt;br /&gt;
    arrays.push(array); //добавляем массив с общий массив&lt;br /&gt;
  };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// Функция диагностики. &lt;br /&gt;
/*&lt;br /&gt;
  Первый запуск функции диагностики происходит после проигрывания всего сигнала и определения массива диапазонов по срабатыванию триггера&lt;br /&gt;
  После этого происходит добавление массива пользовательских диапазонов в плеер, отрисовка (при необходимости) сигнала триггера&lt;br /&gt;
  Затем устанавливается интервал запуска функции диагностики, равный временному окну для анализа импульса и запускается отсчет циклов (попыток) диагностики&lt;br /&gt;
  Как только количество циклов (попыток) сравнивается с количеством установленных пользовательских диапазонов, диагностика останавливается&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = time; //интервал запуска функции диагностики&lt;br /&gt;
let plot = gtl.plots.add(&amp;quot;Impulses&amp;quot;); //создаем координатную плоскость&lt;br /&gt;
&lt;br /&gt;
// Основная функция диагностики&lt;br /&gt;
function diagnose() {&lt;br /&gt;
  if (tries &amp;gt;= ranges.length) gtl.diagnostic.stop();&lt;br /&gt;
  if (!is_ranges) {&lt;br /&gt;
    gtl.player.custom_ranges = ranges; //добавляем пользовательские диапазоны в плеер&lt;br /&gt;
    gtl.results = { ranges: ranges }; //выводим диапазоны в результат&lt;br /&gt;
&lt;br /&gt;
    gtl.log.info(&#039;creating ranges&#039;, true);&lt;br /&gt;
    gtl.log.info(&#039;ranges&#039;, JSON.stringify(ranges));&lt;br /&gt;
    is_ranges = true; //пользовательские диапазоны готовы&lt;br /&gt;
&lt;br /&gt;
    // Рисуем &amp;quot;огибающую&amp;quot; на координатной плоскости&lt;br /&gt;
    plot.add({&lt;br /&gt;
      color: 0x0000ff, //цвет графика&lt;br /&gt;
      name: &amp;quot;max&amp;quot;, //наименование графика&lt;br /&gt;
      x: 1 / __max.rate, //частотное разрешение&lt;br /&gt;
      y: __max.getHistoryArray() //значения амплитуд&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Рисуем сигнал триггера на координатной плоскости&lt;br /&gt;
    plot.add({&lt;br /&gt;
      color: 0xff00ff, //цвет графика&lt;br /&gt;
      name: &amp;quot;thresh&amp;quot;, //наименование графика&lt;br /&gt;
      x: 1 / __thresh.rate, //частотное разрешение&lt;br /&gt;
      y: __thresh.getHistoryArray() //значения амплитуд&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Записываем данные в формате .csv на диск&lt;br /&gt;
    const __path = &amp;quot;D:/trigger.csv&amp;quot;;&lt;br /&gt;
    let res = gtl.io.to_csv({&lt;br /&gt;
      path: __path, //путь для сохранения файла&lt;br /&gt;
      values: arrays, //данные для записи в файл&lt;br /&gt;
      sep: &amp;quot;\t&amp;quot; //разделитель данных&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    gtl.log.info(&#039;saving file&#039;, __path);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  gtl.diagnostic.interval = time_impulse; //задаем время запуска функции диагностики, равное длине импульса&lt;br /&gt;
  if (tries == 0) { gtl.log.info(&amp;quot;Установленный интервал запуска диагностики&amp;quot;, time_impulse) }&lt;br /&gt;
  else {&lt;br /&gt;
    gtl.log.info(&#039;diagnostic&#039;, `Цикл диагностики ${tries} - ${true}`)&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
      Математика обработки сигнала&lt;br /&gt;
    */&lt;br /&gt;
  }&lt;br /&gt;
  tries++;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtld_crosscorr&amp;diff=1392</id>
		<title>Gtld crosscorr</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtld_crosscorr&amp;diff=1392"/>
		<updated>2026-09-18T01:21:57Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Краткое описание */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для проведения кросс корреляционного анализа сигнала с фиксированным сдвигом на предмет наличия линейной связи двух массивов (степень похожести). В результате работы функции возвращается объект с параметрами расчетов.&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
Стандартная конструкция выглядит таким образом:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
var __autocorr = getAutoCorr(&lt;br /&gt;
    {&lt;br /&gt;
      name: &amp;quot;Correlation form&amp;quot;, //имя графика функции&lt;br /&gt;
      src: __max, //массив данных пиковой формы сигнала&lt;br /&gt;
      lag: 0.5, //коэффициент смещения сигнала&lt;br /&gt;
      color: 0x6A5ACD, //цвет отрисовки графика в формате HEX&lt;br /&gt;
      time: 0.01, //цена деления оси времени, с&lt;br /&gt;
      canvas: canvas3 //координатная плоскость для отрисовки графика функции&lt;br /&gt;
    }&lt;br /&gt;
); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Результат ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__autocorr.avg&amp;lt;/code&amp;gt; - среднее значение модуля коэффициента автокорреляции;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__autocorr.rms&amp;lt;/code&amp;gt; - СКЗ коэффициента автокорреляции;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__autocorr.ampl&amp;lt;/code&amp;gt; - максимальное значение коэффициента автокорреляции после 1% формы сигнала;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__autocorr.data&amp;lt;/code&amp;gt; - массив значений коэффициента автокорреляции (для построения графика);&lt;br /&gt;
&lt;br /&gt;
== Содержание функции ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function getAutoCorr(options) {&lt;br /&gt;
    let result = {}; //результат&lt;br /&gt;
    let plot = []; //массив значений корреляции для графика&lt;br /&gt;
    let arr = options.src;&lt;br /&gt;
    let arr2 = arr.concat(arr); //расширяем массив данных&lt;br /&gt;
    let lag = options.lag;&lt;br /&gt;
&lt;br /&gt;
    let T = Math.floor(arr.length * lag); //определяем количество индексов (шагов) для смещения массива&lt;br /&gt;
    let avg = arr.reduce((acc, item) =&amp;gt; (acc + item)) / arr.length; //среднее значение массива&lt;br /&gt;
    let X = 0; //числитель функции&lt;br /&gt;
    let Y = arr.reduce((acc, item) =&amp;gt; (acc + (item - avg) ** 2), 0); //рассчитываем знаменатель функции&lt;br /&gt;
&lt;br /&gt;
    const arrDiff = arr.map(value =&amp;gt; value - avg); //разница от avg&lt;br /&gt;
    for (let i = 0; i &amp;lt; T; i++) {&lt;br /&gt;
        X = 0;&lt;br /&gt;
        for (let j = 0; j &amp;lt; arr.length; j++) { X += arrDiff[j] * (arr2[j + i] - avg) }; //рассчитываем числитель функции&lt;br /&gt;
        plot.push(X / Y); //записываем значение в массив коэффициентов&lt;br /&gt;
    }; //смещение массива&lt;br /&gt;
&lt;br /&gt;
    let plot0 = plot.slice(Math.floor(0.01 * plot.length));&lt;br /&gt;
    let akf_avg = plot0.reduce((acc, item) =&amp;gt; (acc + Math.abs(item)), 0) / plot0.length; //среднее значение коэффициента&lt;br /&gt;
    let akf_sqr = plot0.reduce((acc, item) =&amp;gt; (acc + item ** 2), 0); //сумма квадратов значений&lt;br /&gt;
    let akf_rms = Math.sqrt(akf_sqr / plot0.length); //СКЗ коэффициента &lt;br /&gt;
    let akf_max = Math.max(...plot0); //определяем максимальное значение коэффициента&lt;br /&gt;
&lt;br /&gt;
    result[&amp;quot;avg&amp;quot;] = akf_avg;&lt;br /&gt;
    result[&amp;quot;rms&amp;quot;] = akf_rms;&lt;br /&gt;
    result[&amp;quot;ampl&amp;quot;] = akf_max;&lt;br /&gt;
    result[&amp;quot;data&amp;quot;] = plot;&lt;br /&gt;
&lt;br /&gt;
    //отрисовка графика на plot&lt;br /&gt;
    if (options.canvas != undefined) {&lt;br /&gt;
        options.canvas.add(&lt;br /&gt;
            {&lt;br /&gt;
                color: options.color,&lt;br /&gt;
                name: options.name,&lt;br /&gt;
                x: options.time,&lt;br /&gt;
                y: plot&lt;br /&gt;
            }&lt;br /&gt;
        );&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    return result;&lt;br /&gt;
}; //рассчет автокорреляции&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtld_crosscorr&amp;diff=1391</id>
		<title>Gtld crosscorr</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtld_crosscorr&amp;diff=1391"/>
		<updated>2026-09-18T00:04:02Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Краткое описание */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для проведения кросс корреляционного анализа сигнала на предмет наличия линейной связи двух массивов (степень похожести). В результате работы функции возвращается объект с параметрами расчетов.&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
Стандартная конструкция выглядит таким образом:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
var __autocorr = getAutoCorr(&lt;br /&gt;
    {&lt;br /&gt;
      name: &amp;quot;Correlation form&amp;quot;, //имя графика функции&lt;br /&gt;
      src: __max, //массив данных пиковой формы сигнала&lt;br /&gt;
      lag: 0.5, //коэффициент смещения сигнала&lt;br /&gt;
      color: 0x6A5ACD, //цвет отрисовки графика в формате HEX&lt;br /&gt;
      time: 0.01, //цена деления оси времени, с&lt;br /&gt;
      canvas: canvas3 //координатная плоскость для отрисовки графика функции&lt;br /&gt;
    }&lt;br /&gt;
); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Результат ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__autocorr.avg&amp;lt;/code&amp;gt; - среднее значение модуля коэффициента автокорреляции;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__autocorr.rms&amp;lt;/code&amp;gt; - СКЗ коэффициента автокорреляции;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__autocorr.ampl&amp;lt;/code&amp;gt; - максимальное значение коэффициента автокорреляции после 1% формы сигнала;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__autocorr.data&amp;lt;/code&amp;gt; - массив значений коэффициента автокорреляции (для построения графика);&lt;br /&gt;
&lt;br /&gt;
== Содержание функции ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function getAutoCorr(options) {&lt;br /&gt;
    let result = {}; //результат&lt;br /&gt;
    let plot = []; //массив значений корреляции для графика&lt;br /&gt;
    let arr = options.src;&lt;br /&gt;
    let arr2 = arr.concat(arr); //расширяем массив данных&lt;br /&gt;
    let lag = options.lag;&lt;br /&gt;
&lt;br /&gt;
    let T = Math.floor(arr.length * lag); //определяем количество индексов (шагов) для смещения массива&lt;br /&gt;
    let avg = arr.reduce((acc, item) =&amp;gt; (acc + item)) / arr.length; //среднее значение массива&lt;br /&gt;
    let X = 0; //числитель функции&lt;br /&gt;
    let Y = arr.reduce((acc, item) =&amp;gt; (acc + (item - avg) ** 2), 0); //рассчитываем знаменатель функции&lt;br /&gt;
&lt;br /&gt;
    const arrDiff = arr.map(value =&amp;gt; value - avg); //разница от avg&lt;br /&gt;
    for (let i = 0; i &amp;lt; T; i++) {&lt;br /&gt;
        X = 0;&lt;br /&gt;
        for (let j = 0; j &amp;lt; arr.length; j++) { X += arrDiff[j] * (arr2[j + i] - avg) }; //рассчитываем числитель функции&lt;br /&gt;
        plot.push(X / Y); //записываем значение в массив коэффициентов&lt;br /&gt;
    }; //смещение массива&lt;br /&gt;
&lt;br /&gt;
    let plot0 = plot.slice(Math.floor(0.01 * plot.length));&lt;br /&gt;
    let akf_avg = plot0.reduce((acc, item) =&amp;gt; (acc + Math.abs(item)), 0) / plot0.length; //среднее значение коэффициента&lt;br /&gt;
    let akf_sqr = plot0.reduce((acc, item) =&amp;gt; (acc + item ** 2), 0); //сумма квадратов значений&lt;br /&gt;
    let akf_rms = Math.sqrt(akf_sqr / plot0.length); //СКЗ коэффициента &lt;br /&gt;
    let akf_max = Math.max(...plot0); //определяем максимальное значение коэффициента&lt;br /&gt;
&lt;br /&gt;
    result[&amp;quot;avg&amp;quot;] = akf_avg;&lt;br /&gt;
    result[&amp;quot;rms&amp;quot;] = akf_rms;&lt;br /&gt;
    result[&amp;quot;ampl&amp;quot;] = akf_max;&lt;br /&gt;
    result[&amp;quot;data&amp;quot;] = plot;&lt;br /&gt;
&lt;br /&gt;
    //отрисовка графика на plot&lt;br /&gt;
    if (options.canvas != undefined) {&lt;br /&gt;
        options.canvas.add(&lt;br /&gt;
            {&lt;br /&gt;
                color: options.color,&lt;br /&gt;
                name: options.name,&lt;br /&gt;
                x: options.time,&lt;br /&gt;
                y: plot&lt;br /&gt;
            }&lt;br /&gt;
        );&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    return result;&lt;br /&gt;
}; //рассчет автокорреляции&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtld_crosscorr&amp;diff=1390</id>
		<title>Gtld crosscorr</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtld_crosscorr&amp;diff=1390"/>
		<updated>2026-09-18T00:02:40Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: Новая страница: «== Краткое описание == Функция предназначена для проведения автокорреляционного анализа сигнала на предмет наличия периодических составляющих. В качестве основного источника подается массив данных пиковой формы сигнала. В результате работы функции в...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для проведения автокорреляционного анализа сигнала на предмет наличия периодических составляющих. В качестве основного источника подается массив данных пиковой формы сигнала. В результате работы функции возвращается объект с параметрами расчетов.&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
Стандартная конструкция выглядит таким образом:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
var __autocorr = getAutoCorr(&lt;br /&gt;
    {&lt;br /&gt;
      name: &amp;quot;Correlation form&amp;quot;, //имя графика функции&lt;br /&gt;
      src: __max, //массив данных пиковой формы сигнала&lt;br /&gt;
      lag: 0.5, //коэффициент смещения сигнала&lt;br /&gt;
      color: 0x6A5ACD, //цвет отрисовки графика в формате HEX&lt;br /&gt;
      time: 0.01, //цена деления оси времени, с&lt;br /&gt;
      canvas: canvas3 //координатная плоскость для отрисовки графика функции&lt;br /&gt;
    }&lt;br /&gt;
); &lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Результат ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__autocorr.avg&amp;lt;/code&amp;gt; - среднее значение модуля коэффициента автокорреляции;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__autocorr.rms&amp;lt;/code&amp;gt; - СКЗ коэффициента автокорреляции;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__autocorr.ampl&amp;lt;/code&amp;gt; - максимальное значение коэффициента автокорреляции после 1% формы сигнала;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;__autocorr.data&amp;lt;/code&amp;gt; - массив значений коэффициента автокорреляции (для построения графика);&lt;br /&gt;
&lt;br /&gt;
== Содержание функции ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function getAutoCorr(options) {&lt;br /&gt;
    let result = {}; //результат&lt;br /&gt;
    let plot = []; //массив значений корреляции для графика&lt;br /&gt;
    let arr = options.src;&lt;br /&gt;
    let arr2 = arr.concat(arr); //расширяем массив данных&lt;br /&gt;
    let lag = options.lag;&lt;br /&gt;
&lt;br /&gt;
    let T = Math.floor(arr.length * lag); //определяем количество индексов (шагов) для смещения массива&lt;br /&gt;
    let avg = arr.reduce((acc, item) =&amp;gt; (acc + item)) / arr.length; //среднее значение массива&lt;br /&gt;
    let X = 0; //числитель функции&lt;br /&gt;
    let Y = arr.reduce((acc, item) =&amp;gt; (acc + (item - avg) ** 2), 0); //рассчитываем знаменатель функции&lt;br /&gt;
&lt;br /&gt;
    const arrDiff = arr.map(value =&amp;gt; value - avg); //разница от avg&lt;br /&gt;
    for (let i = 0; i &amp;lt; T; i++) {&lt;br /&gt;
        X = 0;&lt;br /&gt;
        for (let j = 0; j &amp;lt; arr.length; j++) { X += arrDiff[j] * (arr2[j + i] - avg) }; //рассчитываем числитель функции&lt;br /&gt;
        plot.push(X / Y); //записываем значение в массив коэффициентов&lt;br /&gt;
    }; //смещение массива&lt;br /&gt;
&lt;br /&gt;
    let plot0 = plot.slice(Math.floor(0.01 * plot.length));&lt;br /&gt;
    let akf_avg = plot0.reduce((acc, item) =&amp;gt; (acc + Math.abs(item)), 0) / plot0.length; //среднее значение коэффициента&lt;br /&gt;
    let akf_sqr = plot0.reduce((acc, item) =&amp;gt; (acc + item ** 2), 0); //сумма квадратов значений&lt;br /&gt;
    let akf_rms = Math.sqrt(akf_sqr / plot0.length); //СКЗ коэффициента &lt;br /&gt;
    let akf_max = Math.max(...plot0); //определяем максимальное значение коэффициента&lt;br /&gt;
&lt;br /&gt;
    result[&amp;quot;avg&amp;quot;] = akf_avg;&lt;br /&gt;
    result[&amp;quot;rms&amp;quot;] = akf_rms;&lt;br /&gt;
    result[&amp;quot;ampl&amp;quot;] = akf_max;&lt;br /&gt;
    result[&amp;quot;data&amp;quot;] = plot;&lt;br /&gt;
&lt;br /&gt;
    //отрисовка графика на plot&lt;br /&gt;
    if (options.canvas != undefined) {&lt;br /&gt;
        options.canvas.add(&lt;br /&gt;
            {&lt;br /&gt;
                color: options.color,&lt;br /&gt;
                name: options.name,&lt;br /&gt;
                x: options.time,&lt;br /&gt;
                y: plot&lt;br /&gt;
            }&lt;br /&gt;
        );&lt;br /&gt;
    };&lt;br /&gt;
&lt;br /&gt;
    return result;&lt;br /&gt;
}; //рассчет автокорреляции&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1389</id>
		<title>Справочник GTLD:JS-API</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1389"/>
		<updated>2026-09-18T00:02:18Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Библиотека пользовательских функций GTLd: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Основные понятия: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.script Диагностические скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.masterscript Мастер-скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.monitoringscript Мониторинговые скрипты];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.node: ==&lt;br /&gt;
Объект gtld.node предоставляет API для доступа к свойствам и методам узлов дерева диагностируемого объекта.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.name Свойство gtld.node.name ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.uuid Свойство gtld.node.uuid ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.options Свойство gtld.node.options ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.parent Свойство gtld.node.parent ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.children Свойство gtld.node.children ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.lastResult Свойство gtld.node.lastResult ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.selectLastResults Метод gtld.node.selectLastResults() ];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.storage: ==&lt;br /&gt;
Объект gtld.storage предназначен для работы с историческими данными.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastPointResults Метод gtld.storage.selectLastPointResults()];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastObjectResults Метод gtld.storage.selectLastObjectResults()];&lt;br /&gt;
&lt;br /&gt;
== Часто используемые функции JavaScript: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_arrays Использование массивов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_objects Использование объектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_if Условное ветвление &amp;lt;code&amp;gt;if(...)&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_switch Конструкция ветвления &amp;lt;code&amp;gt;switch&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_for Цикл &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt;];&lt;br /&gt;
&lt;br /&gt;
== Функции инициализации диагностики GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_common_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_filter_irr Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_freq Определение частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_intg Интегрирование сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_avg Получение скользящего среднего значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_median Получение скользящего медианного значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_offset Получение скользящего значения смещения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_freq Получение скользящего значения частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_max Получение скользящего значения максимальных амплитуд];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_min Получение скользящего значения минимальных амплитуд ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_peak_to_peak Получение скользящего значения размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_corr Получение скользящего значения корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.history Получение массива значений из сигнала (истории)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_apfc Определение АФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_afc Определение АЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_pfc Определение ФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase Разница фаз моногармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase_spec Разница фаз полигармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_coherence Коэффициент когерентности сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_rms Определение СКЗ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_max_data Определение максимального значения СКЗ в заданном временном интервале];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_ampl Определение амплитудных (максимальных) значений];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_peak_to_peak Определение размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_kurt Определение коэффициента эксцесса (куртозис)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_corr Определение коэффициента корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_var Определение дисперсии (разброса значений)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ausp Построение спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_spen Построение спектра огибающей вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_phase Построение фазового спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_psd Построение спектра мощности (спектральная плотность)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_orsp Построение порядкового спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ceps Построение кепстра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.get_kurt_value Определение альтернативного коэффициента эксцесса (по огибающей сигнала)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_thresh_data Вылавливание превышений уровня сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_thresh Определение превышений уровня сигнала в установленном временном окне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.player Управление диапазонами (участками) воспроизведения сигнала в плеере];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.set_timer Установка таймера запуска функций];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.from_csv Загрузка данных из csv файла];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.to_csv Экспорт данных в csv файл];&lt;br /&gt;
&lt;br /&gt;
== Библиотека диагностических функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_diag_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.interval Интервал запуска функции диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/function_diagnose Основная функция диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.stop Остановка процесса диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.log.info Вывод информации в лог программы диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.options.customOptions Передача параметров в скрипт];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add Отрисовка произвольного графика на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add_axis Управление осями координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_spec_tools Отрисовка компонентов (инструментов) спектра на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.table Формирование произвольной таблицы];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results Получение результатов диагностики];&lt;br /&gt;
&lt;br /&gt;
== Библиотека пользовательских функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filters Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freq Определение частоты вращения по источнику данных и автоматическое уточнение];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_instability Нестабильность частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_functions Определение функциональных частот объектов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freqness Минимально необходимая частота вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_frequency Расчетная центральная частота полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_width Ширина полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_speс_params Расчетные параметры спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_square Интегральная площадь спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_todb Перевод значений массива в дБ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_mod_factor Глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_deep_factor Условная глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_ampl_factor Амплитудный коэффициент];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_std_measures Набор стандартных измерений параметров вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_tools Построение компонентов и частотных линий на спектре];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_corr Коэффициент корреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_autocorr Функция автокорреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_crosscorr Функция кросс-корреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getDefSet Формирование наборов признаков дефектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getCrossSpec Расчет перекрестного спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getFrequencyResponse Расчет частотного отклика];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_thinArray Прореживание массива данных];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_aggregateAverage Аггрегация массива данных];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_linearInterpolate Линейная интерполяция данных массива];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_exponentialSmoothing Экспотенциальное сглаживание];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_linearRegression Линейная регрессия];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_simpleAR1 Простая ARIMA модель (авторегрессия)];&lt;br /&gt;
&lt;br /&gt;
== Библиотека функций GTLd-daemon: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_async Асинхронная обработка данных в демоне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_recorder Использование рекордера в движке];&lt;br /&gt;
&lt;br /&gt;
== Практические примеры ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results_var Варианты компоновки результатов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.scripts_var Примеры диагностических скриптов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trends_var Примеры построения трендов параметров];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trendspec_var Примеры построения трендов параметров и построение спектра при превышении порогового значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.ranges_var Примеры выбора диапазонов востроизведения сигнала по триггеру];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.triggers_var Пример определения направления вращения по сдвигу фазы двух источников импульсов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.round_var Пример построения круговой диаграммы временного сигнала вибрации];&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.ranges_var&amp;diff=1388</id>
		<title>Gtl.ranges var</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.ranges_var&amp;diff=1388"/>
		<updated>2026-09-16T00:43:21Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;use strict&amp;quot;;&lt;br /&gt;
let src = gtl.analog_inputs[0]; //источник сигнала&lt;br /&gt;
let time = 20; //полное время записи для анализа: gtl.options.record.playerTime&lt;br /&gt;
let time_window = 0.02 //временное окно наблюдения&lt;br /&gt;
let time_impulse = 0.5 //временное окно для анализа импульса (например не менее времени построения его спектра) &lt;br /&gt;
let time_pre = time_window / 2; //время предыстории для анализа импульса &lt;br /&gt;
let ranges = []; //массив диапазонов для импульсов (массив объектов)&lt;br /&gt;
let arrays = []; //двумерный массив для записи в .csv&lt;br /&gt;
let tries = 0; //циклы диагностки&lt;br /&gt;
let is_ranges = false; //состояние готовности диапазонов&lt;br /&gt;
&lt;br /&gt;
// Скользящая амплитуда для создания &amp;quot;огибающей&amp;quot; импульса&lt;br /&gt;
let __max = gtl.create_moving_max({&lt;br /&gt;
  src: src, //источник сигнала&lt;br /&gt;
  name: &amp;quot;max&amp;quot;, //наименование&lt;br /&gt;
  time: time_window //рассчетное окно&lt;br /&gt;
});&lt;br /&gt;
__max.history = 2; //история сохраненных данных сигнала&lt;br /&gt;
&lt;br /&gt;
// Триггера&lt;br /&gt;
let __thresh = gtl.create_moving_thresh({&lt;br /&gt;
  src: __max, //источник сигнала&lt;br /&gt;
  name: &amp;quot;thresh&amp;quot;, //наименование&lt;br /&gt;
  time: time_window, //временное окно наблюдения&lt;br /&gt;
  level: 315 //уровень срабатывания триггера&lt;br /&gt;
});&lt;br /&gt;
__thresh.history = 2; //история сохраненных данных сигнала&lt;br /&gt;
&lt;br /&gt;
__thresh.triggered.connect(thresh_triggered_event); //подключаем асинхронную функцию&lt;br /&gt;
&lt;br /&gt;
// Функция обработки события по срабатыванию триггера&lt;br /&gt;
function thresh_triggered_event(flag, sample) {&lt;br /&gt;
  if (is_ranges) return;&lt;br /&gt;
  if (flag) {&lt;br /&gt;
    let start = (sample / __thresh.rate) - time_pre; //время срабатывания триггера, сек&lt;br /&gt;
    gtl.log.info(&amp;quot;trigger on time&amp;quot;, start); //выводим информацию в лог&lt;br /&gt;
&lt;br /&gt;
    // Формируем объект с результатом работы триггера&lt;br /&gt;
    let range = {&lt;br /&gt;
      min: start,&lt;br /&gt;
      max: start + time_impulse&lt;br /&gt;
    };&lt;br /&gt;
    let array = [start, start + time_impulse]; //массив начало-конец&lt;br /&gt;
&lt;br /&gt;
    ranges.push(range); //добавляем диапазон в массив&lt;br /&gt;
    arrays.push(array); //добавляем массив с общий массив&lt;br /&gt;
  };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// Функция диагностики. &lt;br /&gt;
/*&lt;br /&gt;
  Первый запуск функции диагностики происходит после проигрывания всего сигнала и определения массива диапазонов по срабатыванию триггера&lt;br /&gt;
  После этого происходит добавление массива пользовательских диапазонов в плеер, отрисовка (при необходимости) сигнала триггера&lt;br /&gt;
  Затем устанавливается интервал запуска функции диагностики, равный временному окну для анализа импульса и запускается отсчет циклов (попыток) диагностики&lt;br /&gt;
  Как только количество циклов (попыток) сравнивается с количеством установленных пользовательских диапазонов, диагностика останавливается&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = time; //интервал запуска функции диагностики&lt;br /&gt;
let plot = gtl.plots.add(&amp;quot;Impulses&amp;quot;); //создаем координатную плоскость&lt;br /&gt;
&lt;br /&gt;
// Основная функция диагностики&lt;br /&gt;
function diagnose() {&lt;br /&gt;
  if (tries &amp;gt;= ranges.length) gtl.diagnostic.stop();&lt;br /&gt;
  if (!is_ranges) {&lt;br /&gt;
    gtl.player.custom_ranges = ranges; //добавляем пользовательские диапазоны в плеер&lt;br /&gt;
    gtl.results = { ranges: ranges }; //выводим диапазоны в результат&lt;br /&gt;
&lt;br /&gt;
    gtl.log.info(&#039;creating ranges&#039;, true);&lt;br /&gt;
    gtl.log.info(&#039;ranges&#039;, JSON.stringify(ranges));&lt;br /&gt;
    is_ranges = true; //пользовательские диапазоны готовы&lt;br /&gt;
&lt;br /&gt;
    // Рисуем &amp;quot;огибающую&amp;quot; на координатной плоскости&lt;br /&gt;
    plot.add({&lt;br /&gt;
      color: 0x0000ff, //цвет графика&lt;br /&gt;
      name: &amp;quot;max&amp;quot;, //наименование графика&lt;br /&gt;
      x: 1 / __max.rate, //частотное разрешение&lt;br /&gt;
      y: __max.getHistoryArray() //значения амплитуд&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Рисуем сигнал триггера на координатной плоскости&lt;br /&gt;
    plot.add({&lt;br /&gt;
      color: 0xff00ff, //цвет графика&lt;br /&gt;
      name: &amp;quot;thresh&amp;quot;, //наименование графика&lt;br /&gt;
      x: 1 / __thresh.rate, //частотное разрешение&lt;br /&gt;
      y: __thresh.getHistoryArray() //значения амплитуд&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Записываем данные в формате .csv на диск&lt;br /&gt;
    const __path = &amp;quot;D:/trigger.csv&amp;quot;;&lt;br /&gt;
    let res = gtl.io.to_csv({&lt;br /&gt;
      path: __path, //путь для сохранения файла&lt;br /&gt;
      values: arrays, //данные для записи в файл&lt;br /&gt;
      sep: &amp;quot;\t&amp;quot; //разделитель данных&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    gtl.log.info(&#039;saving file&#039;, __path);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  gtl.diagnostic.interval = time_impulse; //задаем время запуска функции диагностики, равное длине импульса&lt;br /&gt;
  if (tries == 0) { gtl.log.info(&amp;quot;Установленный интервал запуска диагностики&amp;quot;, time_impulse) }&lt;br /&gt;
  else {&lt;br /&gt;
    gtl.log.info(&#039;diagnostic&#039;, `Цикл диагностики ${tries} - ${true}`)&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
      Математика обработки сигнала&lt;br /&gt;
    */&lt;br /&gt;
  }&lt;br /&gt;
  tries++;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.ranges_var&amp;diff=1387</id>
		<title>Gtl.ranges var</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.ranges_var&amp;diff=1387"/>
		<updated>2026-09-16T00:37:11Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;use strict&amp;quot;;&lt;br /&gt;
let src = gtl.analog_inputs[0]; //источник сигнала&lt;br /&gt;
let time = 20; //полное время записи для анализа: gtl.options.record.playerTime&lt;br /&gt;
let time_window = 0.02 //временное окно наблюдения&lt;br /&gt;
let time_impulse = 0.5 //временное окно для анализа импульса (например не менее времени построения его спектра) &lt;br /&gt;
let time_pre = time_window / 2; //время предыстории для анализа импульса &lt;br /&gt;
let ranges = []; //массив диапазонов для импульсов (массив объектов)&lt;br /&gt;
let arrays = []; //двумерный массив для записи в .csv&lt;br /&gt;
let tries = 0; //циклы диагностки&lt;br /&gt;
let is_ranges = false; //состояние готовности диапазонов&lt;br /&gt;
&lt;br /&gt;
// Скользящая амплитуда для создания &amp;quot;огибающей&amp;quot; импульса&lt;br /&gt;
let __max = gtl.create_moving_max({&lt;br /&gt;
  src: src, //источник сигнала&lt;br /&gt;
  name: &amp;quot;max&amp;quot;, //наименование&lt;br /&gt;
  time: time_window //рассчетное окно&lt;br /&gt;
});&lt;br /&gt;
__max.history = 2; //история сохраненных данных сигнала&lt;br /&gt;
&lt;br /&gt;
// Триггер&lt;br /&gt;
let __thresh = gtl.create_moving_thresh({&lt;br /&gt;
  src: __max, //источник сигнала&lt;br /&gt;
  name: &amp;quot;thresh&amp;quot;, //наименование&lt;br /&gt;
  time: time_window, //временное окно наблюдения&lt;br /&gt;
  level: 315 //уровень срабатывания триггера&lt;br /&gt;
});&lt;br /&gt;
__thresh.history = 2; //история сохраненных данных сигнала&lt;br /&gt;
&lt;br /&gt;
__thresh.triggered.connect(thresh_triggered_event); //подключаем асинхронную функцию&lt;br /&gt;
&lt;br /&gt;
// Функция обработки события по срабатыванию триггера&lt;br /&gt;
function thresh_triggered_event(flag, sample) {&lt;br /&gt;
  if (is_ranges) return;&lt;br /&gt;
  if (flag) {&lt;br /&gt;
    let start = (sample / __thresh.rate) - time_pre; //время срабатывания триггера, сек&lt;br /&gt;
    gtl.log.info(&amp;quot;trigger on time&amp;quot;, start); //выводим информацию в лог&lt;br /&gt;
&lt;br /&gt;
    // Формируем объект с результатом работы триггера&lt;br /&gt;
    let range = {&lt;br /&gt;
      min: start,&lt;br /&gt;
      max: start + time_impulse&lt;br /&gt;
    };&lt;br /&gt;
    let array = [start, start + time_impulse]; //массив начало-конец&lt;br /&gt;
&lt;br /&gt;
    ranges.push(range); //добавляем диапазон в массив&lt;br /&gt;
    arrays.push(array); //добавляем массив с общий массив&lt;br /&gt;
  };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// Функция диагностики. &lt;br /&gt;
/*&lt;br /&gt;
  Первый запуск функции диагностики происходит после проигрывания всего сигнала и определения массива диапазонов по срабатыванию триггера&lt;br /&gt;
  После этого происходит добавление массива пользовательских диапазонов в плеер, отрисовка (при необходимости) сигнала триггера&lt;br /&gt;
  Затем устанавливается интервал запуска функции диагностики, равный временному окну для анализа импульса и запускается отсчет циклов (попыток) диагностики&lt;br /&gt;
  Как только количество циклов (попыток) сравнивается с количеством установленных пользовательских диапазонов, диагностика останавливается&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = time; //интервал запуска функции диагностики&lt;br /&gt;
let plot = gtl.plots.add(&amp;quot;Impulses&amp;quot;); //создаем координатную плоскость&lt;br /&gt;
&lt;br /&gt;
// Основная функция диагностики&lt;br /&gt;
function diagnose() {&lt;br /&gt;
  if (tries &amp;gt;= ranges.length) gtl.diagnostic.stop();&lt;br /&gt;
  if (!is_ranges) {&lt;br /&gt;
    gtl.player.custom_ranges = ranges; //добавляем пользовательские диапазоны в плеер&lt;br /&gt;
    gtl.results = { ranges: ranges }; //выводим диапазоны в результат&lt;br /&gt;
&lt;br /&gt;
    gtl.log.info(&#039;creating ranges&#039;, true);&lt;br /&gt;
    gtl.log.info(&#039;ranges&#039;, JSON.stringify(ranges));&lt;br /&gt;
    is_ranges = true; //пользовательские диапазоны готовы&lt;br /&gt;
&lt;br /&gt;
    // Рисуем &amp;quot;огибающую&amp;quot; на координатной плоскости&lt;br /&gt;
    plot.add({&lt;br /&gt;
      color: 0x0000ff, //цвет графика&lt;br /&gt;
      name: &amp;quot;max&amp;quot;, //наименование графика&lt;br /&gt;
      x: 1 / __max.rate, //частотное разрешение&lt;br /&gt;
      y: __max.getHistoryArray() //значения амплитуд&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Рисуем сигнал триггера на координатной плоскости&lt;br /&gt;
    plot.add({&lt;br /&gt;
      color: 0xff00ff, //цвет графика&lt;br /&gt;
      name: &amp;quot;thresh&amp;quot;, //наименование графика&lt;br /&gt;
      x: 1 / __thresh.rate, //частотное разрешение&lt;br /&gt;
      y: __thresh.getHistoryArray() //значения амплитуд&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Записываем данные в формате .csv на диск&lt;br /&gt;
    let res = gtl.io.to_csv({&lt;br /&gt;
      path: &amp;quot;D:/variables2.csv&amp;quot;, //путь для сохранения файла&lt;br /&gt;
      values: arrays, //данные для записи в файл&lt;br /&gt;
      sep: &amp;quot;\t&amp;quot; //разделитель данных&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    gtl.log.info(&#039;saving file&#039;, true);&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  gtl.diagnostic.interval = time_impulse; //задаем время запуска функции диагностики, равное длине импульса&lt;br /&gt;
  if (tries == 0) { gtl.log.info(&amp;quot;Установленный интервал запуска диагностики&amp;quot;, time_impulse) }&lt;br /&gt;
  else {&lt;br /&gt;
    gtl.log.info(&#039;diagnostic&#039;, `Цикл диагностики ${tries} - ${true}`)&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
      Математика обработки сигнала&lt;br /&gt;
    */&lt;br /&gt;
  }&lt;br /&gt;
  tries++;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.ranges_var&amp;diff=1386</id>
		<title>Gtl.ranges var</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.ranges_var&amp;diff=1386"/>
		<updated>2026-09-15T23:16:17Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;use strict&amp;quot;;&lt;br /&gt;
let src = gtl.analog_inputs[0]; //источник сигнала&lt;br /&gt;
let time = 20; //полное время записи для анализа: gtl.options.record.playerTime&lt;br /&gt;
let time_window = 0.02 //временное окно наблюдения&lt;br /&gt;
let time_impulse = 0.5 //временное окно для анализа импульса (например не менее времени построения его спектра) &lt;br /&gt;
let time_pre = time_window / 2; //время предыстории для анализа импульса &lt;br /&gt;
let ranges = []; //массив диапазонов для импульсов (массив объектов)&lt;br /&gt;
let arrays = []; //двумерный массив для записи в .csv&lt;br /&gt;
let tries = 0; //циклы диагностки&lt;br /&gt;
let is_ranges = false; //состояние готовности диапазонов&lt;br /&gt;
&lt;br /&gt;
// Скользящая амплитуда для создания &amp;quot;огибающей&amp;quot; импульса&lt;br /&gt;
let __max = gtl.create_moving_max({&lt;br /&gt;
  src: src, //источник сигнала&lt;br /&gt;
  name: &amp;quot;max&amp;quot;, //наименование&lt;br /&gt;
  time: time_window //рассчетное окно&lt;br /&gt;
});&lt;br /&gt;
__max.history = 2; //история сохраненных данных сигнала&lt;br /&gt;
&lt;br /&gt;
// Триггер&lt;br /&gt;
let __thresh = gtl.create_moving_thresh({&lt;br /&gt;
  src: __max, //источник сигнала&lt;br /&gt;
  name: &amp;quot;thresh&amp;quot;, //наименование&lt;br /&gt;
  time: time_window, //временное окно наблюдения&lt;br /&gt;
  level: 315 //уровень срабатывания триггера&lt;br /&gt;
});&lt;br /&gt;
__thresh.history = 2; //история сохраненных данных сигнала&lt;br /&gt;
&lt;br /&gt;
__thresh.triggered.connect(thresh_triggered_event); //подключаем асинхронную функцию&lt;br /&gt;
&lt;br /&gt;
// Функция обработки события по срабатыванию триггера&lt;br /&gt;
function thresh_triggered_event(flag, sample) {&lt;br /&gt;
  if (is_ranges) return;&lt;br /&gt;
  if (flag) {&lt;br /&gt;
    let start = (sample / __thresh.rate) - time_pre; //время срабатывания триггера, сек&lt;br /&gt;
    gtl.log.info(&amp;quot;trigger on time&amp;quot;, start); //выводим информацию в лог&lt;br /&gt;
&lt;br /&gt;
    // Формируем объект с результатом работы триггера&lt;br /&gt;
    let range = {&lt;br /&gt;
      min: start,&lt;br /&gt;
      max: start + time_impulse&lt;br /&gt;
    };&lt;br /&gt;
    let array = [start, start + time_impulse]; //массив начало-конец&lt;br /&gt;
&lt;br /&gt;
    ranges.push(range); //добавляем диапазон в массив&lt;br /&gt;
    arrays.push(array); //добавляем массив с общий массив&lt;br /&gt;
  };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// Функция диагностики. &lt;br /&gt;
/*&lt;br /&gt;
  Первый запуск функции диагностики происходит после проигрывания всего сигнала и определения массива диапазонов по срабатыванию триггера&lt;br /&gt;
  После этого происходит добавление массива пользовательских диапазонов в плеер, отрисовка (при необходимости) сигнала триггера&lt;br /&gt;
  Затем устанавливается интервал запуска функции диагностики, равный временному окну для анализа импульса и запускается отсчет циклов (попыток) диагностики&lt;br /&gt;
  Как только количество циклов (попыток) сравнивается с количеством установленных пользовательских диапазонов, диагностика останавливается&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = time; //интервал запуска функции диагностики&lt;br /&gt;
let plot = gtl.plots.add(&amp;quot;Impulses&amp;quot;); //создаем координатную плоскость&lt;br /&gt;
&lt;br /&gt;
// Основная функция диагностики&lt;br /&gt;
function diagnose() {&lt;br /&gt;
  if (tries &amp;gt;= ranges.length) gtl.diagnostic.stop();&lt;br /&gt;
  if (!is_ranges) {&lt;br /&gt;
    gtl.player.custom_ranges = ranges; //добавляем пользовательские диапазоны в плеер&lt;br /&gt;
    gtl.results = { ranges: ranges }; //выводим диапазоны в результат&lt;br /&gt;
&lt;br /&gt;
    gtl.log.info(&#039;creating ranges&#039;, true);&lt;br /&gt;
    gtl.log.info(&#039;ranges&#039;, JSON.stringify(ranges));&lt;br /&gt;
    is_ranges = true; //пользовательские диапазоны готовы&lt;br /&gt;
&lt;br /&gt;
    // Рисуем &amp;quot;огибающую&amp;quot; на координатной плоскости&lt;br /&gt;
    plot.add({&lt;br /&gt;
      color: 0x0000ff, //цвет графика&lt;br /&gt;
      name: &amp;quot;max&amp;quot;, //наименование графика&lt;br /&gt;
      x: 1 / __max.rate, //частотное разрешение&lt;br /&gt;
      y: __max.getHistoryArray() //значения амплитуд&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Рисуем сигнал триггера на координатной плоскости&lt;br /&gt;
    plot.add({&lt;br /&gt;
      color: 0xff00ff, //цвет графика&lt;br /&gt;
      name: &amp;quot;thresh&amp;quot;, //наименование графика&lt;br /&gt;
      x: 1 / __thresh.rate, //частотное разрешение&lt;br /&gt;
      y: __thresh.getHistoryArray() //значения амплитуд&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Записываем данные в формате .csv на диск&lt;br /&gt;
    let res = gtl.io.to_csv({&lt;br /&gt;
      path: &amp;quot;D:/variables2.csv&amp;quot;, //путь для сохранения файла&lt;br /&gt;
      values: arrays, //данные для записи в файл&lt;br /&gt;
      sep: &amp;quot;\t&amp;quot; //разделитель данных&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  gtl.diagnostic.interval = time_impulse; //задаем время запуска функции диагностики, равное длине импульса&lt;br /&gt;
  if (tries == 0) { gtl.log.info(&amp;quot;Установленный интервал запуска диагностики&amp;quot;, time_impulse) }&lt;br /&gt;
  else {&lt;br /&gt;
    gtl.log.info(&#039;diagnostic&#039;, `Цикл диагностики ${tries} - ${true}`)&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
      Математика обработки сигнала&lt;br /&gt;
    */&lt;br /&gt;
  }&lt;br /&gt;
  tries++;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.ranges_var&amp;diff=1385</id>
		<title>Gtl.ranges var</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.ranges_var&amp;diff=1385"/>
		<updated>2026-09-15T23:15:52Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;use strict&amp;quot;;&lt;br /&gt;
let src = gtl.analog_inputs[0]; //источник сигнала&lt;br /&gt;
let time = 20; //полное время записи для анализа: gtl.options.record.playerTime&lt;br /&gt;
let time_window = 0.02 //временное окно наблюдения&lt;br /&gt;
let time_impulse = 0.5 //временное окно для анализа импульса (например не менее времени построения его спектра) &lt;br /&gt;
let time_pre = time_window / 2; //время предыстории для анализа импульса &lt;br /&gt;
let ranges = []; //массив диапазонов для импульсов (массив объектов)&lt;br /&gt;
let arrays = []; //двумерный массив для записи в .csv&lt;br /&gt;
let tries = 0; //циклы диагностки&lt;br /&gt;
let is_ranges = false; //состояние готовности диапазонов&lt;br /&gt;
&lt;br /&gt;
// Скользящая амплитуда для создания &amp;quot;огибающей&amp;quot; импульса&lt;br /&gt;
let __max = gtl.create_moving_max({&lt;br /&gt;
  src: src, //источник сигнала&lt;br /&gt;
  name: &amp;quot;max&amp;quot;, //наименование&lt;br /&gt;
  time: time_window //рассчетное окно&lt;br /&gt;
});&lt;br /&gt;
__max.history = 2; //история сохраненных данных сигнала&lt;br /&gt;
&lt;br /&gt;
// Функция триггера&lt;br /&gt;
let __thresh = gtl.create_moving_thresh({&lt;br /&gt;
  src: __max, //источник сигнала&lt;br /&gt;
  name: &amp;quot;thresh&amp;quot;, //наименование&lt;br /&gt;
  time: time_window, //временное окно наблюдения&lt;br /&gt;
  level: 315 //уровень срабатывания триггера&lt;br /&gt;
});&lt;br /&gt;
__thresh.history = 2; //история сохраненных данных сигнала&lt;br /&gt;
&lt;br /&gt;
__thresh.triggered.connect(thresh_triggered_event); //подключаем асинхронную функцию&lt;br /&gt;
&lt;br /&gt;
// Функция обработки события по срабатыванию триггера&lt;br /&gt;
function thresh_triggered_event(flag, sample) {&lt;br /&gt;
  if (is_ranges) return;&lt;br /&gt;
  if (flag) {&lt;br /&gt;
    let start = (sample / __thresh.rate) - time_pre; //время срабатывания триггера, сек&lt;br /&gt;
    gtl.log.info(&amp;quot;trigger on time&amp;quot;, start); //выводим информацию в лог&lt;br /&gt;
&lt;br /&gt;
    // Формируем объект с результатом работы триггера&lt;br /&gt;
    let range = {&lt;br /&gt;
      min: start,&lt;br /&gt;
      max: start + time_impulse&lt;br /&gt;
    };&lt;br /&gt;
    let array = [start, start + time_impulse]; //массив начало-конец&lt;br /&gt;
&lt;br /&gt;
    ranges.push(range); //добавляем диапазон в массив&lt;br /&gt;
    arrays.push(array); //добавляем массив с общий массив&lt;br /&gt;
  };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// Функция диагностики. &lt;br /&gt;
/*&lt;br /&gt;
  Первый запуск функции диагностики происходит после проигрывания всего сигнала и определения массива диапазонов по срабатыванию триггера&lt;br /&gt;
  После этого происходит добавление массива пользовательских диапазонов в плеер, отрисовка (при необходимости) сигнала триггера&lt;br /&gt;
  Затем устанавливается интервал запуска функции диагностики, равный временному окну для анализа импульса и запускается отсчет циклов (попыток) диагностики&lt;br /&gt;
  Как только количество циклов (попыток) сравнивается с количеством установленных пользовательских диапазонов, диагностика останавливается&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = time; //интервал запуска функции диагностики&lt;br /&gt;
let plot = gtl.plots.add(&amp;quot;Impulses&amp;quot;); //создаем координатную плоскость&lt;br /&gt;
&lt;br /&gt;
// Основная функция диагностики&lt;br /&gt;
function diagnose() {&lt;br /&gt;
  if (tries &amp;gt;= ranges.length) gtl.diagnostic.stop();&lt;br /&gt;
  if (!is_ranges) {&lt;br /&gt;
    gtl.player.custom_ranges = ranges; //добавляем пользовательские диапазоны в плеер&lt;br /&gt;
    gtl.results = { ranges: ranges }; //выводим диапазоны в результат&lt;br /&gt;
&lt;br /&gt;
    gtl.log.info(&#039;creating ranges&#039;, true);&lt;br /&gt;
    gtl.log.info(&#039;ranges&#039;, JSON.stringify(ranges));&lt;br /&gt;
    is_ranges = true; //пользовательские диапазоны готовы&lt;br /&gt;
&lt;br /&gt;
    // Рисуем &amp;quot;огибающую&amp;quot; на координатной плоскости&lt;br /&gt;
    plot.add({&lt;br /&gt;
      color: 0x0000ff, //цвет графика&lt;br /&gt;
      name: &amp;quot;max&amp;quot;, //наименование графика&lt;br /&gt;
      x: 1 / __max.rate, //частотное разрешение&lt;br /&gt;
      y: __max.getHistoryArray() //значения амплитуд&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Рисуем сигнал триггера на координатной плоскости&lt;br /&gt;
    plot.add({&lt;br /&gt;
      color: 0xff00ff, //цвет графика&lt;br /&gt;
      name: &amp;quot;thresh&amp;quot;, //наименование графика&lt;br /&gt;
      x: 1 / __thresh.rate, //частотное разрешение&lt;br /&gt;
      y: __thresh.getHistoryArray() //значения амплитуд&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Записываем данные в формате .csv на диск&lt;br /&gt;
    let res = gtl.io.to_csv({&lt;br /&gt;
      path: &amp;quot;D:/variables2.csv&amp;quot;, //путь для сохранения файла&lt;br /&gt;
      values: arrays, //данные для записи в файл&lt;br /&gt;
      sep: &amp;quot;\t&amp;quot; //разделитель данных&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  gtl.diagnostic.interval = time_impulse; //задаем время запуска функции диагностики, равное длине импульса&lt;br /&gt;
  if (tries == 0) { gtl.log.info(&amp;quot;Установленный интервал запуска диагностики&amp;quot;, time_impulse) }&lt;br /&gt;
  else {&lt;br /&gt;
    gtl.log.info(&#039;diagnostic&#039;, `Цикл диагностики ${tries} - ${true}`)&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
      Математика обработки сигнала&lt;br /&gt;
    */&lt;br /&gt;
  }&lt;br /&gt;
  tries++;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.ranges_var&amp;diff=1384</id>
		<title>Gtl.ranges var</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.ranges_var&amp;diff=1384"/>
		<updated>2026-09-15T02:01:49Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;use strict&amp;quot;;&lt;br /&gt;
let src = gtl.analog_inputs[0]; //источник сигнала&lt;br /&gt;
let time = 20; //полное время записи для анализа: gtl.options.record.playerTime&lt;br /&gt;
let time_window = 0.02 //временное окно наблюдения&lt;br /&gt;
let time_impulse = 0.5 //временное окно для анализа импульса (например не менее времени построения его спектра) &lt;br /&gt;
let time_pre = time_window / 2; //время предыстории для анализа импульса &lt;br /&gt;
let ranges = []; //массив диапазонов для импульсов (массив объектов)&lt;br /&gt;
let arrays = []; //двумерный массив для записи в .csv&lt;br /&gt;
let tries = 0; //циклы диагностки&lt;br /&gt;
let is_ranges = false; //состояние готовности диапазонов&lt;br /&gt;
&lt;br /&gt;
// Скользящая амплитуда для создания &amp;quot;огибающей&amp;quot; импульса&lt;br /&gt;
let __max = gtl.create_moving_max({&lt;br /&gt;
  src: src, //источник сигнала&lt;br /&gt;
  name: &amp;quot;max&amp;quot;, //наименование&lt;br /&gt;
  time: time_window //рассчетное окно&lt;br /&gt;
});&lt;br /&gt;
__max.history = 2; //история сохраненных данных сигнала&lt;br /&gt;
&lt;br /&gt;
// Функция триггера&lt;br /&gt;
let __thresh = gtl.create_moving_thresh({&lt;br /&gt;
  src: __max, //источник сигнала&lt;br /&gt;
  name: &amp;quot;thresh&amp;quot;, //наименование&lt;br /&gt;
  time: time_window, //временное окно наблюдения&lt;br /&gt;
  level: 315 //уровень срабатывания триггера&lt;br /&gt;
});&lt;br /&gt;
__thresh.history = 2; //история сохраненных данных сигнала&lt;br /&gt;
&lt;br /&gt;
__thresh.triggered.connect(thresh_triggered_event); //подключаем асинхронную функцию&lt;br /&gt;
function thresh_triggered_event(flag, sample) {&lt;br /&gt;
  if (is_ranges) return;&lt;br /&gt;
  if (flag) {&lt;br /&gt;
    let start = (sample / __thresh.rate) - time_pre; //время срабатывания триггера, сек&lt;br /&gt;
    gtl.log.info(&amp;quot;trigger on time&amp;quot;, start); //выводим информацию в лог&lt;br /&gt;
&lt;br /&gt;
    // Формируем объект с результатом работы триггера&lt;br /&gt;
    let range = {&lt;br /&gt;
      min: start,&lt;br /&gt;
      max: start + time_impulse&lt;br /&gt;
    };&lt;br /&gt;
    let array = [start, start + time_impulse]; //массив начало-конец&lt;br /&gt;
&lt;br /&gt;
    ranges.push(range); //добавляем диапазон в массив&lt;br /&gt;
    arrays.push(array); //добавляем массив с общий массив&lt;br /&gt;
  };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// Функция диагностики. &lt;br /&gt;
/*&lt;br /&gt;
  Первый запуск функции диагностики происходит после проигрывания всего сигнала и определения массива диапазонов по срабатыванию триггера&lt;br /&gt;
  После этого происходит добавление массива пользовательских диапазонов в плеер, отрисовка (при необходимости) сигнала триггера&lt;br /&gt;
  Затем устанавливается интервал запуска функции диагностики, равный временному окну для анализа импульса и запускается отсчет циклов (попыток) диагностики&lt;br /&gt;
  Как только количество циклов (попыток) сравнивается с количеством установленных пользовательских диапазонов, диагностика останавливается&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = time; //интервал запуска функции диагностики&lt;br /&gt;
let plot = gtl.plots.add(&amp;quot;Impulses&amp;quot;); //создаем координатную плоскость&lt;br /&gt;
&lt;br /&gt;
// Основная функция диагностики&lt;br /&gt;
function diagnose() {&lt;br /&gt;
  if (tries &amp;gt;= ranges.length) gtl.diagnostic.stop();&lt;br /&gt;
  if (!is_ranges) {&lt;br /&gt;
    gtl.player.custom_ranges = ranges; //добавляем пользовательские диапазоны в плеер&lt;br /&gt;
    gtl.results = { ranges: ranges }; //выводим диапазоны в результат&lt;br /&gt;
&lt;br /&gt;
    gtl.log.info(&#039;creating ranges&#039;, true);&lt;br /&gt;
    gtl.log.info(&#039;ranges&#039;, JSON.stringify(ranges));&lt;br /&gt;
    is_ranges = true; //пользовательские диапазоны готовы&lt;br /&gt;
&lt;br /&gt;
    // Рисуем &amp;quot;огибающую&amp;quot; на координатной плоскости&lt;br /&gt;
    plot.add({&lt;br /&gt;
      color: 0x0000ff, //цвет графика&lt;br /&gt;
      name: &amp;quot;max&amp;quot;, //наименование графика&lt;br /&gt;
      x: 1 / __max.rate, //частотное разрешение&lt;br /&gt;
      y: __max.getHistoryArray() //значения амплитуд&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Рисуем сигнал триггера на координатной плоскости&lt;br /&gt;
    plot.add({&lt;br /&gt;
      color: 0xff00ff, //цвет графика&lt;br /&gt;
      name: &amp;quot;thresh&amp;quot;, //наименование графика&lt;br /&gt;
      x: 1 / __thresh.rate, //частотное разрешение&lt;br /&gt;
      y: __thresh.getHistoryArray() //значения амплитуд&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Записываем данные в формате .csv на диск&lt;br /&gt;
    let res = gtl.io.to_csv({&lt;br /&gt;
      path: &amp;quot;D:/variables2.csv&amp;quot;, //путь для сохранения файла&lt;br /&gt;
      values: arrays, //данные для записи в файл&lt;br /&gt;
      sep: &amp;quot;\t&amp;quot; //разделитель данных&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  gtl.diagnostic.interval = time_impulse; //задаем время запуска функции диагностики, равное длине импульса&lt;br /&gt;
  if (tries == 0) { gtl.log.info(&amp;quot;Установленный интервал запуска диагностики&amp;quot;, time_impulse) }&lt;br /&gt;
  else {&lt;br /&gt;
    gtl.log.info(&#039;diagnostic&#039;, `Цикл диагностики ${tries} - ${true}`)&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
      Математика обработки сигнала&lt;br /&gt;
    */&lt;br /&gt;
  }&lt;br /&gt;
  tries++;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.ranges_var&amp;diff=1383</id>
		<title>Gtl.ranges var</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.ranges_var&amp;diff=1383"/>
		<updated>2026-09-15T02:01:29Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;use strict&amp;quot;;&lt;br /&gt;
let src = gtl.analog_inputs[0]; //источник сигнала&lt;br /&gt;
let time = 20; //полное время записи для анализа: gtl.options.record.playerTime&lt;br /&gt;
let time_window = 0.02 //временное окно наблюдения&lt;br /&gt;
let time_impulse = 0.5 //временное окно для анализа импульса (например не менее времени построения его спектра) &lt;br /&gt;
let time_pre = time_window / 2; //время предыстории для анализа импульса &lt;br /&gt;
let ranges = []; //массив диапазонов для импульсов (массив объектов)&lt;br /&gt;
let arrays = []; //двумерный массив для записи в .csv&lt;br /&gt;
let tries = 0; //циклы диагностки&lt;br /&gt;
let is_ranges = false; //состояние готовности диапазонов&lt;br /&gt;
&lt;br /&gt;
// Скользящая амплитуда для создания &amp;quot;огибающей&amp;quot; импульса&lt;br /&gt;
let __max = gtl.create_moving_max({&lt;br /&gt;
  src: src, //источник сигнала&lt;br /&gt;
  name: &amp;quot;max&amp;quot;, //наименование&lt;br /&gt;
  time: time_window //рассчетное окно&lt;br /&gt;
});&lt;br /&gt;
__max.history = 2; //история сохраненных данных сигнала&lt;br /&gt;
&lt;br /&gt;
// Функция триггера&lt;br /&gt;
let __thresh = gtl.create_moving_thresh({&lt;br /&gt;
  src: __max, //источник сигнала&lt;br /&gt;
  name: &amp;quot;thresh&amp;quot;, //наименование&lt;br /&gt;
  time: time_window, //временное окно наблюдения&lt;br /&gt;
  level: 315 //уровень срабатывания триггера&lt;br /&gt;
});&lt;br /&gt;
__thresh.history = 2; //история сохраненных данных сигнала&lt;br /&gt;
&lt;br /&gt;
__thresh.triggered.connect(thresh_triggered_event); //подключаем асинхронную функцию&lt;br /&gt;
function thresh_triggered_event(flag, sample) {&lt;br /&gt;
  if (is_ranges) return;&lt;br /&gt;
  if (flag) {&lt;br /&gt;
    let start = (sample / __thresh.rate) - time_pre; //время срабатывания триггера, сек&lt;br /&gt;
    gtl.log.info(&amp;quot;trigger on time&amp;quot;, start); //выводим информацию в лог&lt;br /&gt;
&lt;br /&gt;
    // Формируем объект с результатом работы триггера&lt;br /&gt;
    let range = {&lt;br /&gt;
      min: start,&lt;br /&gt;
      max: start + time_impulse&lt;br /&gt;
    };&lt;br /&gt;
    let array = [start, start + time_impulse]; //массив начало-конец&lt;br /&gt;
&lt;br /&gt;
    ranges.push(range); //добавляем диапазон в массив&lt;br /&gt;
    arrays.push(array); //добавляем массив с общий массив&lt;br /&gt;
  };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// Функция диагностики. &lt;br /&gt;
/*&lt;br /&gt;
  Первый запуск функции диагностики происходит после проигрывания всего сигнала и определения массива диапазонов по срабатыванию триггера&lt;br /&gt;
  После этого происходит добавление массива пользовательских диапазонов в плеер, отрисовка (при необходимости) сигнала триггера&lt;br /&gt;
  Затем устанавливается интервал запуска функции диагностики, равный временному окну для анализа импульса и запускается отсчет циклов (попыток) диагностики&lt;br /&gt;
  Как только количество циклов (попыток) сравнивается с количеством установленных пользовательских диапазонов, диагностика останавливается&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = time; //интервал запуска функции диагностики&lt;br /&gt;
let plot = gtl.plots.add(&amp;quot;Impulses&amp;quot;); //создаем координатную плоскость&lt;br /&gt;
&lt;br /&gt;
// Основная функция диагностики&lt;br /&gt;
function diagnose() {&lt;br /&gt;
  if (tries &amp;gt;= ranges.length) gtl.diagnostic.stop();&lt;br /&gt;
  if (!is_ranges) {&lt;br /&gt;
    gtl.player.custom_ranges = ranges; //добавляем пользовательские диапазоны в плеер&lt;br /&gt;
    gtl.results = { ranges: ranges }; //выводим диапазоны в результат&lt;br /&gt;
&lt;br /&gt;
    gtl.log.info(&#039;creating ranges&#039;, true);&lt;br /&gt;
    gtl.log.info(&#039;ranges&#039;, JSON.stringify(ranges));&lt;br /&gt;
    is_ranges = true; //пользовательские диапазоны готовы&lt;br /&gt;
&lt;br /&gt;
    // Рисуем &amp;quot;огибающую&amp;quot; на координатной плоскости&lt;br /&gt;
    plot.add({&lt;br /&gt;
      color: 0x0000ff, //цвет графика&lt;br /&gt;
      name: &amp;quot;max&amp;quot;, //наименование графика&lt;br /&gt;
      x: 1 / __max.rate, //частотное разрешение&lt;br /&gt;
      y: __max.getHistoryArray() //значения амплитуд&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Рисуем сигнал триггера на координатной плоскости&lt;br /&gt;
    plot.add({&lt;br /&gt;
      color: 0xff00ff, //цвет графика&lt;br /&gt;
      name: &amp;quot;thresh&amp;quot;, //наименование графика&lt;br /&gt;
      x: 1 / __thresh.rate, //частотное разрешение&lt;br /&gt;
      y: __thresh.getHistoryArray() //значения амплитуд&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Записываем данные в формате .csv на диск&lt;br /&gt;
    let res = gtl.io.to_csv({&lt;br /&gt;
      path: &amp;quot;D:/variables2.csv&amp;quot;, //путь для сохранения файла&lt;br /&gt;
      values: arrays, //данные для записи в файл&lt;br /&gt;
      sep: &amp;quot;\t&amp;quot; //разделитель данных&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  gtl.diagnostic.interval = time_impulse; //задаем время запуска функции диагностики, равное длине импульса&lt;br /&gt;
  if (tries == 0) { gtl.log.info(&amp;quot;Установленный интервал запуска диагностики&amp;quot;, time_impulse) }&lt;br /&gt;
  else {&lt;br /&gt;
    gtl.log.info(&#039;diagnostic&#039;, `Цикл диагностики ${tries} - ${true}`)&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
      Математика обработки сигнала&lt;br /&gt;
    */&lt;br /&gt;
  }&lt;br /&gt;
  tries++;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;pre/&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.ranges_var&amp;diff=1382</id>
		<title>Gtl.ranges var</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.ranges_var&amp;diff=1382"/>
		<updated>2026-09-15T02:00:47Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Установка пользовательских диапазонов воспроизведения сигнала по триггеру */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;quot;use strict&amp;quot;;&lt;br /&gt;
let src = gtl.analog_inputs[0]; //источник сигнала&lt;br /&gt;
let time = 20; //полное время записи для анализа: gtl.options.record.playerTime&lt;br /&gt;
let time_window = 0.02 //временное окно наблюдения&lt;br /&gt;
let time_impulse = 0.5 //временное окно для анализа импульса (например не менее времени построения его спектра) &lt;br /&gt;
let time_pre = time_window / 2; //время предыстории для анализа импульса &lt;br /&gt;
let ranges = []; //массив диапазонов для импульсов (массив объектов)&lt;br /&gt;
let arrays = []; //двумерный массив для записи в .csv&lt;br /&gt;
let tries = 0; //циклы диагностки&lt;br /&gt;
let is_ranges = false; //состояние готовности диапазонов&lt;br /&gt;
&lt;br /&gt;
// Скользящая амплитуда для создания &amp;quot;огибающей&amp;quot; импульса&lt;br /&gt;
let __max = gtl.create_moving_max({&lt;br /&gt;
  src: src, //источник сигнала&lt;br /&gt;
  name: &amp;quot;max&amp;quot;, //наименование&lt;br /&gt;
  time: time_window //рассчетное окно&lt;br /&gt;
});&lt;br /&gt;
__max.history = 2; //история сохраненных данных сигнала&lt;br /&gt;
&lt;br /&gt;
// Функция триггера&lt;br /&gt;
let __thresh = gtl.create_moving_thresh({&lt;br /&gt;
  src: __max, //источник сигнала&lt;br /&gt;
  name: &amp;quot;thresh&amp;quot;, //наименование&lt;br /&gt;
  time: time_window, //временное окно наблюдения&lt;br /&gt;
  level: 315 //уровень срабатывания триггера&lt;br /&gt;
});&lt;br /&gt;
__thresh.history = 2; //история сохраненных данных сигнала&lt;br /&gt;
&lt;br /&gt;
__thresh.triggered.connect(thresh_triggered_event); //подключаем асинхронную функцию&lt;br /&gt;
function thresh_triggered_event(flag, sample) {&lt;br /&gt;
  if (is_ranges) return;&lt;br /&gt;
  if (flag) {&lt;br /&gt;
    let start = (sample / __thresh.rate) - time_pre; //время срабатывания триггера, сек&lt;br /&gt;
    gtl.log.info(&amp;quot;trigger on time&amp;quot;, start); //выводим информацию в лог&lt;br /&gt;
&lt;br /&gt;
    // Формируем объект с результатом работы триггера&lt;br /&gt;
    let range = {&lt;br /&gt;
      min: start,&lt;br /&gt;
      max: start + time_impulse&lt;br /&gt;
    };&lt;br /&gt;
    let array = [start, start + time_impulse]; //массив начало-конец&lt;br /&gt;
&lt;br /&gt;
    ranges.push(range); //добавляем диапазон в массив&lt;br /&gt;
    arrays.push(array); //добавляем массив с общий массив&lt;br /&gt;
  };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// Функция диагностики. &lt;br /&gt;
/*&lt;br /&gt;
  Первый запуск функции диагностики происходит после проигрывания всего сигнала и определения массива диапазонов по срабатыванию триггера&lt;br /&gt;
  После этого происходит добавление массива пользовательских диапазонов в плеер, отрисовка (при необходимости) сигнала триггера&lt;br /&gt;
  Затем устанавливается интервал запуска функции диагностики, равный временному окну для анализа импульса и запускается отсчет циклов (попыток) диагностики&lt;br /&gt;
  Как только количество циклов (попыток) сравнивается с количеством установленных пользовательских диапазонов, диагностика останавливается&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = time; //интервал запуска функции диагностики&lt;br /&gt;
let plot = gtl.plots.add(&amp;quot;Impulses&amp;quot;); //создаем координатную плоскость&lt;br /&gt;
&lt;br /&gt;
// Основная функция диагностики&lt;br /&gt;
function diagnose() {&lt;br /&gt;
  if (tries &amp;gt;= ranges.length) gtl.diagnostic.stop();&lt;br /&gt;
  if (!is_ranges) {&lt;br /&gt;
    gtl.player.custom_ranges = ranges; //добавляем пользовательские диапазоны в плеер&lt;br /&gt;
    gtl.results = { ranges: ranges }; //выводим диапазоны в результат&lt;br /&gt;
&lt;br /&gt;
    gtl.log.info(&#039;creating ranges&#039;, true);&lt;br /&gt;
    gtl.log.info(&#039;ranges&#039;, JSON.stringify(ranges));&lt;br /&gt;
    is_ranges = true; //пользовательские диапазоны готовы&lt;br /&gt;
&lt;br /&gt;
    // Рисуем &amp;quot;огибающую&amp;quot; на координатной плоскости&lt;br /&gt;
    plot.add({&lt;br /&gt;
      color: 0x0000ff, //цвет графика&lt;br /&gt;
      name: &amp;quot;max&amp;quot;, //наименование графика&lt;br /&gt;
      x: 1 / __max.rate, //частотное разрешение&lt;br /&gt;
      y: __max.getHistoryArray() //значения амплитуд&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Рисуем сигнал триггера на координатной плоскости&lt;br /&gt;
    plot.add({&lt;br /&gt;
      color: 0xff00ff, //цвет графика&lt;br /&gt;
      name: &amp;quot;thresh&amp;quot;, //наименование графика&lt;br /&gt;
      x: 1 / __thresh.rate, //частотное разрешение&lt;br /&gt;
      y: __thresh.getHistoryArray() //значения амплитуд&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    // Записываем данные в формате .csv на диск&lt;br /&gt;
    let res = gtl.io.to_csv({&lt;br /&gt;
      path: &amp;quot;D:/variables2.csv&amp;quot;, //путь для сохранения файла&lt;br /&gt;
      values: arrays, //данные для записи в файл&lt;br /&gt;
      sep: &amp;quot;\t&amp;quot; //разделитель данных&lt;br /&gt;
    });&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  gtl.diagnostic.interval = time_impulse; //задаем время запуска функции диагностики, равное длине импульса&lt;br /&gt;
  if (tries == 0) { gtl.log.info(&amp;quot;Установленный интервал запуска диагностики&amp;quot;, time_impulse) }&lt;br /&gt;
  else {&lt;br /&gt;
    gtl.log.info(&#039;diagnostic&#039;, `Цикл диагностики ${tries} - ${true}`)&lt;br /&gt;
&lt;br /&gt;
    /*&lt;br /&gt;
      Математика обработки сигнала&lt;br /&gt;
    */&lt;br /&gt;
  }&lt;br /&gt;
  tries++;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtl.ranges_var&amp;diff=1381</id>
		<title>Gtl.ranges var</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtl.ranges_var&amp;diff=1381"/>
		<updated>2026-09-15T00:59:22Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Уствновка пользовательских диапазонов воспроизведения сигнала по триггеру */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Установка пользовательских диапазонов воспроизведения сигнала по триггеру ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;quot;use strict&amp;quot;;&lt;br /&gt;
let options = gtl.options;&lt;br /&gt;
let point = gtl.options.point;&lt;br /&gt;
let record = gtl.options.record;&lt;br /&gt;
let signals = gtl.options.record.signalsModel;&lt;br /&gt;
&lt;br /&gt;
let src = gtl.analog_inputs[0]; //источник сигнала&lt;br /&gt;
let time = 20; //время записи для анализа&lt;br /&gt;
let time_window = 0.02 //временное окно наблюдения&lt;br /&gt;
let time_impulse = 0.5 //временное окно для анализа импульса (не менее времени построения спектра)&lt;br /&gt;
let time_pre = time_window / 2; //время предыстории&lt;br /&gt;
let ranges = []; //массив диапазонов для импульсов&lt;br /&gt;
let tries = 0; //циклы диагностки&lt;br /&gt;
let is_ranges = false; //состояние готовности диапазонов&lt;br /&gt;
&lt;br /&gt;
let __max = gtl.create_moving_max({&lt;br /&gt;
    src: src,&lt;br /&gt;
    name: &amp;quot;max&amp;quot;,&lt;br /&gt;
    time: time_window&lt;br /&gt;
}); //скользящая амплитуда для создания &amp;quot;огибающей&amp;quot; импульса&lt;br /&gt;
__max.history = 2; //история сохраненных данных сигнала&lt;br /&gt;
&lt;br /&gt;
let __thresh = gtl.create_moving_thresh({&lt;br /&gt;
    src: __max,&lt;br /&gt;
    name: &amp;quot;thresh&amp;quot;,&lt;br /&gt;
    time: time_window,&lt;br /&gt;
    level: 315&lt;br /&gt;
}); //порог&lt;br /&gt;
__thresh.history = 2; //история сохраненных данных сигнала&lt;br /&gt;
&lt;br /&gt;
__thresh.triggered.connect(thresh_triggered_event); //подключаем функцию&lt;br /&gt;
function thresh_triggered_event(flag, sample) {&lt;br /&gt;
    if (is_ranges) return;&lt;br /&gt;
    if (flag) {&lt;br /&gt;
        let start = (sample / __thresh.rate) - time_pre; //время срабатывания триггера&lt;br /&gt;
        gtl.log.info(&amp;quot;trigger on time&amp;quot;, start);&lt;br /&gt;
&lt;br /&gt;
        let range = {&lt;br /&gt;
            min: start,&lt;br /&gt;
            max: start + time_impulse&lt;br /&gt;
        };&lt;br /&gt;
        ranges.push(range); //добавляем диапазон в массив&lt;br /&gt;
    };&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
// Функция диагностики. &lt;br /&gt;
/*&lt;br /&gt;
  Первый запуск функции диагностики происходит после проигрывания всего сигнала и определения массива диапазонов по срабатыванию триггера&lt;br /&gt;
  После этого происходит добавление массива пользовательских диапазонов в плеер, отрисовка (при необходимости) сигнала триггера&lt;br /&gt;
  Затем устанавливается интервал запуска функции диагностики, равный временному окну для анализа импульса и запускается отсчет циклов (попыток) диагностики&lt;br /&gt;
  Как только количество циклов (попыток) сравнивается с количеством установленных пользовательских диапазонов, диагностика останавливается&lt;br /&gt;
*/&lt;br /&gt;
&lt;br /&gt;
gtl.diagnostic.interval = time; //интервал запуска функции диагностики&lt;br /&gt;
let plot = gtl.plots.add(&amp;quot;Impulses&amp;quot;); //создаем координатную плоскость&lt;br /&gt;
function diagnose() {&lt;br /&gt;
    if (!is_ranges) {&lt;br /&gt;
        gtl.player.custom_ranges = ranges; // добавляем пользовательские диапазоны в плеер&lt;br /&gt;
        gtl.results = { ranges: ranges }; // добавляем диапазоны в результат&lt;br /&gt;
        gtl.log.info(&#039;creating ranges&#039;, true);&lt;br /&gt;
        gtl.log.info(&#039;ranges&#039;, JSON.stringify(ranges));&lt;br /&gt;
        is_ranges = true; // пользовательские диапазоны готовы&lt;br /&gt;
        gtl.diagnostic.interval = time_impulse; // задаем время запуска функции диагностики, равное длине импульса&lt;br /&gt;
&lt;br /&gt;
        gtl.log.info(&amp;quot;Количество диапазонов в плеере&amp;quot;, ranges.length);&lt;br /&gt;
        gtl.log.info(&amp;quot;Установленный интервал запуска диагностики&amp;quot;, time_impulse);&lt;br /&gt;
        gtl.log.info(&amp;quot;acq_time&amp;quot;, gtl.acq_time);&lt;br /&gt;
&lt;br /&gt;
        plot.add({&lt;br /&gt;
            color: 0x0000ff, //цвет графика&lt;br /&gt;
            name: &amp;quot;max&amp;quot;, //наименование графика&lt;br /&gt;
            x: 1 / __max.rate, //частотное разрешение&lt;br /&gt;
            y: __max.getHistoryArray() //значения амплитуд&lt;br /&gt;
        }); //рисуем сигнал для контроля&lt;br /&gt;
&lt;br /&gt;
        plot.add({&lt;br /&gt;
            color: 0xff00ff, //цвет графика&lt;br /&gt;
            name: &amp;quot;thresh&amp;quot;, //наименование графика&lt;br /&gt;
            x: 1 / __thresh.rate, //частотное разрешение&lt;br /&gt;
            y: __thresh.getHistoryArray() //значения амплитуд&lt;br /&gt;
        }); //рисуем сигнал для контроля&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    if (tries &amp;gt; 0) {&lt;br /&gt;
        gtl.log.info(&#039;diagnostic&#039;, `Цикл диагностики ${tries} - ${true}`)&lt;br /&gt;
&lt;br /&gt;
        /*&lt;br /&gt;
          Математика обработки сигнала&lt;br /&gt;
        */&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    tries++;&lt;br /&gt;
    if (tries &amp;gt; ranges.length) gtl.diagnostic.stop(); // останавливаем диагностику после окончания диапазонов&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtld_simpleAR1&amp;diff=1380</id>
		<title>Gtld simpleAR1</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtld_simpleAR1&amp;diff=1380"/>
		<updated>2026-08-28T01:26:35Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: Новая страница: «== Краткое описание == Функция предназначена для формирования трендов.   &amp;lt;p style=&amp;quot;color: red&amp;gt;Cодержание функции может дополняться!&amp;lt;/p&amp;gt;  == Синтаксис == Стандартная конструкция выглядит таким образом: &amp;lt;pre style=&amp;quot;color: purple&amp;gt; let __ar1 = simpleAR1(data, phi, steps = 3); &amp;lt;/pre&amp;gt;  == Аргументы == :&amp;lt;code style=&amp;quot;co...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для формирования трендов.  &lt;br /&gt;
&amp;lt;p style=&amp;quot;color: red&amp;gt;Cодержание функции может дополняться!&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
Стандартная конструкция выглядит таким образом:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let __ar1 = simpleAR1(data, phi, steps = 3);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Аргументы ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;data&amp;lt;/code&amp;gt; - исходный массив данных;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;phi&amp;lt;/code&amp;gt; - коэффициент авторегрессии;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;forecastSteps &amp;lt;/code&amp;gt; - количество точек прогноза;&lt;br /&gt;
&lt;br /&gt;
== Содержание функции ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
// Протсая ARIMA-модель (авторегрессия — интегрированное скользящее среднее)&lt;br /&gt;
/*&lt;br /&gt;
Коэффициент авторегрессии Ф подбирается &amp;quot;на глаз&amp;quot;&lt;br /&gt;
Ф=0: вибрация почти случайна, мало зависит от предыдущих значений.&lt;br /&gt;
0&amp;lt;Ф&amp;lt;1: положительная автокорреляция — рост/падение вибрации имеет инерцию (типично для износа оборудования).&lt;br /&gt;
Ф=1: процесс близок к случайному блужданию (возможна нестационарность).&lt;br /&gt;
Ф&amp;lt;0: отрицательная автокорреляция (редкий случай для вибрации).&lt;br /&gt;
&lt;br /&gt;
Как влияет на прогноз&lt;br /&gt;
Значение Ф напрямую определяет динамику прогноза:&lt;br /&gt;
Большие значения (0.8–0.9): прогноз плавно продолжает тренд с умеренным ростом/падением.&lt;br /&gt;
Малые значения (0.1–0.3): прогноз быстро «затухает» к среднему уровню.&lt;br /&gt;
Отрицательные значения: прогноз будет осциллировать (чередовать рост и падение).&lt;br /&gt;
*/&lt;br /&gt;
function simpleAR1(data, phi, steps = 3) {&lt;br /&gt;
    const n = data.length;&lt;br /&gt;
    if (n === 0) return [];&lt;br /&gt;
&lt;br /&gt;
    // Оцениваем среднее значение ряда&lt;br /&gt;
    const mean = data.reduce((sum, val) =&amp;gt; sum + val, 0) / n;&lt;br /&gt;
&lt;br /&gt;
    const result = [...data];&lt;br /&gt;
    // Центрируем последнее значение&lt;br /&gt;
    let lastDeviation = data[n - 1] - mean;&lt;br /&gt;
&lt;br /&gt;
    for (let i = 0; i &amp;lt; steps; i++) {&lt;br /&gt;
        // Прогноз отклонения&lt;br /&gt;
        const nextDeviation = lastDeviation * phi;&lt;br /&gt;
        // Возвращаем среднее&lt;br /&gt;
        result.push(nextDeviation + mean);&lt;br /&gt;
        lastDeviation = nextDeviation;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return result;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1379</id>
		<title>Справочник GTLD:JS-API</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1379"/>
		<updated>2026-08-28T01:23:50Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Библиотека пользовательских функций GTLd: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Основные понятия: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.script Диагностические скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.masterscript Мастер-скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.monitoringscript Мониторинговые скрипты];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.node: ==&lt;br /&gt;
Объект gtld.node предоставляет API для доступа к свойствам и методам узлов дерева диагностируемого объекта.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.name Свойство gtld.node.name ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.uuid Свойство gtld.node.uuid ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.options Свойство gtld.node.options ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.parent Свойство gtld.node.parent ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.children Свойство gtld.node.children ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.lastResult Свойство gtld.node.lastResult ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.selectLastResults Метод gtld.node.selectLastResults() ];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.storage: ==&lt;br /&gt;
Объект gtld.storage предназначен для работы с историческими данными.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastPointResults Метод gtld.storage.selectLastPointResults()];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastObjectResults Метод gtld.storage.selectLastObjectResults()];&lt;br /&gt;
&lt;br /&gt;
== Часто используемые функции JavaScript: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_arrays Использование массивов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_objects Использование объектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_if Условное ветвление &amp;lt;code&amp;gt;if(...)&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_switch Конструкция ветвления &amp;lt;code&amp;gt;switch&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_for Цикл &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt;];&lt;br /&gt;
&lt;br /&gt;
== Функции инициализации диагностики GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_common_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_filter_irr Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_freq Определение частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_intg Интегрирование сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_avg Получение скользящего среднего значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_median Получение скользящего медианного значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_offset Получение скользящего значения смещения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_freq Получение скользящего значения частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_max Получение скользящего значения максимальных амплитуд];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_min Получение скользящего значения минимальных амплитуд ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_peak_to_peak Получение скользящего значения размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_corr Получение скользящего значения корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.history Получение массива значений из сигнала (истории)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_apfc Определение АФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_afc Определение АЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_pfc Определение ФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase Разница фаз моногармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase_spec Разница фаз полигармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_coherence Коэффициент когерентности сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_rms Определение СКЗ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_max_data Определение максимального значения СКЗ в заданном временном интервале];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_ampl Определение амплитудных (максимальных) значений];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_peak_to_peak Определение размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_kurt Определение коэффициента эксцесса (куртозис)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_corr Определение коэффициента корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_var Определение дисперсии (разброса значений)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ausp Построение спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_spen Построение спектра огибающей вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_phase Построение фазового спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_psd Построение спектра мощности (спектральная плотность)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_orsp Построение порядкового спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ceps Построение кепстра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.get_kurt_value Определение альтернативного коэффициента эксцесса (по огибающей сигнала)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_thresh_data Вылавливание превышений уровня сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_thresh Определение превышений уровня сигнала в установленном временном окне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.player Управление диапазонами (участками) воспроизведения сигнала в плеере];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.set_timer Установка таймера запуска функций];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.from_csv Загрузка данных из csv файла];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.to_csv Экспорт данных в csv файл];&lt;br /&gt;
&lt;br /&gt;
== Библиотека диагностических функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_diag_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.interval Интервал запуска функции диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/function_diagnose Основная функция диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.stop Остановка процесса диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.log.info Вывод информации в лог программы диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.options.customOptions Передача параметров в скрипт];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add Отрисовка произвольного графика на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add_axis Управление осями координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_spec_tools Отрисовка компонентов (инструментов) спектра на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.table Формирование произвольной таблицы];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results Получение результатов диагностики];&lt;br /&gt;
&lt;br /&gt;
== Библиотека пользовательских функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filters Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freq Определение частоты вращения по источнику данных и автоматическое уточнение];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_instability Нестабильность частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_functions Определение функциональных частот объектов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freqness Минимально необходимая частота вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_frequency Расчетная центральная частота полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_width Ширина полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_speс_params Расчетные параметры спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_square Интегральная площадь спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_todb Перевод значений массива в дБ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_mod_factor Глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_deep_factor Условная глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_ampl_factor Амплитудный коэффициент];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_std_measures Набор стандартных измерений параметров вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_tools Построение компонентов и частотных линий на спектре];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_corr Коэффициент корреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_autocorr Функция автокорреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getDefSet Формирование наборов признаков дефектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getCrossSpec Расчет перекрестного спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getFrequencyResponse Расчет частотного отклика];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_thinArray Прореживание массива данных];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_aggregateAverage Аггрегация массива данных];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_linearInterpolate Линейная интерполяция данных массива];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_exponentialSmoothing Экспотенциальное сглаживание];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_linearRegression Линейная регрессия];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_simpleAR1 Простая ARIMA модель (авторегрессия)];&lt;br /&gt;
&lt;br /&gt;
== Библиотека функций GTLd-daemon: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_async Асинхронная обработка данных в демоне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_recorder Использование рекордера в движке];&lt;br /&gt;
&lt;br /&gt;
== Практические примеры ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results_var Варианты компоновки результатов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.scripts_var Примеры диагностических скриптов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trends_var Примеры построения трендов параметров];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trendspec_var Примеры построения трендов параметров и построение спектра при превышении порогового значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.ranges_var Примеры выбора диапазонов востроизведения сигнала по триггеру];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.triggers_var Пример определения направления вращения по сдвигу фазы двух источников импульсов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.round_var Пример построения круговой диаграммы временного сигнала вибрации];&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtld_linearRegression&amp;diff=1378</id>
		<title>Gtld linearRegression</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtld_linearRegression&amp;diff=1378"/>
		<updated>2026-08-20T01:31:17Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: Новая страница: «== Краткое описание == Функция предназначена для формирования трендов с постоянной (линейной) скоростью изменения.   &amp;lt;p style=&amp;quot;color: red&amp;gt;Cодержание функции может дополняться!&amp;lt;/p&amp;gt;  == Синтаксис == Стандартная конструкция выглядит таким образом: &amp;lt;pre style=&amp;quot;color: purple&amp;gt; let __lin = l...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для формирования трендов с постоянной (линейной) скоростью изменения.  &lt;br /&gt;
&amp;lt;p style=&amp;quot;color: red&amp;gt;Cодержание функции может дополняться!&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
Стандартная конструкция выглядит таким образом:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let __lin = linearRegression(data, forecastSteps = 3);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Аргументы ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;data&amp;lt;/code&amp;gt; - исходный массив данных;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;forecastSteps &amp;lt;/code&amp;gt; - количество точек прогноза;&lt;br /&gt;
&lt;br /&gt;
== Содержание функции ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function linearRegression(data, forecastSteps = 3) {&lt;br /&gt;
    const n = data.length; //длина массива данных&lt;br /&gt;
&lt;br /&gt;
    // Проверка на достаточный объём данных. Для линейной регрессии требуется минимум 2 точки данных&lt;br /&gt;
    if (n &amp;lt; 2) return {};&lt;br /&gt;
&lt;br /&gt;
    let sumX = 0, sumY = 0, sumXY = 0, sumX2 = 0;&lt;br /&gt;
    // Подготовка данных: x — время (индексы), y — значения параметра вибрации&lt;br /&gt;
    for (let i = 0; i &amp;lt; n; i++) {&lt;br /&gt;
        sumX += i;&lt;br /&gt;
        sumY += data[i];&lt;br /&gt;
        sumXY += i * data[i];&lt;br /&gt;
        sumX2 += i ** 2;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Расчёт знаменателя с проверкой на ноль&lt;br /&gt;
    const denominator = n * sumX2 - sumX ** 2;&lt;br /&gt;
    if (Math.abs(denominator) &amp;lt; 1e-10) {&lt;br /&gt;
        gtl.log.info(&#039;Внимание!&#039;, &#039;Невозможно выполнить регрессию: знаменатель близок к нулю&#039;);&lt;br /&gt;
        return {}&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Расчёт коэффициентов&lt;br /&gt;
    const a = (n * sumXY - sumX * sumY) / denominator; // Наклон&lt;br /&gt;
    const b = (sumY - a * sumX) / n; // Сдвиг&lt;br /&gt;
&lt;br /&gt;
    // Создаём результат с исходными данными&lt;br /&gt;
    const result = [...data];&lt;br /&gt;
&lt;br /&gt;
    // Добавляем прогноз на заданное количество шагов&lt;br /&gt;
    for (let i = n; i &amp;lt; n + forecastSteps; i++) {&lt;br /&gt;
        result.push(a * i + b);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return {&lt;br /&gt;
        slope: a,&lt;br /&gt;
        intercept: b,&lt;br /&gt;
        forecastCount: forecastSteps,&lt;br /&gt;
        result: result,&lt;br /&gt;
        equation: `y = ${a.toFixed(4)}x + ${b.toFixed(4)}`&lt;br /&gt;
    };&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1377</id>
		<title>Справочник GTLD:JS-API</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1377"/>
		<updated>2026-08-20T01:25:03Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Библиотека пользовательских функций GTLd: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Основные понятия: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.script Диагностические скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.masterscript Мастер-скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.monitoringscript Мониторинговые скрипты];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.node: ==&lt;br /&gt;
Объект gtld.node предоставляет API для доступа к свойствам и методам узлов дерева диагностируемого объекта.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.name Свойство gtld.node.name ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.uuid Свойство gtld.node.uuid ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.options Свойство gtld.node.options ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.parent Свойство gtld.node.parent ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.children Свойство gtld.node.children ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.lastResult Свойство gtld.node.lastResult ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.selectLastResults Метод gtld.node.selectLastResults() ];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.storage: ==&lt;br /&gt;
Объект gtld.storage предназначен для работы с историческими данными.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastPointResults Метод gtld.storage.selectLastPointResults()];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastObjectResults Метод gtld.storage.selectLastObjectResults()];&lt;br /&gt;
&lt;br /&gt;
== Часто используемые функции JavaScript: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_arrays Использование массивов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_objects Использование объектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_if Условное ветвление &amp;lt;code&amp;gt;if(...)&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_switch Конструкция ветвления &amp;lt;code&amp;gt;switch&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_for Цикл &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt;];&lt;br /&gt;
&lt;br /&gt;
== Функции инициализации диагностики GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_common_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_filter_irr Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_freq Определение частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_intg Интегрирование сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_avg Получение скользящего среднего значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_median Получение скользящего медианного значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_offset Получение скользящего значения смещения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_freq Получение скользящего значения частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_max Получение скользящего значения максимальных амплитуд];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_min Получение скользящего значения минимальных амплитуд ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_peak_to_peak Получение скользящего значения размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_corr Получение скользящего значения корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.history Получение массива значений из сигнала (истории)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_apfc Определение АФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_afc Определение АЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_pfc Определение ФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase Разница фаз моногармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase_spec Разница фаз полигармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_coherence Коэффициент когерентности сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_rms Определение СКЗ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_max_data Определение максимального значения СКЗ в заданном временном интервале];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_ampl Определение амплитудных (максимальных) значений];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_peak_to_peak Определение размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_kurt Определение коэффициента эксцесса (куртозис)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_corr Определение коэффициента корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_var Определение дисперсии (разброса значений)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ausp Построение спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_spen Построение спектра огибающей вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_phase Построение фазового спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_psd Построение спектра мощности (спектральная плотность)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_orsp Построение порядкового спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ceps Построение кепстра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.get_kurt_value Определение альтернативного коэффициента эксцесса (по огибающей сигнала)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_thresh_data Вылавливание превышений уровня сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_thresh Определение превышений уровня сигнала в установленном временном окне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.player Управление диапазонами (участками) воспроизведения сигнала в плеере];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.set_timer Установка таймера запуска функций];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.from_csv Загрузка данных из csv файла];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.to_csv Экспорт данных в csv файл];&lt;br /&gt;
&lt;br /&gt;
== Библиотека диагностических функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_diag_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.interval Интервал запуска функции диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/function_diagnose Основная функция диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.stop Остановка процесса диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.log.info Вывод информации в лог программы диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.options.customOptions Передача параметров в скрипт];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add Отрисовка произвольного графика на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add_axis Управление осями координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_spec_tools Отрисовка компонентов (инструментов) спектра на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.table Формирование произвольной таблицы];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results Получение результатов диагностики];&lt;br /&gt;
&lt;br /&gt;
== Библиотека пользовательских функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filters Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freq Определение частоты вращения по источнику данных и автоматическое уточнение];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_instability Нестабильность частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_functions Определение функциональных частот объектов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freqness Минимально необходимая частота вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_frequency Расчетная центральная частота полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_width Ширина полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_speс_params Расчетные параметры спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_square Интегральная площадь спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_todb Перевод значений массива в дБ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_mod_factor Глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_deep_factor Условная глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_ampl_factor Амплитудный коэффициент];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_std_measures Набор стандартных измерений параметров вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_tools Построение компонентов и частотных линий на спектре];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_corr Коэффициент корреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_autocorr Функция автокорреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getDefSet Формирование наборов признаков дефектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getCrossSpec Расчет перекрестного спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getFrequencyResponse Расчет частотного отклика];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_thinArray Прореживание массива данных];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_aggregateAverage Аггрегация массива данных];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_linearInterpolate Линейная интерполяция данных массива];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_exponentialSmoothing Экспотенциальное сглаживание];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_linearRegression Линейная регрессия];&lt;br /&gt;
&lt;br /&gt;
== Библиотека функций GTLd-daemon: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_async Асинхронная обработка данных в демоне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_recorder Использование рекордера в движке];&lt;br /&gt;
&lt;br /&gt;
== Практические примеры ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results_var Варианты компоновки результатов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.scripts_var Примеры диагностических скриптов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trends_var Примеры построения трендов параметров];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trendspec_var Примеры построения трендов параметров и построение спектра при превышении порогового значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.ranges_var Примеры выбора диапазонов востроизведения сигнала по триггеру];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.triggers_var Пример определения направления вращения по сдвигу фазы двух источников импульсов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.round_var Пример построения круговой диаграммы временного сигнала вибрации];&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtld_linearInterpolate&amp;diff=1376</id>
		<title>Gtld linearInterpolate</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtld_linearInterpolate&amp;diff=1376"/>
		<updated>2026-08-12T01:54:26Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Содержание функции */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для уменьшения количества данных массива методом линейной интерполяции. Функция возвращает массив с указанным количеством элементов.   &lt;br /&gt;
&amp;lt;p style=&amp;quot;color: red&amp;gt;Cодержание функции может дополняться!&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
Стандартная конструкция выглядит таким образом:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let __inter = linearInterpolate(array, M);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Аргументы ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;array&amp;lt;/code&amp;gt; - исходный массив данных;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;M&amp;lt;/code&amp;gt; - длина целевого массива;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Содержание функции ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function linearInterpolate(arr, M) {&lt;br /&gt;
  //Функция для уменьшения элементов исходного массива методом линейной интерполяции (применяется для обработки аудио оказывается)&lt;br /&gt;
  //arr - исходный массив данных на низкой частоте&lt;br /&gt;
  //M - длина целевого массива данных (на высокой частоте)&lt;br /&gt;
  const result = new Array(M); //результирующий массив ограниченной длины&lt;br /&gt;
  const N = arr.length; //длина исходного НЧ массива&lt;br /&gt;
  if (M &amp;lt;= 0) return []; //если целевой массив пустой, то возвращаем пустой&lt;br /&gt;
  if (M === 1) return [arr[0]]; //если целевой содержит один элемент, то возвращаем первый из исходного&lt;br /&gt;
  if (arr.length === 1) return new Array(M).fill(arr[0]); //если исходный массив содержит только один элемент, заполняем весь результат этим значением&lt;br /&gt;
&lt;br /&gt;
  for (let j = 0; j &amp;lt; M; j++) {&lt;br /&gt;
    const x = j * (N - 1) / (M - 1); //позиция элемента в исходном массиве&lt;br /&gt;
    const i = Math.floor(x); //целая часть - индекс левого соседа&lt;br /&gt;
    const frac = x - i; //дробная часть - вес правого соседа (от 0 до 1): типа расстояние в % до него&lt;br /&gt;
&lt;br /&gt;
    //если мы на последнем элементе исходного массива, то берем его, иначе получается NaN в конце массива&lt;br /&gt;
    if (i === N - 1) { result[j] = arr[i] }&lt;br /&gt;
    else { result[j] = arr[i] * (1 - frac) + arr[i + 1] * frac } //формула линейной интерполяции&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  return result;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtld_linearInterpolate&amp;diff=1375</id>
		<title>Gtld linearInterpolate</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtld_linearInterpolate&amp;diff=1375"/>
		<updated>2026-08-12T01:53:11Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Содержание функции */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для уменьшения количества данных массива методом линейной интерполяции. Функция возвращает массив с указанным количеством элементов.   &lt;br /&gt;
&amp;lt;p style=&amp;quot;color: red&amp;gt;Cодержание функции может дополняться!&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
Стандартная конструкция выглядит таким образом:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let __inter = linearInterpolate(array, M);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Аргументы ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;array&amp;lt;/code&amp;gt; - исходный массив данных;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;M&amp;lt;/code&amp;gt; - длина целевого массива;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Содержание функции ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function linearInterpolate(arr, M) {&lt;br /&gt;
	//Функция для уменьшения элементов исходного массива методом линейной интерполяции (применяется для обработки аудио оказывается)&lt;br /&gt;
	//arr - исходный массив данных на низкой частоте&lt;br /&gt;
	//M - длина целевого массива данных (на высокой частоте)&lt;br /&gt;
	const result = new Array(M); //результирующий массив ограниченной длины&lt;br /&gt;
	const N = arr.length; //длина исходного НЧ массива&lt;br /&gt;
	if (M &amp;lt;= 0) return []; //если целевой массив пустой, то возвращаем пустой&lt;br /&gt;
	if (M === 1) return [arr[0]]; //если целевой содержит один элемент, то возвращаем первый из исходного&lt;br /&gt;
	if (arr.length === 1) return new Array(M).fill(arr[0]); //если исходный массив содержит только один элемент, заполняем весь результат этим значением&lt;br /&gt;
&lt;br /&gt;
	for (let j = 0; j &amp;lt; M; j++) {&lt;br /&gt;
		const x = j * (N - 1) / (M - 1); //позиция элемента в исходном массиве&lt;br /&gt;
		const i = Math.floor(x); //целая часть - индекс левого соседа&lt;br /&gt;
		const frac = x - i; //дробная часть - вес правого соседа (от 0 до 1): типа расстояние в % до него&lt;br /&gt;
&lt;br /&gt;
		//если мы на последнем элементе исходного массива, то берем его, иначе получается NaN в конце массива&lt;br /&gt;
		if (i === N - 1) { result[j] = arr[i] }&lt;br /&gt;
          else { result[j] = arr[i] * (1 - frac) + arr[i + 1] * frac } //формула линейной интерполяции&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	return result;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=Gtld_exponentialSmoothing&amp;diff=1374</id>
		<title>Gtld exponentialSmoothing</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=Gtld_exponentialSmoothing&amp;diff=1374"/>
		<updated>2026-08-11T07:20:06Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: Новая страница: «== Краткое описание == Функция предназначена для формирования трендов для стационарного ряда.   &amp;lt;p style=&amp;quot;color: red&amp;gt;Cодержание функции может дополняться!&amp;lt;/p&amp;gt;  == Синтаксис == Стандартная конструкция выглядит таким образом: &amp;lt;pre style=&amp;quot;color: purple&amp;gt; let __exp = exponentialSmoothing(data, alpha, forec...»&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Краткое описание ==&lt;br /&gt;
Функция предназначена для формирования трендов для стационарного ряда.  &lt;br /&gt;
&amp;lt;p style=&amp;quot;color: red&amp;gt;Cодержание функции может дополняться!&amp;lt;/p&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Синтаксис ==&lt;br /&gt;
Стандартная конструкция выглядит таким образом:&lt;br /&gt;
&amp;lt;pre style=&amp;quot;color: purple&amp;gt;&lt;br /&gt;
let __exp = exponentialSmoothing(data, alpha, forecastSteps = 0);&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Аргументы ==&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;data&amp;lt;/code&amp;gt; - исходный массив данных;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;alpha&amp;lt;/code&amp;gt; - коэффициент сглаживания;&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Коэффициент сглаживания alpha&lt;br /&gt;
alpha = 0 (близко к нулю):&lt;br /&gt;
Новые данные почти не учитываются, сглаженный ряд почти не меняется, повторяет начальное значение.&lt;br /&gt;
Подходит для почти стационарных процессов без тренда.&lt;br /&gt;
&lt;br /&gt;
alpha = 1 (близко к единице):&lt;br /&gt;
Новые данные имеют максимальный вес, модель мгновенно реагирует на изменения. &lt;br /&gt;
Может усиливать шум вместо сглаживания.&lt;br /&gt;
&lt;br /&gt;
alpha = (0.1-0.3) (типичные значения):&lt;br /&gt;
Баланс между учётом новых данных и сглаживанием шума, плавная реакция на изменения тренда.&lt;br /&gt;
Стандартный выбор для большинства практических задач.&lt;br /&gt;
&lt;br /&gt;
alpha = (0.3-0.5):&lt;br /&gt;
Быстрая реакция на изменения, меньше сглаживания, больше следования за данными;&lt;br /&gt;
Подходит для трендов с частыми изменениями.&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
:&amp;lt;code style=&amp;quot;color: purple&amp;gt;forecastSteps &amp;lt;/code&amp;gt; - количество точек прогноза;&lt;br /&gt;
&lt;br /&gt;
== Содержание функции ==&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
function exponentialSmoothing(data, alpha, forecastSteps = 0) {&lt;br /&gt;
    if (data.length === 0) return [];&lt;br /&gt;
&lt;br /&gt;
    const result = [data[0]];&lt;br /&gt;
    let prevForecast = data[0];&lt;br /&gt;
&lt;br /&gt;
    // Сглаживание исторических данных&lt;br /&gt;
    for (let i = 1; i &amp;lt; data.length; i++) {&lt;br /&gt;
        const currentForecast = alpha * data[i] + (1 - alpha) * prevForecast;&lt;br /&gt;
        result.push(currentForecast);&lt;br /&gt;
        prevForecast = currentForecast;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    // Прогноз: простое экспоненциальное сглаживание даёт константный прогноз&lt;br /&gt;
    const lastSmoothed = prevForecast;&lt;br /&gt;
    for (let i = 0; i &amp;lt; forecastSteps; i++) {&lt;br /&gt;
        result.push(lastSmoothed);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    return result;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
	<entry>
		<id>http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1373</id>
		<title>Справочник GTLD:JS-API</title>
		<link rel="alternate" type="text/html" href="http://docs.gtlab.pro/index.php?title=%D0%A1%D0%BF%D1%80%D0%B0%D0%B2%D0%BE%D1%87%D0%BD%D0%B8%D0%BA_GTLD:JS-API&amp;diff=1373"/>
		<updated>2026-08-11T07:03:02Z</updated>

		<summary type="html">&lt;p&gt;AlekseyCube: /* Библиотека пользовательских функций GTLd: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Основные понятия: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.script Диагностические скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.masterscript Мастер-скрипты];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.monitoringscript Мониторинговые скрипты];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.node: ==&lt;br /&gt;
Объект gtld.node предоставляет API для доступа к свойствам и методам узлов дерева диагностируемого объекта.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.name Свойство gtld.node.name ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.uuid Свойство gtld.node.uuid ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.options Свойство gtld.node.options ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.parent Свойство gtld.node.parent ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.children Свойство gtld.node.children ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.lastResult Свойство gtld.node.lastResult ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.node.selectLastResults Метод gtld.node.selectLastResults() ];&lt;br /&gt;
&lt;br /&gt;
== Свойства и методы объекта gtld.storage: ==&lt;br /&gt;
Объект gtld.storage предназначен для работы с историческими данными.&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastPointResults Метод gtld.storage.selectLastPointResults()];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld.storage.selectLastObjectResults Метод gtld.storage.selectLastObjectResults()];&lt;br /&gt;
&lt;br /&gt;
== Часто используемые функции JavaScript: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_arrays Использование массивов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_objects Использование объектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_if Условное ветвление &amp;lt;code&amp;gt;if(...)&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_switch Конструкция ветвления &amp;lt;code&amp;gt;switch&amp;lt;/code&amp;gt;];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/js_for Цикл &amp;lt;code&amp;gt;for&amp;lt;/code&amp;gt;];&lt;br /&gt;
&lt;br /&gt;
== Функции инициализации диагностики GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_common_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_filter_irr Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_freq Определение частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_intg Интегрирование сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_avg Получение скользящего среднего значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_median Получение скользящего медианного значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_offset Получение скользящего значения смещения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_freq Получение скользящего значения частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_max Получение скользящего значения максимальных амплитуд];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_min Получение скользящего значения минимальных амплитуд ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_peak_to_peak Получение скользящего значения размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_corr Получение скользящего значения корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.history Получение массива значений из сигнала (истории)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_apfc Определение АФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_afc Определение АЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_pfc Определение ФЧХ сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase Разница фаз моногармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_delta_phase_spec Разница фаз полигармонических сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_coherence Коэффициент когерентности сигналов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_rms Определение СКЗ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_max_data Определение максимального значения СКЗ в заданном временном интервале];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_ampl Определение амплитудных (максимальных) значений];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_peak_to_peak Определение размаха (Пик-Пик)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_kurt Определение коэффициента эксцесса (куртозис)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_corr Определение коэффициента корреляции];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_value_var Определение дисперсии (разброса значений)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ausp Построение спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_spen Построение спектра огибающей вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_phase Построение фазового спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_psd Построение спектра мощности (спектральная плотность)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_orsp Построение порядкового спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_ceps Построение кепстра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.get_kurt_value Определение альтернативного коэффициента эксцесса (по огибающей сигнала)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.add_thresh_data Вылавливание превышений уровня сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_moving_thresh Определение превышений уровня сигнала в установленном временном окне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.player Управление диапазонами (участками) воспроизведения сигнала в плеере];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.set_timer Установка таймера запуска функций];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.from_csv Загрузка данных из csv файла];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.io.to_csv Экспорт данных в csv файл];&lt;br /&gt;
&lt;br /&gt;
== Библиотека диагностических функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_diag_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.interval Интервал запуска функции диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/function_diagnose Основная функция диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.diagnostic.stop Остановка процесса диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.log.info Вывод информации в лог программы диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.options.customOptions Передача параметров в скрипт];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add Отрисовка произвольного графика на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.plot.add_axis Управление осями координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_spec_tools Отрисовка компонентов (инструментов) спектра на координатной плоскости];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.table Формирование произвольной таблицы];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results Получение результатов диагностики];&lt;br /&gt;
&lt;br /&gt;
== Библиотека пользовательских функций GTLd: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_info Общая информация];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filters Фильтрация сигнала];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freq Определение частоты вращения по источнику данных и автоматическое уточнение];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_instability Нестабильность частоты вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_functions Определение функциональных частот объектов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_freqness Минимально необходимая частота вращения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_frequency Расчетная центральная частота полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_filter_width Ширина полосового фильтра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_speс_params Расчетные параметры спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_square Интегральная площадь спектра вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_todb Перевод значений массива в дБ];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_mod_factor Глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_deep_factor Условная глубина модуляции гармоники];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_ampl_factor Амплитудный коэффициент];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_std_measures Набор стандартных измерений параметров вибрации];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.create_tools Построение компонентов и частотных линий на спектре];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_corr Коэффициент корреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_autocorr Функция автокорреляции дискретных сигналов (массивов)];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getDefSet Формирование наборов признаков дефектов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getCrossSpec Расчет перекрестного спектра];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_getFrequencyResponse Расчет частотного отклика];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_thinArray Прореживание массива данных];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_aggregateAverage Аггрегация массива данных];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_linearInterpolate Линейная интерполяция данных массива];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtld_exponentialSmoothing Экспотенциальное сглаживание];&lt;br /&gt;
&lt;br /&gt;
== Библиотека функций GTLd-daemon: ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_async Асинхронная обработка данных в демоне];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/Gtld_recorder Использование рекордера в движке];&lt;br /&gt;
&lt;br /&gt;
== Практические примеры ==&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.results_var Варианты компоновки результатов диагностики];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.scripts_var Примеры диагностических скриптов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trends_var Примеры построения трендов параметров];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.trendspec_var Примеры построения трендов параметров и построение спектра при превышении порогового значения];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.ranges_var Примеры выбора диапазонов востроизведения сигнала по триггеру];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.triggers_var Пример определения направления вращения по сдвигу фазы двух источников импульсов];&lt;br /&gt;
* [https://docs.gtlab.pro/index.php/gtl.round_var Пример построения круговой диаграммы временного сигнала вибрации];&lt;/div&gt;</summary>
		<author><name>AlekseyCube</name></author>
	</entry>
</feed>