ГОСТ Р 53556.3—2012
г/2+i];
}
где
ratio_predict = 0.5
sign = lpc_indices(7)
»
6;
tdx
=
lpc_indices[7] & 0x3f:
if (sign =- 0)
{
for (i
=
0: i < dim[1](0J: i*+)
{
lsp_current_upper[i] = lsp_predict(i]
+
pd_tbl[0][tdx][i];
}
}
else
{
for (i
=
0. i
<
dim[1][0];
/>+>
{
lsp_current_uppor[i] = lsp_predict[i] - pd_tbl[0][idx][i];
)
}
sign
=
lpc_indices[8)»
4.
idx =lpc_indices[8] & OxOf:
if (sign
==
0)
{
for (i = 0.i< dim[1)[1]; i++)
{
lsp_current_upper[dim(1][0]+iJ
=
Isp_predict(dim[1][0]+i]
♦
pd_tbt[ijpdxj(i];
}
}
else
{
for (i = 0. i
<
dim[1][1J;
/■*•+)
{
lsp_current_upper{dim[1)[0]*i] = Isp_predict(dim[1)[0]+i] -
pd_tbl[1][idx][i}:
}
}
Наконецдекодированные
LSPslsp_current_lower[]
и
lsp_current_uppor[j
объединяются и сохраняют
ся в массиве
lsp_currerit(’).
for (i
=
0; i <lpc_order/2: i++)
{
lsp_current(i]
=
lsp_current_lower[i]:}
for (i
=
0; i <lpc_order/2: i++)
{
lsp_current[lpc_order/2 +i] =lsp_current_upper[i]:
}
5.6.2.4
Стабилизация
LSPs
Декодированные
LSPslsp_curront()
стабилизируются, чтобы гарантировать стабильность фильтра
синтеза
LPC,
который получен из декодированных
LSPs.
Декодированные
LSPs
упорядочены в порядке
возрастания, имея расстояние между смежными коэффициентами, по крайней мере.
min_gap.
for (i - О:i < lpc_order; 1++)
{
if (lsp_current[i]
<
min_gap)
{
lsp_current[i] =min_gap:
}
40