getMask was changed
parent
b0b1c30bad
commit
e63109b787
44
getMask.js
44
getMask.js
|
@ -1,28 +1,28 @@
|
||||||
|
|
||||||
export function specModel(spec, tol, color, canvas) {
|
export function specModel(options) {
|
||||||
let result = {}; //результат
|
let result = {}; //результат
|
||||||
let model = spec.base; //массив точек базовой линии для построения упрощенной модели спектра
|
let model = options.src.base; //массив точек базовой линии для построения упрощенной модели спектра
|
||||||
let imin = 0; //левая граница коридора
|
let imin = 0; //левая граница коридора
|
||||||
let imax = 0; //правая граница коридора
|
let imax = 0; //правая граница коридора
|
||||||
for (let i = 0; i < spec.peaks.length; i++) {
|
for (let i = 0; i < options.src.peaks.length; i++) {
|
||||||
let freq = spec.peaks[i].freq; //получаем значение частоты гармоники из массива обнаруженных гармоник
|
let freq = options.src.peaks[i].freq; //получаем значение частоты гармоники из массива обнаруженных гармоник
|
||||||
let level = spec.peaks[i].level; //получаем значение уровня гармоники из массива обнаруженных гармоник
|
let level = options.src.peaks[i].level; //получаем значение уровня гармоники из массива обнаруженных гармоник
|
||||||
imin = Math.round((freq - freq * 0.5 * tol / 100) / spec.resolution);
|
imin = Math.round((freq - freq * 0.5 * options.tol / 100) / options.src.resolution);
|
||||||
imax = Math.round((freq + freq * 0.5 * tol / 100) / spec.resolution);
|
imax = Math.round((freq + freq * 0.5 * options.tol / 100) / options.src.resolution);
|
||||||
if (imax > spec.base.length) { imax = spec.base.length - 1 }; //проверяем выход границы за размер массива
|
if (imax > options.src.base.length) { imax = options.src.base.length - 1 }; //проверяем выход границы за размер массива
|
||||||
for (let j = imin; j <= imax; j++) { model[j] = spec.base[j] + level };
|
for (let j = imin; j <= imax; j++) { model[j] = options.src.base[j] + level };
|
||||||
};
|
};
|
||||||
|
|
||||||
//формируем результат
|
//формируем результат
|
||||||
result["name"] = "model_" + spec.name;
|
result["name"] = "model_" + options.src.name;
|
||||||
result["resolution"] = spec.resolution;
|
result["resolution"] = options.src.resolution;
|
||||||
result["data"] = model;
|
result["data"] = model;
|
||||||
|
|
||||||
//отрисовка графика на plot
|
//отрисовка графика на plot
|
||||||
if (canvas != undefined) {
|
if (options.canvas != undefined) {
|
||||||
canvas.add(
|
options.canvas.add(
|
||||||
{
|
{
|
||||||
color: color,
|
color: options.color,
|
||||||
name: result.name,
|
name: result.name,
|
||||||
x: result.resolution,
|
x: result.resolution,
|
||||||
y: model
|
y: model
|
||||||
|
@ -139,12 +139,18 @@ export function getMask(options) {
|
||||||
return result;
|
return result;
|
||||||
}; //построение портрета дефекта
|
}; //построение портрета дефекта
|
||||||
|
|
||||||
export function corr(spec1, spec2) {
|
export function corr(options) {
|
||||||
let result = {}; //результат
|
let result = {}; //результат
|
||||||
let plot = []; //массив значений корреляции для графика
|
let plot = []; //массив значений корреляции для графика
|
||||||
let corr = 0; //коэффициент корреляции
|
let corr = 0; //коэффициент корреляции
|
||||||
let arr1 = spec1.data;
|
let arr1 = options.src1.data;
|
||||||
let arr2 = spec2.data;
|
let arr2 = options.src2.data;
|
||||||
|
if (options.offset != undefined) {
|
||||||
|
let k = Math.round(arr2.length * options.offset); //количесто индексов для сдвига массива
|
||||||
|
let Rh = arr2.slice(- k); //отделяем "хвост" массива
|
||||||
|
let Lt = arr2.slice(0, - k); //отделяем "тело" массива
|
||||||
|
arr2 = [].concat(Rh, Lt); //соединяем части массива
|
||||||
|
};
|
||||||
let arr1_sum = 0; //сумма значений массива 1
|
let arr1_sum = 0; //сумма значений массива 1
|
||||||
let arr2_sum = 0; //сумма значений массива 2
|
let arr2_sum = 0; //сумма значений массива 2
|
||||||
let X = 0; //аргумент 1
|
let X = 0; //аргумент 1
|
||||||
|
@ -164,7 +170,7 @@ export function corr(spec1, spec2) {
|
||||||
|
|
||||||
corr = X / (Math.sqrt(Y) * Math.sqrt(Z));
|
corr = X / (Math.sqrt(Y) * Math.sqrt(Z));
|
||||||
result["corr"] = corr;
|
result["corr"] = corr;
|
||||||
result["plot"] = plot;
|
result["data"] = plot;
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}; //рассчет корреляции спектров
|
}; //рассчет корреляции (автокорреляции) сигналов
|
||||||
|
|
Loading…
Reference in New Issue