ГО СТ Р 56047— 2014
tor (к = NF/2:-1:0)
if ((k-0.5)*df < fui)
ku(i+1) = k:
if (kl(i+1) == ku(i+1))
Uu(i+1) = 0:
etee
Uu(i+1) = (min(fui. (k+0.5)’df) ...
- max{fli. (k-0.5)*df)) / df:
end
break;
end
end
end
function {MOVI, Fmem] = PQeval (xR. xT, Fmem)
% PEAQ - обработка единичного фрейма
NF = 2048:
Version = ’Basic’;
% оконное ДПФ
X2(1.:) = PQDFTFrame (xR);
X2(2,:) = PQDFTFrame (xT);
[EbN. Es] = PQ_excitCB <X2):
[Ehs{1,:), Fmem.TDS.Ef(1.:)] = PQjimeSpread (Es(1.:). Fmem.TDS.Ef(1,:));
(Ehs{2.:). Fmem.TDS.Ef(2.:)] = PQjimeSpread (Es(2.:). Fmem.TDS.Ef(2.;));
% адаптация паттернов возбуждения
[EP. Fmem.Adap] = PQadapt (Ehs, Fmem.Adap. Version. ’FFT’);
% паттерны модуляции
[M, ERavg. Fmem.Env] = PQmodPatt (Es. Fmem.Env):
% громкость
MOVI.Loud.NRef = PQioud (Ehs(1.:). Version. ’FFT’);
MOVI.Loud.NTest = PQioud (Ehs(2.:). Version. ’FFT’);
% разница модуляций
MOVI.MDtff = PQmovModDtffB (M. ERavg);
% громкость шума
MOVI.NLoud.NL = PQmovNLoudB (M. EP);
% полоса пропускания
MOVI.BW = PQmovBW (X2);
% отношений шума к маскированию
MOVI.NMR = PQmovNMRB (EbN. Ehs(1.:));
% вероятность обнаружения
MOVI.PD = PQmovPD (Ehs);
% ошибка гармонической структуры
MOVI.EHS.EHS = PQmovEHS (xR. xT. X2);
function [EbN. Es[ = PQ_excitCB (X2)
persistent VV2 EIN
NF = 2048:
Version = ’Basic’;
if (isempty (W2))
Fs = 48000:
f = linspace (0. Fs/2. NF/2+1):
W2 = PQWOME (f);
[Nc. fc] = PQCB (Version);
EIN = PQIntNoise (fc):
end
32