Gtl.add filter irr

Материал из GTL-wiki
Перейти к навигации Перейти к поиску
lowpass
highpass
bandpass

Краткое описание

Функция предназначена для фильтрации сигнала. Необходима для выделения в сигнале частотных диапазонов при проведении конкретных видов анализа вибрации.

Объявление функции

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

/**
 * Создаёт фильтр для обработки сигнала вибрации
 * с целью выделения заданных частотных диапазонов. Используется при проведении различных
 * видов анализа вибрации.
 *
 * @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) {};

/**
 * Объект фильтра, созданный через `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`, который будет пропущен.
 */