Gtld filters: различия между версиями

Материал из GTL-wiki
Перейти к навигации Перейти к поиску
(Новая страница: «== Краткое описание == функция предназначена для более наглядного создания фильтров различных типов (ФНЧ, ФВЧ, Режекторный, Полосовой). == Синтаксис == Стандартная конструкция выглядит таким образом: :<code style="color: purple> <pre> let __fness = freqNess(); </code> </pre> == Содержание...»)
 
Строка 4: Строка 4:
== Синтаксис ==
== Синтаксис ==
Стандартная конструкция выглядит таким образом:
Стандартная конструкция выглядит таким образом:
:<code style="color: purple>
:<pre style="color: purple>
<pre>
let __fness = freqNess();
let __fness = freqNess();
</code>
</pre>
</pre>
== Содержание функции ==
== Содержание функции ==
<pre>
<pre>

Версия от 05:48, 25 февраля 2025

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

функция предназначена для более наглядного создания фильтров различных типов (ФНЧ, ФВЧ, Режекторный, Полосовой).

Синтаксис

Стандартная конструкция выглядит таким образом:

let __fness = freqNess();

Содержание функции

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;

  // OLD STYLE CONFIG
  if (args["type"] != undefined) __type = args.type;
  if (args["frequency"] != undefined) __frequency = args.frequency;
  if (args["width"] != undefined) __width = args.width;

  // 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;
}