ГОСТ Р 53556.3—2012
norm
*=
(1
-
par[i]
*
par[i])’
a4;
}
гдвраг\)
вычисляется из
LPCsint_Qlpc_coefficients[],
и коэффициент масштабирования
о,
равен 0.8.
5.9.3.3.6 Сглаживатель
RMC
Сглаженное
RMCnorm_sm
обновляется, используя norm в каждом подфрейме следующим образом
norm sm -
0.875
norm_ sm
+0.125
norm [subnum]
0.875
norm_ sm
+0.125
norm_ sid
for TX_ flag =2 or3
for TX_flag +
0 ,
где
subnum
номер текущего подфрейма в диапазоне от 0 до
n_subframe-\
и
norm_sid
является
norm[n_subframe-
1] в последнем фрейме
SID.
В первом фрейме каждого неактивного периода
norm_sm
устанавливается в
norm.
Во время первых 40 мс неактивного периода
norm_sm
инициализируется
norm[subnum).
когда
TXJlag - 2
или 3 и
1
20k>g,0
normjsid-
20k>g,0
norm[n_subframe
-1 ] I >6
db
5.9.3.3.7 Генерация возбуждения
CNG
Сигнал возбуждения
CNGexcitation[)
подсчитывается из сигнала мультиимпульсного возбуждения и
случайного сигнала возбуждения следующим образом:
for (i = 0:i< sbfrm_size; i++)
{
excitationfi] = gf
*
fcb_cng[i]
+
gr
*
excg[i):
}
где fcb_cng[] и excg[] являются, соответственно, сигналом мультиимпульсного {
МР)
возбуждения
или возбуждения регулярным импульсом (
RP
) и случайным сигналом возбуждения, gf и gr являются их
соответствующими усилениями. Случайный сигнал возбуждения, позиции и знаки импульсов для возбуж
дения
MP/RP
последовательно производятся из случайной последовательности в каждом подфрейме.
Чтобы синхронизировать генератор случайных чисел
CNG
в кодере идекодере, случайный сигнал возбуж
дения ехсд[] для данного подфрейма должен быть вычислен до генерации возбуждения
MP/RPfcb_cng[]
для этого подфрейма.
5.9.3.3.7.1 Случайная последовательность
Случайная последовательность генерируется следующей функцией и используетсядля генерации
сигналов мультиимпульсного и случайного возбуждения.
shortRandom(’seed)
{
*seed
=
(short) ((int)(’seed *31821
+
13849));
return (’seed);
}
со значением начального числа 21845 и обычно используемогодля обоих возбуждений. Этот генера
тор имеет периодический цикл 16 бит. Начальное число инициализируется значением 21845 в начале каж
дого неактивного периода.
5.9.3.3.7.2 Генерация случайного возбуждения
Сигнал случайного возбуждения каждого подфрейма является Гауссовской случайной последова
тельностью. которая генерируется следующим образом:
for 0
=
0;
/ <
sbfrm_size: i++)
{
exegfi]
=
Gauss (seed):
*
}
где
float Gauss (short seed)
{
temp = 0;
for (i
=
0; i < 12; i++)
{
temp
+=
(float) Random (seed):
}
66