ГОСТ Р 53556.3—2012
где
раг
[]являются коэффициентами отражения и вычисляются из коэффициентов
LPint_ Qlpc_coefficients[].
qxnorm
— квантованная энергия подфрейма, декодируется из
rucjndx.
5.7.4.3.7 Генерация сигнала возбуждения
Сигнал возбуждения (
oxcitationff)
подсчитывается, суммируя
acb[], fcb1[]
и
fcb2[n]
масштабирован
ные
да, дп
и
gf
соответственно.
for (i
=
0:i
<
sbfrm_size; i++)
{
excitation[i] = ga’acb[i]
+
gn*fcb1p]
+
gf’fcb2[i]:
}
5.7.4.3.8 Обновление адаптивной книги шифров
Адаптивная книга шифров обновляется для процесса декодирования вследующем фрейме генери
рованным сигналом возбуждения
excitation
[ ] следующим образом:
for (i
=
О. i < 306-sbfrm_size; i++)
{
pacb[i] =pacb[sbfrm_size*i]:
}
for (i
=
0; i
<
sbfrm_sizo: i++)
{
pacb[306-sbfrm_size+i]=excitationfij:
}
5.8Фильтр синтеза
CELP LPC
5.8.1 Описание инструмента
Фильтр синтеза
CELPLPC
создает синтезируемый сигнал из коэффициентов
LPC
и сигнала возбуж
дения для каждого подфрейма.
5.8.2 Определения
Вход
cxcitation[J:
Этот массив содержит сигнал возбуждения для одного подфрейма
int_Qlpc_coefficients[]:
Этот массив размерности
lpc_order
содержит квантованные и интерполирован
ные коэффициенты
LPC.
Выход
synth_signal[]:
Сигнал возбуждения,
exitation []
подается через фильтр синтеза, используя коэффи
циенты
LPC
из
int_Qlpc_coefficients[].
Размерность этого массива равна
lpc_order.
Конфигурация
lpc_order.
Это поле содержит порядок используемого
LPC
sbfrm_size:
Это поле содержит число отсчетов в подфрейме
5.8.3 Процесс декодирования
Используя интерполированные коэффициенты
LPC
одного подфрейма, сигнал возбуждения подает
ся через следующий фильтр
Н*
1 -
ха*
■2
к - 1
где
А
(
2
)— фильтр инверсии
LPC
, использующий квантованные коэффициенты
LPC.
Коэффициент аЛ
является Л-ым коэффициентом
LPC (int_Qlpc_coefficients[k-1]).
Вывод фильтра инверсии является рекон
струированной речью. Прядок
LPC
устанавливается в 10 и 20 для частоты дискретизации 8 кГц и 16 кГц
соответственно.
Следующий алгоритм представляет собой реализацию вышеупомянутого фильтра:
for (п
=
0: п
<
sbfrm size:п++)
{
imp - excitation[n]:
for (к -0 ; к
<
lpc_order. к**)
{
tmp
=
tmp
♦
Fitter_states[k]
*
int_Qlpc_coefficionts[k]:
{
62