mask was changed

develop
Aleksey_K 2024-05-15 14:21:54 +09:00
parent e7bee20b83
commit 411b9aa062
1 changed files with 9 additions and 9 deletions

View File

@ -1,6 +1,6 @@
export function mask(spec, filter, frq, harms, lvl, tol, state) { export function mask(spec, filter, frq, harms, lvl, tol, state) {
let mask = spec.base; //массив точек портрета дефекта let mask = spec.base; //исходный массив точек для построения портрета дефекта
let df = filter.width / spec.resolution; //отношение ширины фильтра частотному разрешению спектра let df = filter.width / spec.resolution; //отношение ширины фильтра частотному разрешению спектра
let dl = 10 * Math.log10((lvl ** 2) * df + 1); //разность уровней гармонической и случайной составляющей вибрации let dl = 10 * Math.log10((lvl ** 2) * df + 1); //разность уровней гармонической и случайной составляющей вибрации
let k = 0; //коэффициент затухания let k = 0; //коэффициент затухания
@ -10,20 +10,20 @@ export function mask(spec, filter, frq, harms, lvl, tol, state) {
switch (state) { switch (state) {
case 0: //маска износа: коэффициент затухания 30-50% case 0: //маска износа: коэффициент затухания 30-50%
for (let i = 1; i <= harms; i++) { for (let i = 1; i <= harms; i++) {
k = 0.3; k = 0.5;
xmin = Math.round(i * (frq - frq * tol / 100) / spec.resolution); //определяем индекс левой границы коридора xmin = Math.round(i * (frq - frq * tol / 100) / spec.resolution); //определяем индекс левой границы коридора
xmax = 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 }; //записываем значение глубины модуляции для коридора for (let j = xmin; j <= xmax; j++) { mask[j] = spec.base[j] + dl }; //записываем значение глубины модуляции для коридора
dl = k * dl; //снижаем глубину модуляции по коэффициенту затухания dl = dl - (k * dl); //снижаем глубину модуляции с коэффициентом затухания
}; };
break; break;
case 1: //маска дефекта: коэффициент затухания 5-10% case 1: //маска дефекта: коэффициент затухания 5-10%
for (let i = 0; i < harms; i++) { for (let i = 1; i <= harms; i++) {
k = 0.05; k = 0.1;
xmin = Math.round(i * (frq - frq * tol / 100) / spec.resolution); //определяем индекс левой границы коридора xmin = Math.round(i * (frq - frq * tol / 100) / spec.resolution); //определяем индекс левой границы коридора
xmax = 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 }; //записываем значение глубины модуляции для коридора for (let j = xmin; j <= xmax; j++) { mask[j] = spec.base[j] + dl }; //записываем значение глубины модуляции для коридора
dl = k * dl; //снижаем глубину модуляции по коэффициенту затухания dl = dl - (k * dl); //снижаем глубину модуляции с коэффициентом затухания
}; };
break; break;
case 2: //маска перекоса: коэффициент выраженности 0-20% case 2: //маска перекоса: коэффициент выраженности 0-20%
@ -47,9 +47,9 @@ export function mask(spec, filter, frq, harms, lvl, tol, state) {
//отрисовка пользовательского графика //отрисовка пользовательского графика
gtl.plot.add( gtl.plot.add(
{ {
color: 0xff00ff, color: 0xff0000,
name: "mask1", name: "mask_" + spec.name,
//x: [0.0, 0.1, 0.4, 0.8], x: spec.resolution,
y: mask y: mask
} }
); );