gtld2-diag-scripts/mtxVM.js

82 lines
3.4 KiB
JavaScript

export function modFactor(dSpec, dFilter, ampl, base) {
let dl = (ampl - base); //разность уровней гармонической и случайной составляющей вибрации
let df = dSpec.frequency / dFilter.width; //отношение частотному разрешению спектра к ширине фильтра
let mod = Math.sqrt((10 ** (dl / 10) - 1) * df);
return mod;
}; //определение глубины модуляции ВЧ составляющих
export function createTools(options) {
let __spec = options.spec; //источник данных спектра
let __set = {}; //источник данных для построения частотных линий
if (options.set != undefined) { __set = options.set };
let __tools = gtl.create_spec_tools(
{
data: __spec.data, //массив значений амплитуд спектра
df: __spec.resolution, //частотное разрешение спектра
base: {
factor: 100, //коэффициент сглаживания базовой линии
visible: true, //отображение базовой линии
color: 0xFFFF00 //цвет базовой линии в формате HEX
},
peaks: {
color: __spec.color, //цвет маркеров обнаруженных гармоник
visible: false, //отображение маркеров
level: __spec.peak_level //уровень обнаружения гармоник в спектре
},
harms: {
tolerance: options.tol //коридор обнаружения гармоник в спектре
}
}
);
let __rows = Object.keys(__set); //массив ключей объекта (наименование частот)
for (let i = 0; i < __rows.length; i++) {
let __name = __rows[i]; //название гармонического ряда
let __color = __set[__name].clr; //цвет ряда в формате HEX
let __freq = __set[__name].frq; //расчетная частота
let __mod = __set[__name].mod; //модулирующая частота
let __harms = __set[__name].cnt; //количество гармоник
let __row = __tools.harms.add(
{
frequency: __freq, //функциональная частота
count: __harms, //количество гармоник
color: __color, //цвет линий
weight: 2, //толщина линий
visible: false //отображение линий
}
);
__row.name = __name;
if (options.mod != 0) {
__row.modulate(
{
frequency: __mod, //частота амплитудной модуляции
count: 2, //количество боковых составляющих слева и справа
color: __color, //цвет линий в формате HEX
weight: 0.5 //толщина линий
}
);
};
};
return __tools;
}; //Построение компонентов и частотных линий на спектре