Gtld filters: различия между версиями
Перейти к навигации
Перейти к поиску
| Строка 4: | Строка 4: | ||
== Синтаксис == | == Синтаксис == | ||
Стандартная конструкция выглядит таким образом: | Стандартная конструкция выглядит таким образом (на примере полосового фильтра 10-1000 Гц): | ||
<pre style="color: purple> | <pre style="color: purple> | ||
let __fltr = createFilter( | let __fltr = createFilter( | ||
| Строка 11: | Строка 11: | ||
to: 1000, //правая граница фильтра | to: 1000, //правая граница фильтра | ||
source: gtl.analog_inputs[0] //источник сигнала | source: gtl.analog_inputs[0] //источник сигнала | ||
} | } | ||
</pre> | </pre> | ||
Версия от 05:56, 25 февраля 2025
Краткое описание
функция предназначена для более наглядного создания фильтров различных типов (ФНЧ, ФВЧ, Режекторный, Полосовой).
- Примечание:
Синтаксис
Стандартная конструкция выглядит таким образом (на примере полосового фильтра 10-1000 Гц):
let __fltr = createFilter(
{
from: 10, //левая граница фильтра
to: 1000, //правая граница фильтра
source: gtl.analog_inputs[0] //источник сигнала
}
Содержание функции
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;
}