ГОСТ Р 53556.4—2013
U A _ N P
lsp[i_ch][i] = Xдля, от
1
до N PR. /_с/>от 0 до N_CH-1
/-1
1
v</- )[/_c/i] .=у<л[/_сЛ],дляу от -Ш _Ы Р-1доО, /_с/
1
от
0
до N_CHA.
6
.10.3.5.5 Преобразование параметров LSP в спектр LPC
Огибающая амплитудного спектра LPC, соответствующая «-му коэффициенту МОСТ, lpenv[][iij. оп
ределяется следующим образом:
Ipenv (] [] представляет огибающую амплитуды, начиная с получения огибающей исходного спектра
LPC из квадратного корня энергетического спектра в кодере.
for (i_ch = 0: i_ch <N_CH; i_ch +*) {
for (ii = 1; ii <= N_FR-1: и ++) {
for (i -2 .P p_ch] = 1.0; i <= N_PR: / «• = 2)
P U ch] * = (cos (PI’ii/N_FR) - cos (Isp [{])) *2:
for~(i = 1. О li_ch] = 1.0: i <= N_PR / + = 2)
Q fi_ch] * = (cos (PI’H/N_FR) - cos (Isp (i])) л2:
Iponv [i_ch] pi] = 1 ! (П - cos (Prii/N_FR)) *Pp_ch) * (1 +cos (PI’ii/N_FR)) *0 p ch]);
}
}■
В случае длинных фреймов (W_FP == 1024. или 960), Ipenv [] pi] должен быть вычислен только в
точках частоты о.
Для остающихся частотных точек значения Ipenv pi] вычисляются линейной интерполяцией из уже
вычисленных значений в ближайших двух частотных точках. Если частотные точки больше чем N_FR-8,
Iponv [] pi)должен быть равен Ipenv [] [N_FR-8].
Если этот инструмент используется в качестве элемента масштабируемого кодера, спектр LPC сжи
мается в активную полосу частот:
for(i_ch = 0 :i_ch <N_CH; i_ch * * ){
n frju = UPPER_BOUNDARY Pyr]p_ch] - LOWER_BOUNDARY pyr]p_ch]:
for (ismp = 0; ismp <LOWER_BOUNDARY Pyr]P_ch]: ismp ++) {
Ipenvjmp p_ch] psmp] = 0;
}
upperbandj = (int) (AC_ TOP Pyr]p_ch] (fbjshift] * 16384J.
lowerbandj = (int) (AC_BTM [lyr] p_ch] [fb_shift] * 16384.);
ftmp =(16384*16384)/(upperbandj -loworbandj);
for (ismp = 0; ismp <nfrju: ismp +*) {
ftmp = (интервал) (ismp’ftmp)/16384:
Ipenvjmp p_ch) [ismp+LOWER_BOUNDARY pyr]p_ch]) = Ipenv p_ch] [ftmp];
}
for (ismp = UPPER_BOUNDARY pyr) p_ch]; ismp <N_FR: ismp ++) {
lpenv_tmp p_ch] psmp] =
0
;
;
for (ismp = 0: ismp <N_FR: ismp * * ) {
Ipenv p_ch] psmp) = Ipenvjmp p_ch) psmp):
}
}-
Значения UPPER_BOUNDARY, LOWER_BOUNDARY, AC_TOP и AC_BTMопределяются в 6.5.4А
6.10.3.5 Инверсная нормализация
Входные коэффициенты x_flaf/7применяются к инверсной нормализации согласно следующей про
цедуре и создаются выходные коэффициенты spec[][)[].
for (i_ch = 0; i_ch <N_CH; i_ch ++) {
for (isf = 0; isf <N_SF; isf *+) {
for (ismp = 0; ismp <N_FR; ismp ++) {
spec psf] [ismp] =
(x_flat[ismp ♦ (isf*i_ch’N_SF) *N_FR]
161