Gtld getCrossSpec
Перейти к навигации
Перейти к поиску
Краткое описание
Функция предназначена для расчета параметров перекрестного спектра. Функция возвращает объект с параметрами перекрестного спектра (действительная часть, мнимая часть, амплитуда, фаза).
Cодержание функции может дополняться!
Синтаксис
Стандартная конструкция выглядит таким образом:
let __cross = getCrossSpectrum(reX, imX, reY, imY);
Результат
__cross.reXY- действительная часть перекрестного спектра;__cross.imXY- мнимая часть перекрестного спектра;__cross.power- амплитуда перекрестного спектра;__cross.phase- фазовая часть перекрестного спектра;
Содержание функции
function getCrossSpectrum(reX, imX, reY, imY) {
const n = reX.length;
const reXY = new Array(n); // действительная часть
const imXY = new Array(n); // мнимая часть
const power = new Array(n); // мощность кросс-спектра
let phase = new Array(n); // фаза (радианы)
for (let i = 0; i < n; i++) {
// Комплексное сопряжение спектра imY* (мнимая часть спектра силы сразу берём с обратным знаком)
const a = reX[i], b = imX[i]; // X(f) = a + ib
const c = reY[i], d = -imY[i]; // Y(f) = c + id
// Почастотное умножение
reXY[i] = a * c - b * d; // действительная часть
imXY[i] = b * c + a * d; // мнимания часть
// Мощность кросс-спектра
power[i] = reXY[i] * reXY[i] + imXY[i] * imXY[i];
// Фаза = arctan(Im/Re)
phase[i] = Math.atan2(imXY[i], reXY[i]);
}
return { reXY, imXY, power, phase };
}