Gtl.add filter irr

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

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

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

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

var filter = gtl.add_filter_iir( один из аналоговых входов );

Свойства (методы)

filter.kind = gtl.filter_irr.butterworth; - тип окна;
bessel;
butterworth;
chebyshev1,
chebyshev2,
elliptic,
legendre,
rbj,
undef. 
filter.type = gtl.filter_irr.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_irr
 * @param {number|Array<number>} analogInput
 *   Один из аналоговых входов (элемент `gtl.analog_inputs`).
 * @returns {Object} Объект фильтра с настройками и свойствами для фильтрации сигнала.
 *
 * @example
 * // Создание фильтра для первого аналогового входа
 * var filter = gtl.add_filter_irr(gtl.analog_inputs[0]);
 *
 * // Настройка фильтра: Баттерворт, ФНЧ, 4‑го порядка, граничная частота 3000 Гц
 * filter.kind = gtl.filter_irr.butterworth;
 * filter.type = gtl.filter_irr.lowpass;
 * filter.order = 4;
 * filter.frequency = 3000;
 */
gtl.add_filter_irr = function(analogInput) {};

/**
 * Объект фильтра, созданный через `gtl.add_filter_irr`.
 * Позволяет настраивать параметры фильтрации сигнала вибрации.
 *
 * @typedef {Object} IrrFilter
 *
 * @property {string} kind
 *   Тип оконной функции фильтра. Допустимые значения:
 *   - `gtl.filter_irr.bessel`
 *   - `gtl.filter_irr.butterworth` (по умолчанию)
 *   - `gtl.filter_irr.chebyshev1`
 *   - `gtl.filter_irr.chebyshev2`
 *   - `gtl.filter_irr.elliptic`
 *   - `gtl.filter_irr.legendre`
 *   - `gtl.filter_irr.rbj`
 *   - `gtl.filter_irr.undef`
 *
 * @property {string} type
 *   Тип фильтра. Допустимые значения:
 *   - `gtl.filter_irr.lowpass` — фильтр нижних частот (ФНЧ)
 *   - `gtl.filter_irr.highpass` — фильтр верхних частот (ФВЧ)
 *   - `gtl.filter_irr.bandpass` — полосовой фильтр
 *
 * @property {number} order
 *   Порядок фильтра (целое положительное число). Определяет крутизну спада АЧХ.
 *   Типичные значения: $2$–$8$.
 *
 * @property {number} frequency
 *   Граничная частота фильтра в герцах (Гц):
 *   - для ФНЧ и ФВЧ — частота среза;
 *   - для полосового фильтра — центральная частота полосы пропускания.
 *
 * @property {number} [width]
 *   Ширина полосы фильтра в герцах (Гц). Используется только для полосового фильтра (`bandpass`).
 *   Задаёт диапазон частот вокруг `frequency`, который будет пропущен.
 */