Gtl.create pfc

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

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

Функция предназначена для анализа ФЧХ сигналов. Применяется для решения различных задач анализа параметров сигналов вибрации и определения разности фаз колебаний. Входными данными служат сигналы.

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

var phase = gtl.create_pfc(
    {
      src0: gtl.analog_inputs[0],
      src1: gtl.analog_inputs[1],
      frequency: 1000,
      resolution: 1,
      average: 1,
      overlap: 0,
      window: gtl.spec.rectangular,
      view: gtl.phase.deg,
      range: gtl.phase.positive
    }
);

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

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

phase.src = gtl.analog_inputs[0]; - источник сигнала;
phase.frequency = 1000; - граничная частота, Гц;
phase.resolution = 1; - частотное разрешение;
phase.average = 1; - количество усреднений;
phase.overlap = 0; - коэффициент перекрытия;
phase.window = gtl.spec.rectangular; - тип оконной функции;
rectangular;
cosin;
hann;
bartlett_hann;
hamming;
blackman;
blackman_harris;
flattop;
half_rect;
phase.wiev = gtl.phase.deg; - отображение фазы в градусах (радианах);
deg;
rad;
phase.range = gtl.phase.nagative; - тип отображения фазы (отрицательные и положительные значения);
nagative;
positive;
phase.data; - массив рассчитанных значений;

Пример использования

var apfc = gtl.add_apfc(
    {
      "src1" : gtl.analog_inputs[0],
      "src2" : gtl.analog_inputs[1],
      "name" : "coh",
      "color" : 0xff0000,
      "visible" : true,
      "freq" : 1000.0,
      "window" : gtl.spec.rectangular,
      "resolution" : 1.0,
      "average" : 1,
      "overlap" : 0,
      "afc" : gtl.apfc.coherence,
      "pfc" : gtl.apfc.deg
    }
);

var apfc1 = gtl.add_apfc(
    {
      "src1" : gtl.analog_inputs[0],
      "src2" : gtl.analog_inputs[1],
      "name" : "mag",
      "color" : 0x0000ff,
      "visible" : true,
      "freq" : 1000.0,
      "window" : gtl.spec.rectangular,
      "resolution" : 1.0,
      "average" : 1,
      "overlap" : 0,
      "afc" : gtl.apfc.magnitude,
      "pfc" : gtl.apfc.deg
    }
);

gtl.diagnostic.interval = apfc.acq_time+0.1;

function diagnose()
{
  gtl.log.info("afc", apfc.data[50]);
  gtl.log.info("pfc", apfc.phase[50]);
  gtl.log.info("acq_time", apfc.acq_time+0.1);
  
  gtl.diagnostic.stop();
};