ГО СТ Р 56047— 2014
е = 0.3;
for (i = 1:2)
for (m = 0:Nc-1)
Ее = Esfi.m+I^e;
Fmem.DE(i.m+1) = a(m+1) * Fmem.DE(i.m+1)...
+ b(m+1) * Fss ‘ abs (Ее - Fmem.Ese(i.m+1)>;
Fmem.Eavg(i,m+1) = a(m+1) * Fmem.Eavg(i.m+1) + b(m+1) * Ее;
Fmem.Ese(i,m+1) = Ее;
M(i.m+1) = Fmem.DE(i.m+1)/ (1 + Fmem.Eavg(i,m+1)/0.3);
end
end
ERavg = Fmem.Eavg(1.:>;
Б.2 Листинг программы расчета метрики PEAQ на языке С
Файл: common.h
«define DEBUG
«define HANN 2048
«define BARK 109
«define DOUBLE
«if defined(DOUBLE)
«define module(x) fabs((double) x)
«define p(x.y) pow({double}x. (double)y)
#e)if defined(LDOUBLE)
«define module(x) fabsl{(long double) x)
«define p(x.y) powf((long double)x. (long double)y)
«endif
...........
.detprob
.
..........
......................../
«defined 1.0
/•*****•■**“
...........
****** end .................................*•**/
Г .................................harmstruct
..
..............
«define AVGHANN
«define SKIPFRAME
«define GETMAX
..
«define Fup 18000.0
«define Flow 80.0
«define PATCH 1
..
.
end
y............................. рваф
«define LOGVARIABLE
«ifdef LOGVARIABLE
«define LOGALLFRAMES
Г
«e
..
n
..
d
...
i
.
f
......................en d...........................
struct processing {
double fftref[HAN№2];
double ffttest{HANN/2);
double fftereflHANN.^);
double fftetest[HANN/2];
double fnoise[HANN/2]:
double pptest(BARK):
double pprefIBARK);
double ppnoise(BARK);
double E2test{BARKl;
double E2ref[BARKj:
double Etest(BARK);
double Eref[BARK];
50