ГОСТ Р 56047—2014
Приложение Б
(рекомендуемое)
Листинги программ расчета метрик качества аудиоданных
Б.1 Листинг программы расчета метрики PEAQ на языке Matlab
function ODG = PQevalAudio (Fref. Ftest. Starts. EndS)
% Оценка качества аудиоданных с точки зрения восприятия (Perceptual evaluation of audio quality)
% - StartS - индекс значения, соответствующего началу сигнала.
% - EndS - индекс значения, соответствующего концу сигнала.
% глобальные переменные
global MOVC PQopt
% параметры
NF = 2048:
Nadv = NF / 2:
Version = ’Basic’:
% настройки
PQopt.ClipMOV = 0:
PQopt.PCinit = 0;
PQopt.PDfactor = 1:
PQopt Ni = 1;
PQopt.DelayOvertap = 1;
PQopt-OataBounds = 1:
POopt.EndMin = NF / 2;
addpath (’CB’. ’MOV’. Wise’. ’Patt’);
if (nargin < 3)
Starts = (0.
0
j;
end
if (nargin < 4)
EndS = [ ];
end
% вычислить количество значений и каналов для каждого входного файла
WAV(1) = PQwavF.lePar (Fret):
WAV(2) = PQwavFilePar (Ftest);
% согласовать размеры файлов
PQ_CheckWAV (WAV):
if (WAV(l).Nframe -= WAV(2).Nframe)
disp (*>» Number of samples differ: using the minimum’):
end
% границы данных
Nchan = WAV(1).Nchan;
(StartS. Fstart. Fend] = PQ_Bounds (WAV. Nchan. StartS. EndS. PQopt):
% фреймов PEAQ
Np = Fend - Fstart + 1;
if (PQopt.Ni < 0)
PQopt.Ni = ceil (Np / abs(PQopt.Ni)):
end
% инициализация структуры MOV
MOVC = PQJnitMOVC (Nchan. Np);
Nc = PQCB (Version);
for (j = 0:Nchan-1)
Fmem{j+1) = PQinitFMem (Nc. PQopt.PCinit);
end
is =
0
;
for (i = -Fstart:Np-1)
25