Gtl.add filter irr



Краткое описание
Функция предназначена для фильтрации сигнала. Необходима для выделения в сигнале частотных диапазонов при проведении конкретных видов анализа вибрации.
Объявление функции
var filter = gtl.add_filter_iir( один из аналоговых входов );
Свойства (методы)
filter.kind = gtl.filter_iir.butterworth;- тип окна;
bessel; butterworth; chebyshev1, chebyshev2, elliptic, legendre, rbj, undef.
filter.type = gtl.filter_iir.lowpass;- тип фильтра;
lowpass; highpass; bandpass.
filter.order = 4;- порядок фильтра;filter.frequency = 3000;- граничная частота фильтра (для полосового фильтра - центральная частота), Гц;filter.width = 1250;- ширина полосы фильтра (для полосового фильтра), Гц;
Пример использования
//фильтрация сигнала перед определением частоты вращения из сигнала
var filter = gtl.add_filter_iir(gtl.analog_inputs[1]); //объявление переменной фильтра
filter.kind = gtl.filter_iir.butterworth; //тип окна
filter.type = gtl.filter_iir.lowpass; //тип фильтра (ФНЧ)
filter.order = 8; //порядок фильтра
filter.frequency = 10; //граничная частота фильтра
//определение частоты вращения
var freq = gtl.add_value_freq(filter); //объявление переменной частоты вращения
freq.time = 1; //время выборки
freq.avg_cnt = 6; //количество усреднений
gtl.diagnostic.interval = freq.time * freq.avg_cnt; //интервал запуска функции диагностики
function diagnose() {
gtl.log.info("Частота вращения", freq.value);
}
Описание JSDoc
/**
* Создаёт фильтр бесконечной импульсной характеристики (IIR) для обработки сигнала вибрации
* с целью выделения заданных частотных диапазонов. Используется при проведении различных
* видов анализа вибрации.
*
* @function gtl.add_filter_iir
* @param {number|Array<number>} analogInput
* Один из аналоговых входов (элемент `gtl.analog_inputs`) или массив данных для фильтрации.
* @returns {IirFilter} Объект фильтра с настройками и свойствами для фильтрации сигнала.
*
* @example
* // Создание фильтра для первого аналогового входа
* var filter = gtl.add_filter_iir(gtl.analog_inputs[0]);
*
* // Настройка фильтра: Баттерворт, ФНЧ, 4‑го порядка, граничная частота 3000 Гц
* filter.kind = gtl.filter_iir.butterworth;
* filter.type = gtl.filter_iir.lowpass;
* filter.order = 4;
* filter.frequency = 3000;
*
* // Для полосового фильтра дополнительно задаём ширину полосы
* filter.type = gtl.filter_iir.bandpass;
* filter.width = 1250;
*/
gtl.add_filter_iir = function(analogInput) {};
/**
* Объект фильтра бесконечной импульсной характеристики (IIR), созданный через `gtl.add_filter_iir`.
* Позволяет настраивать параметры фильтрации сигнала вибрации.
*
* @typedef {Object} IirFilter
*
* @property {string} kind
* Тип оконной функции (аппроксимации) фильтра. Допустимые значения:
* - `gtl.filter_iir.bessel` — фильтр Бесселя;
* - `gtl.filter_iir.butterworth` — фильтр Баттерворта;
* - `gtl.filter_iir.chebyshev1` — фильтр Чебышева I типа;
* - `gtl.filter_iir.chebyshev2` — фильтр Чебышева II типа;
* - `gtl.filter_iir.elliptic` — эллиптический фильтр;
* - `gtl.filter_iir.legendre` — фильтр Лежандра;
* - `gtl.filter_iir.rbj` — фильтр по методике Роберта Бристау;
* - `gtl.filter_iir.undef` — тип не определён.
*
* @property {string} type
* Тип фильтра по частотной избирательности. Допустимые значения:
* - `gtl.filter_iir.lowpass` — фильтр нижних частот (ФНЧ): пропускает частоты ниже `frequency`;
* - `gtl.filter_iir.highpass` — фильтр верхних частот (ФВЧ): пропускает частоты выше `frequency`;
* - `gtl.filter_iir.bandpass` — полосовой фильтр: пропускает частоты в диапазоне
*
* @property {number} order
* Порядок фильтра (целое положительное число). Определяет крутизну спада амплитудно‑частотной
* характеристики (АЧХ) за пределами полосы пропускания. Типичные значения: 2–8.
* Высокий порядок даёт более крутой спад, но может вызвать фазовые искажения.
*
* @property {number} frequency
* Граничная частота фильтра в герцах (Гц):
* - для ФНЧ и ФВЧ — частота среза;
* - для полосового фильтра — центральная частота полосы пропускания.
*
* @property {number} [width]
* Ширина полосы фильтра в герцах (Гц). Используется только для полосового фильтра (`bandpass`).
* Задаёт диапазон частот вокруг `frequency`, который будет пропущен.
*/