ГОСТ Р 56047—2014
fftw_complex in[HANN]. out(HANN]:
fac = p(10.0. Ip/20.0)/NORM;
for(k=0;k<hann;k++) {
injk].re = hannwindow[k) * (double)ch(k];
in[kj.im = 0;
)
fftwj>ne(plan. in. out);
for(k=0;k<hann/2;k++) {
out[k].re ’= (double)(faahann);
out[kj.im *= (doubleXfac/hann);
absfft(k] = sqrt((double)(p(out[k].re. 2.0) + p(out(k].im. 2.0)));
w = -0.6‘3.64*p(k * FREOADAP/1000.0. -0.8) ♦
6.5’exp((double)-0.6‘p(k * FREQADAP/1000.0 - 3.3. 2.0)) -
0.001*p<k ’ FREQADAP/1000.0. 3.6);
ffte[k) = absffl[k)*p(10.0, w/20.0);
)
return 0;
}
Файл: energyth.h
//define ENERGYLIWIT 8000
/’ Function prototypes 7
int energyth(signed int *. signed int *. int);
/* Prototypes end V
Файл: energyth.c
//include <stdlib.h>
/include <math.h>
//include <common.h>
//include <energyth.h>
int
energyth(signed int ’test, signed int "ref. int hann)
{
int k;
double sum;
sum = 0;
for(k=0;k<hann/2;k*+) {
sum += p(test(hann’2 + kj. 2.0);
if(sum > ENERGYLIMIT)
return 1;
}
sum = 0;
for(k=0;k<hann/2;k++) {
sum += p(retlhann/2 + k). 2.0);
if(sum > ENERGYLIMIT)
return 1;
)
return 0;
)
Файл: getframe.h
//define LP 92
Г Function prototypes V
signed int GetFrameValue(FILE *, int):
71