ГОСТ Р 56047—2014
% Reference frte
% Test file
% считать фрейм данных
xR = PQgetData {WAV{1). StartS(1) + is, NF):
xT = PQgetData (WAV(2). StartS(2) + is. NF): is
= is + Nadv;
% обработка фрейма
for (j = 0:Nchan-1)
[MOVI(j+1). Fmem(j+1)) = PQeval (xR(j+1,:). xT(j+1,:). Fmem(j+1));
end
if (i >= 0)
% вывести MOV в новую структуру
PQframeMOV (i. MOVI); % выходные значения теперь в глобальной переменной MOVC
% вывод значений
if (PQopt.Ni -= 0 & mod (i. PQopt.Ni) == 0)
%PQprtMOVCi {Nchan,
i,
MOVC):
end
end
end
% усреднение no времени значений MOV
if (PQopt.De!ayOverlap)
N\vup = Fstart:
else
N\vup = 0:
end
MOVB = PQavgMOVB (MOVC. Nchan. Nwup);
% запуск нейронной сети
ODG = POnNet (MOVB):
% совокупный вывод значений
% PQprtMOV (MOVB. ODG);
%
---
function PO_CheckWAV (WAV)
% проверка файлов
Fs = 48000:
if (WAV(l).Nchan -= WAV(2).Nchan)
error (■>» Number of channels differ*);
end
if (WAV(l).Nchan > 2)
error f» > Too many input channels’):
end
if (WAV(l).Nframe -= WAV(2).Nframe)
disp (’» > Number of samples differ’):
end
if (WAV(1).Fs -= WAV(2).Fs)
error C»> Sampling frequencies differ*):
end
if <WAV(1).Fs -= Fs)
error (’» > Invalid Sampling frequency: only 48 kHz supported’):
end
%
---
function [Starts. Fstart Fend) = PQ_Bounds (WAV. Nchan. Starts. EndS. PQopt)
PQ_NF = 2048:
PQ_NADV = (PQ_NF / 2):
if (isempty (Starts))
StartSf1) = 0;
StartS<2) = 0;
elseif (length (Starts) == 1)
StartS(2) = StartS(1):
end
26