Gtld filters: различия между версиями
Перейти к навигации
Перейти к поиску
| Строка 11: | Строка 11: | ||
to: 1000, //правая граница фильтра | to: 1000, //правая граница фильтра | ||
source: gtl.analog_inputs[0] //источник сигнала | source: gtl.analog_inputs[0] //источник сигнала | ||
} | } //создаем полосовой фильтр 10-1000 Гц | ||
</pre> | </pre> | ||
Версия от 05:55, 25 февраля 2025
Краткое описание
функция предназначена для более наглядного создания фильтров различных типов (ФНЧ, ФВЧ, Режекторный, Полосовой).
- Примечание:
Синтаксис
Стандартная конструкция выглядит таким образом:
let __fltr = createFilter(
{
from: 10, //левая граница фильтра
to: 1000, //правая граница фильтра
source: gtl.analog_inputs[0] //источник сигнала
} //создаем полосовой фильтр 10-1000 Гц
Содержание функции
function createFilter(args) {
// значения по умолчанию
let __kind = gtl.filter_iir.butterworth;
let __type = gtl.filter_iir.bandpass;
let __order = 10;
let __frequency = 505;
let __width = 990;
if (args["kind"] != undefined) __kind = args.kind;
if (args["order"] != undefined) __order = args.order;
// NEW STYLE CONFIG
if (args["from"] != undefined && args["to"] != undefined) {
__width = args.to - args.from;
__frequency = __width / 2 + args.from;
__type = gtl.filter_iir.bandpass;
gtl.log.info("createFilter: type", "bandpass");
}
if (args["from"] != undefined && args["to"] == undefined) {
__frequency = args.from;
__type = gtl.filter_iir.highpass;
gtl.log.info("createFilter: type", "highpass");
}
if (args["from"] == undefined && args["to"] != undefined) {
__frequency = args.to;
__type = gtl.filter_iir.lowpass;
gtl.log.info("createFilter: type", "highpass");
}
if (args["before"] != undefined && args["after"] != undefined) {
__width = args.after - args.before;
__frequency = __width / 2 + args.before;
__type = gtl.filter_iir.bandstop;
gtl.log.info("createFilter: type", "bandstop");
}
let __source = args.source;
let __filter = gtl.add_filter_iir(__source);
__filter.kind = __kind;
__filter.type = __type;
__filter.order = __order;
__filter.frequency = __frequency;
__filter.width = __width;
gtl.log.info("createFilter: order", __filter.order);
gtl.log.info("createFilter: frequency", __filter.frequency);
gtl.log.info("createFilter: width", __filter.width);
return __filter;
}