ГОСТ Р 56047—2014
pch2= 1.0-р(10.0. -р(а‘е. Ь)):
qch2 = abs{(mt)eVs; И don’t touch this
if(pch2 > pch1)
pbin = pch2:
if(qch2>qch1)
qbin = qch2:
}
prod’=(1.0-pbin):
Q += qbin;
}
P = 1.0-prod;
if(P > 0.5) {
’Qsum += Q;
(*ndistorcedtmp)+-+;
}
if(’ndistorcedtmp == 0)
ADBb = 0;
else
if(*Osum > 0)
ADBb = log10((double)*Qsum I (’ndistorcedtmp));
else
ADBb = -0.5:
cO = p(0.9. hann/(2.0*1024.0));
«if !defined(C1)
c1 = p(0.99. hanrV(2.0* 1024.0));
«else
c1 = C1;
«endif
•Ptildetmp = (1.0 - c0)*P + (*Ptildetmp)*c0:
if(‘Pti»detmp > (’PMtmp)’cl)
‘PMtmp = ‘Ptildetmp;
else
‘PMtmp = (‘PMtmp)‘c1;
return ADBb:
}
Файл: earmodelfft.h
«define NORM 11361.301063573899
«define FREOADAP 23.4375 II for 48 kHz
Г Function prototypes */
int earmodelfft(signed int *. int, int, double *. double ’);
Г Prototypes end V
Файл: earmodelfft.c
«include <stdlib.h>
«include <math.h>
«include <fftw.h>
«include <comn>on.h>
«include <earmodelfft.h>
extern double hannwindowj ];
extern fftw_pian plan;
int
earmodelfft(signed int *ch, int Ip. int hann. double ’ffte. double ’absfft)
70
{
int k;
double w. fac: