ГОСТ Р 56047—2014
timespreading(processch2.E2test. Etesttmpch2, rate,
processch2.Etest);
timespreading(prooessch2.E2ref. Ereftmpch2. rate.
processch2.Erel}:
threshold(processch2.Eref. processch2.Mref);
modulation(processch2.E2test, rate. &modintestch2.
processch2.Modtest);
modulation(processch2.E2ref. rate. &modinrefch2.
processch2.Modref);
II Data boundary
if(boundflag) {
statrc int countboundary = 1;
static double RelDistFramesb = 0. nmrtmp = 0;
bandwidth(processch2.fittest. processch2.fftref. hann.
&bandvndthch2):
processed.BandiVidtbRefb += bandwidthch2.BandvridthRefb;
processed.BandwidthTestb += bandwidthch2.BandwidthTestb;
processed.BandwidthRefb /= 2.0;
processed.BandwidthTestb /= 2.0;
processed.TotalNMRb ♦= nmr(processch2.ppnoise.
processch2.Mref. &nmrtmp.
countboundary):
processed.RelDistFramesb += reldistframes{processch2.ppnoise.
processch2.Mref.
&RelDistFramesb.
countboundary);
processed.TotalNMRb /= 2.0;
processed.RelDistFramesb/= 2.0:
countboundary++;
II Data boundary + Energy threshold
if(energyth(ch2test. ch2ref. hann)) {
static int countenefgy = 1;
static double EHStmp = 0;
processed.EHSb += harmstruct(processch2.ffttest.
processch2.fftref.
&EHStmp. rate. Cffttmpch2.
harmsamfMes. &countenergy);
processed.EHSb /= 2.0;
countenergy++;
}
}
II Delayed Averaging
if(count > delaytime2) {
static double nltmp = 0;
static int noise = 0. internal_count = 0. toudcounter = 0;
mod = moddiff(processch2.Modtest. processch2.Modref.
(double *)&(modinrefch2.Etildetmp));
processed.WinModDifflb += ModDiff1(mod. &moddiffinch2.
count - delaytime2);
processed.AvgModDifflb += ModDiff2(mod, &moddiffinch2);
processed.AvgModDiff2b += ModDiff3(mod. &moddiffinch2);
processed.WinModDifflb /= 2.0:
processed.AvgModDiff1b/= 2.0;
processed.AvgModDiff2b /= 2.0;
Ntotaltest = loudness(processch2.Etest);
Ntotalref = loudness(processch2.Eref);
62