57
Направление дельта кодирования как данных огибающей, так и данных уровня шума устанавливается по оси времени. Данные огибающей вычисляются по выражению
J panOffset(bs_amp_res), если bs_coupling = 1 [0, в противном случае
Параметры bsampres и bs_coupling устанавливаются в значения предыдущего фрейма. Данные уровня шума вычисляются в соответствии с выражением
Далее уровни обратной фильтрации в bs_invf_mode устанавливаются в значения предыдушего фрейма, а все элементы bs_add_harmonic устанавливаются в ноль.
Если флаг ошибки фрейма не установлен, временная сетка и данные огибающей могут потребовать модификации, если предыдущий фрейм был испорчен. Если предыдущий фрейм был испорчен, временная сетка текущего фрейма модифицируется для плавного перехода между фреймами. Данные для первой огибающей изменяются согласно выражению
Emod (k’0) E(k’0) + a 'log2 ^ tE (1) - estimated _ start _ pos )’ 0 < k < ^(r(^’0)’ (28)
где: estimated_start_pos = t'E(L'E) — номер таймслота.
После того как данные дельта кодирования были декодированы, проводится проверка правдоподобности, чтобы убедиться в том, что декодированные данные находятся в разумных пределах. Требуемые пределы следующие: для данных огибающей логарифмические значения должны удовлетворять условиям
в противном случае данные будут считаться поврежденными.
Временная сетка также проверяется в соответствии со следующими правилами (если любое из сравнений оказывается верным, то фрейм считается поврежденным):
- Le < 1
- Le > 5
- Lq > 2
- tE (0) < 0
- tE(0) > tE(Le)
- tE (0) > 3
- tE (Le) < 16 (30)
- tE (Le) > 19
- tE(l) > tE (l +1), 0 < t < Le
- lA > LE
- Le = 1ANDLq > 1
- tQ(0) * tE(0)
tQ(LQ) * tE(LE)