Gtl.add filter irr

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

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

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

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

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

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

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) {};

/**

* Объект фильтра бесконечной импульсной характеристики (IIR), созданный через `gtl.add_filter_irr`.
* Позволяет настраивать параметры фильтрации сигнала вибрации.
*
* @typedef {Object} IirFilter
*
* @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`, который будет пропущен.
*/