ГОСТ Р 56047—2014
ini к:
static int ch = 1;
double Ntotaltest. Ntotalref:
struct levpatadaptout lev:
struct moddiffout mod;
struct processing processchl. processch2;
earmodelfft(ch1ref. Ipref. hann. processchl.ffteref.
processchl.fftref):
earmodelfft(ch1tesL Iptest. hann. processchl.fftetest.
processchl .ffttest);
critbandgroup(processch1.ffteref. rate. hann. processchl.ppref);
AddlntNoise{processch1.ppref):
critbandgroup(processch1.fftetest. rate. hann. processchl.pptest);
AddlntNoisefprocessch1.pptest);
for(k=0:k<hanrV2;k++)
processchl.fnoise[kJ = module{processch1.fftereflk])
- mcduie(processch1,fftetest{k]):
critbandgroup(processch1.fnoise, rate. hann. processchl.ppnoise):
spreading(processch1.pptest. processchl .E2test);
spreading(processch 1.ppref. processchl ,E2ref):
timespreadir»g(processch1.E2test. Etesttmpchl. rate, processchl.Etest);
timespreading{processch1.E2ref. Ereftmpchl, rate, processchl.Eref),
threshold(processch1 .Eref. processchl.Mref);
modulation(processch1.E2test. rate. &modmtestch1, processchl .Modtest):
modulation(processch1.E2ref. rate. &modinrefch1, processchl.Modref);
// Data boundary
if(boundflag) {
static int countboundary = 1;
static double RelDistFramesb = 0. nmrtmp = 0;
bandwidth(processch1 .ffttest. processchl.fftref. hann.
&bandv#idthch1);
processed.BandwidthRefb = bandwidthchl.BandwidthRefb;
processed.BandwidthTestb = bandwidthchl.BandwidthTestb:
processed.TotaINMRb = nmrfprocesschl.ppnoise. processchl.Mref.
&nmrtmp. countboundary);
processed.RelDistFramesb = reldistframes{processch1.ppnoise.
processchl.Mref.
&RelDistFramesb.
countboundary);
countboundary++;
II Data boundary + Energy threshold
if(energyth{ch1lest. chlref. hann)) {
static int countenergy = 1;
static double EHStmp = 0;
processed.EHSb = harmstruct(processch1.ffttest.
processchl.fftref.
&EHStmp, rate. Cffttmpchl.
harmsamples. &countenergy);
countenergy++:
}
}
II Delayed Averaging
iffcount > delaybme2) {
static double nltmp = 0;
static int noise = 0. internal_coimt = 0. toudcounter = 0;
60