Gtld corr
Краткое описание
Функция предназначена для расчета коэффициента корреляции дискретных сигналов (массивов). В качестве аргументов на вход подаются объекты, содержащие массив данных в ключе data. В результате возвращается расчетное значение коэффициента корреляции.
Синтаксис
Стандартная конструкция выглядит таким образом:
let __corr = msk.getCorr( obj1, obj2 );
Результат
rms_A2_3000.value- СКЗ виброускорения в диапазоне 2-3000 Гцrms_A2_10000.value- СКЗ виброускорения в диапазоне 2-10000 Гцrms_A100_10000.value- СКЗ виброускорения в диапазоне 100-10000 Гцampl_A100_10000.value- амплитуда виброускорения в диапазоне 100-10000 Гцampl_full.value- амплитуда виброускорения во всем диапазоне измеренияrms_V2_1000.value- СКЗ виброскорости в диапазоне 2-1000 Гцrms_V10_1000.value- СКЗ виброскорости в диапазоне 10-1000 Гцrms_S2_200.value- СКЗ виброперемещения в диапазоне 2-200 Гцkurt_full.value- эксцесс во всем диапазоне измеренияkurt_2_5k.value- эксцесс в полосе 2.5-5 кГцkurt_5_10k.value- эксцесс в полосе 5-10 кГцkurt_10_20k.value- эксцесс в полосе 10-20 кГцkurt_30_40k.value- эксцесс в полосе 30-40 кГцkurt_40_80k.value- эксцесс в полосе 40-80 кГц
Содержание функции
function getCorr(src1, src2) {
let arr1 = src1.data;
let arr2 = src2.data;
let X = 0; //аргумент 1
let Y = 0; //аргумент 2
let Z = 0; //аргумент 3
let arr1_avg = arr1.reduce((acc, item) => (acc + item)) / arr1.length; //среднее значение массива 1
let arr2_avg = arr2.reduce((acc, item) => (acc + item)) / arr2.length; //среднее значение массива 2
for (let i = 0; i < arr1.length; i++) {
X += (arr1[i] - arr1_avg) * (arr2[i] - arr2_avg);
Y += (arr1[i] - arr1_avg) ** 2;
Z += (arr2[i] - arr2_avg) ** 2;
};
return X / (Math.sqrt(Y) * Math.sqrt(Z));
}; //рассчет корреляции