ГОСТ Р 56047—2014
Ns = WAV(1 ).Nframe:
% границы данных
i( (PQopt.DataBounds)
Lim = PQdataBoundary (WAV(1). Nchan. StartS(1). Ns);
fprintf fPEAQ Data Boundaries: %ld (%.3f s) - %kJ (%.3f s)\n\ ...
Lim(1), Lim(iyWAV(1).Fs. Lim{2). Lim(2)/WAV(1).Fs);
else
Lim = IStarts(1). StartS(1) + Ns - 1);
end
% номер первого фрейма
Fstart = floor ((Lim(1) - StartS(1)) / PO_NADV);
% номер последнего фрейма
Fend = floor {(Um(2) - StartS(1) + 1 - PQopt.EndMin)/ PQNADV):
%-
---------
function MOVC = PQJnitMOVC (Nchan. Np)
MOVC.MDiff.Mt1B = zeros (Nchan. Np);
MOVC.MDiff.Mt2B = zeros (Nchan. Np);
MOVC.MDifl.Wt = zeros (Nchan. Np):
MOVC.NLoud.NL = zeros (Nchan. Np);
MOVC.Loud.NRef = zeros (Nchan. Np);
MOVC.Loud.NTest = zeros (Nchan. Np);
MOVC.BW.BWRef = zeros (Nchan. Np);
MOVC.BW.BWTest = zeros (Nchan. Np);
MOVC.NMR.NMRavg = zeros (Nchan. Np);
MOVC.NMR.NMRmax = zeros (Nchan. Np);
MOVC.PD.Pc = zeros (1. Np):
MOVC.PD.Qc = zeros (1. Np);
MOVC.EHS.EHS = zeros (Nchan. Np);
function ODG = PQnNetB (MOV)
% нейронная сеть для получения конечного значения метрики
persistent amin amax wx wxb wy wyb bmin bmax I J CLIPMOV
global PQopt
if (isempty (amin))
I = length (MOV):
if (I = 1 1 )
[amin. amax. wx. wxb. wy. wyb. bmin. bmax] = NNetPar (’Basic’);
else
[amin. amax. wx. wxb. wy. wyb. bmin. bmax] = NNetPar (’Advanced’);
end
[I. J] = size (wx);
end
sigmoid = inline (’1/(1 + exp(-x))’);
% Scale the MOV’s
Nclip = 0;
MOVx = zeros (1,1):
for (i = 0:1-1)
MOVx(i+1) = (MOV(i+1) - amin(i+1)) / (amax(i+1) - amm(H-l));
if (- isempty (PQopt) & PQopt.ClipMOV -= 0)
if (MOVx(i+1) < 0)
MOVx(i+1) = 0;
Nclip = Nclip + 1;
elseif (MOVx(i+1) > 1)
MOVx(i+1) = 1;
Ndip = Nclip + 1;
end
end
end
if (Nclip > 0)
fprintf (’» > %d MOVs clipped\n’. Nclip);
end
27