ГОСТ Р 53556.7—2013
while (j> 0)
{
s + = h [ ] ‘ rx);
t* = h 0-1] * Гх);
x ++;
j - =4;
;
J H
while (j <32-1)
{
s + = h d l‘ Cx):
t + = h{j+1J* (*x):
x ♦+:
/♦ =4;
)
if (j <32)
s + = h [j]’ (*x);
return (float) (s+pos *(t-s)):
Используя функции GenLPFilter () и LPInterpolate 0. производится передискретизация, как описано
ниже. xf[m) устанавливается в 0.0 для т <startup и m> = 2’М.
GenLPFilter (Ыр. fc):
for (п = 0; п <2*N; п ++)
хп [п] = LPInterpolate (xf ♦ (int) n’resampleFactor)-7, hip. frac (nyesampleFactor)).
Если resamploFactor == 1,0, xf[m) просто копируется в хп [п] без передискретизации.
for (п = 0; п <2’N: п ++)
хп [п] = xf[n].
Для гладкого затухания-перекрытия сигнала шума на границе между двумя смежными фреймами
для этой операции перекрытия-добавления используется следующее окно.
for (п = 0; п <N; п ++) {
if (п <N’218)
noiseWin [п] = 0.
if (N-3/8 <=п&&п <N’5I8)
noisoWin (n) = грех (nu/2 * (л-М*3/8+-0.5) /(N*2i8));
if (N*518 <= n)
noiseWin [nj = 1.
noiseWm [2’N-1-п] = noiseWin [n]:
Теперь вычисляется функция огибающей noiseEnv [п]. Если noiseEnvFlag == 1, тогда функция
огибающей
noiseEnv [п] = noiseEnv (t) ct = (п+0.5) ф(ТЩ-0.5
получается из параметров огибающей noisoT_max. noisoR_atk и noiseR_decдля-TI2 <= f <3/2*7 (то
есть 0 <= п <2‘Л/):
если (-1/2 <=t/T&&t/T <noiseT_max)
noiseEnv (t) = max (0.1-(noiseT_max-t/T) *noisoR_atk):
если (noisoT_max <=t/T&&t/T <3/2)
noiseEnv (t) = max (0.1-(t/T-noiseT_max) *noiseR_dec).
Если noiseEnvFlag *= 0. то используется постоянная функция огибающей noiseEnv (t):
46