Все линии / в текущем фрейме
айi =0.. totalNumLine-1
синтезируются следующим образом для 0 <= t <Т:
ГО С Т Р 53 556.7— 2013
if (envFlag &&! (r_decEnh <5 && (t_maxEnh <0,5 || r_atkEnh <5))) {
if(0<= t&&t <7/16*7}
fade in (t) = 0;
if (7/16*Г <=<9/16*7)
fade_tn (t) =0.5 - 0,5*cos ((d’t/T-712) фр1):
if (9/16*T <= t&&t<T)
fade_in (t) = 1;
}
else
fadojn (t) = 0.5-0.5’cos (t/T*pi):
a(t) = fadejn (t) *amplEnh [i]:
if (envFlag [i] == 1)
aft) * = onv (t-T/2):
phi (t) = 2‘pi’freqEnh [i] ’ ft-T) *phaseEnh [ij:
x(t) + = (t) ‘sin (phi (t)).
Линии к в предыдущем фрейме
all к=0.. previousTotalNumLine^
синтезируются следующим образом для 0 <= t <Т:
if (previousEnvFlag &&! (proviousR_atkEnh <5 &&
(previousT_maxEnh> 0.5 || previousR_decEnh <5))) (
if (0 <= t&&t <7/16*7}
fade_out (t) = 1;
if (7/16*7 <= t&&t <9/16*7)
fade_out (t) = 0.5 + 0.5*cos ((S‘t/T-7/2) ‘pi):
if (9/16*T <= t&&t<T)
fade_out ft) = 0;
}
else
fade_out ft) =0,5+0,5*cos (t/T’pi):
a(t) = fade_out ft) *previousAmplEnh [kj:
if (previousEnvFlag (k) == 1)
aft) * = previousEnv ft+772);
phi ft) = 2’pi’previousFreqEnh [k] *t+previousPhaseEnh [ij:
x ft) + = ft) ‘s/л (phi ft)).
Если мгновенная частота линии выше или равная половине частоты дискретизации, то есть
d phi ft)/d?> =pi’N/T.
она не синтезируется, чтобы избежать искажения из-за наложения спектров.
Параметры, необходимые в следующем фрейме, сохраняются в межфреймовой памяти:
previousEnvFlag = envFlag;
previousT_maxEnh = t_maxEnh:
previousR_atkEnh =r_atkEnh;
previousR_decEnh = r_decEnh:
previousTotalNumUne = totalNumLine:
для (i=0: i <totalNumLine; i ♦+) {
previousFreqEnh [ij- freqEnh [i]:
previousAmplEnh [i]= amplEnh [i];
previousPhasoEnh [i]= phasoEnh [
>
43