ГОСТ Р 53556.3—2012
Преобразование
LSP
в
LPC
описано ниже. Входные
LSPs
должны быть нормализованы вдиапазоне
от нуля до
п.
tmp_lpc[0] =1,0:
for (i = 1;i< lpc_order * 1:1+*) tmp_lpc[i] = 0.0:
for (i = 0:i< (lpc_order+1)’2: i++) wfi) = 0.0:
for (j = 0;j < lpc_order
+
1.j*+)
{
xin1 = tmp_lpc(jj;
xin2 = UnpJpcfj
/;
for (i = 0: i < (lpc_order » 1): i+4)
{
n1 =i*4.
n2 =nU1;
пЗ =п2+1;
п4 = пЗ+1:
xoutl =-2.
*
cos(lsp_coQfficients[i’2+0))
*
w[n1]
+
w[n2]
+xin1;
xout2 = -2.
‘
cos(lsp_coGffiaents[i‘2+1J)
*
w[n3] + w(n4]
+
xin2:
w[n2] = w[n1]:
w[n1] =xin1;
w[r>4] = w[n3]:
w[n3] =xin2:
xin1 =xoutl;
xin2 =xout2:
}
xoutl = xin1
♦
w[n4+1]:
xout2 =xin2- w[n4*2];
tmpjpcfjj =0.5* (xoutl
+
xout2):
w[n4+1]=xin1;
w[n4+2] =xin2:
}
for (i = 0:f< lpc_order: i++)
{
lpc_coefficients[i] = tmpJpc(i*1J;
}
5.6.1.3.5 Сохранение коэффициентов
После вычисления коэффициентов
LPC,
текущие
LSPs
должны быть сохранены в памяти, таккак они
используются для интерполяции в следующем фрейме.
for (I = 0:
/ <
lpc_order: i+*)
{
Isp_previous(i] =!sp_current[ij:
}
Сохраненные Isp_pre\/ious[]
LSPsдолжны быть инициализированы какописано ниже, когда инициа
лизируется весьдекодер.
for (i =0;l< lpc_order: i++)
{
Isp_previous(i] =(i+1)/(lpc_order+1):
}
5.6.2 Инструмент декодирования широкополосного
LSP-VQ
5.6.2.1 Описание инструмента
Процессдекодирования широкополосного
LSP
основан на процесседекодирования узкополосного
LSP.
Процесс декодирования широкополосного
LSP
состоит из двух блоков декодирования
LSP.
соеди
ненных параллельно. Каждый из блоков декодирования идентичен процессу декодирования узкополосно го
LSP
и декодирует нижнюю и верхнюю части
LSPs
соответственно. Декодированные
LSPs
объединяются и
выводятся как один набор параметров.
35