From f76190d8b3a66cd395df1fa0ac3c159b05ae4659 Mon Sep 17 00:00:00 2001 From: Aleksey_K Date: Wed, 8 May 2024 14:43:57 +0900 Subject: [PATCH] mask was changed --- mask.js | 37 +++++++++++++++++++++++++++---------- 1 file changed, 27 insertions(+), 10 deletions(-) diff --git a/mask.js b/mask.js index 6c923f7..004959a 100644 --- a/mask.js +++ b/mask.js @@ -3,24 +3,41 @@ export function mask(spec, filter, frq, harms, lvl, tol, state) { let mask = spec.base; //массив точек портрета дефекта let df = filter.width / spec.resolution; //отношение ширины фильтра частотному разрешению спектра let dl = 10 * Math.log10((lvl ** 2) * df + 1); //разность уровней гармонической и случайной составляющей вибрации + let k = 0; //коэффициент затухания + let xmin = 0; //левая граница коридора + let xmax = 0; //правая граница коридора switch (state) { - case 0: //маска износа - for (let i = 0; i < frq; i++) { - - + case 0: //маска износа: коэффициент затухания 30-50% + for (let i = 1; i <= harms; i++) { + k = 0.3; + xmin = Math.round(i * (frq - frq * tol / 100) / spec.resolution); //определяем индекс левой границы коридора + xmax = Math.round(i * (frq + frq * tol / 100) / spec.resolution); //определяем индекс правой границы коридора; + for (let j = xmin; j <= xmax; j++) { mask[j] = spec.base[j] + dl }; //записываем значение глубины модуляции для коридора + dl = k * dl; //снижаем глубину модуляции по коэффициенту затухания }; break; - case 1: //маска дефекта - for (let i = 0; i < frq; i++) { - - + case 1: //маска дефекта: коэффициент затухания 5-10% + for (let i = 0; i < harms; i++) { + k = 0.05; + xmin = Math.round(i * (frq - frq * tol / 100) / spec.resolution); //определяем индекс левой границы коридора + xmax = Math.round(i * (frq + frq * tol / 100) / spec.resolution); //определяем индекс правой границы коридора; + for (let j = xmin; j <= xmax; j++) { mask[j] = spec.base[j] + dl }; //записываем значение глубины модуляции для коридора + dl = k * dl; //снижаем глубину модуляции по коэффициенту затухания }; break; - case 2: //маска перекоса - for (let i = 0; i < frq; i++) { + case 2: //маска перекоса: коэффициент выраженности 0-20% + for (let i = 1; i < harms; i++) { + if (i % 2 > 0) { + k = 0.1; + + + + + + }; }; break; default: