111
фазовым частям преобразованного sw(i) соответственно.
- Вычислить предсказание r (w) и f (w).
Предсказанные амплитуда r_pred (w) и фаза f_pred (w) вычисляются по двум предыдущим блокам расчета порога r(w) и f (w): r_pred (w) = 2,0 * r (t-1)-r (t-2) f_pred (w) =2,0 * f (t-1)-f (t-2),
где t — текущий номер блока, t-1 соответствует данным предыдущего блока и t-2 соответствует данным блока перед предыдущим.
- Вычислить меру неопределенности c (w).
c(w) = (((r (w) * cos (f (w)) - r_pred (w) * cos (f_pred (w))) Л2 + (r (w) * sin(f(w)) - r_pred(w)
* sin(f_pred(w)) )Л2)Л0.5 ) / (r (w) + abs (r_pred (w)).
Эта формула используется для каждого из коротких блоков с коротким БПФ, для первых 6 строк длинных блоков мера неопределенности вычисляется по длинному БПФ, для оставшихся строк используется минимальное значение неопределенности для коротких блоков БПФ. Если необходимо уменьшить сложность вычислений, неопределенность для верхней части спектра может быть установлена равной 0,4.
- Вычислить энергию и неопределенность в разделах вычисления порога.
Энергия каждого раздела, e (b):
do for each partition b: e(b) = 0
do from lower index to upper index w of partition b e (b) = e (b) + r (w) Л2 end do end do
(e (b) используется в модуле M/S (см. Б.6.1): e (b) равно Xengy с 'X' = [R, L, M, S]) и взвешенная неопределенность, c (b):
do for each partition b: c(b) = 0 do from lower index to upper index w of partition b c(b) = c (b) + r(w^2 * c (w) end do end do
Разделы вычисления порога обеспечивают разрешение, примерно равное одной частотной линии БПФ или 1/3 критической полосы. На нижних частотах одна линия БПФ соответствует одному разделу вычисления. На верхних частотах несколько строк будут объединены в один раздел вычисления. Набор значений линий разделов для каждой из трех частот дискретизации задан в таблицах Б.1 — Б.24. Элементы этих таблиц будут использоваться в процессе вычисления порога маскирования. В каждой таблице есть следующие графы:
- Индекс раздела вычисления, b;
- Самая низкая частотная линия раздела, w_low (b);
- Самая высокая частотная линия раздела, w_high (b);
- Среднее значение частоты раздела, барк, bval (b);
- Абсолютный порог слышимости qsthr (b).
- Максимальное значение b, bmax, равное самому большому индексу, существующему для данной частоты дискретизации.
- Вычислить свертку энергии разделов и неопределенности с функцией маскирования.
for each partition b:
ecb(b) = 0
do for each partition bb:
ecb (b) = ecb (b) +e (bb) * sprdngf (bval (bb) , bval (b))
end do end do do for each partition b: ct (b) = 0
do for each partition bb:
ct(b) = ct(b) +c(bb)* sprdngf (bval (bb) , bval (b)) end do end do
Поскольку ct (b) взвешивается энергией сигнала, оно должно быть повторно нормализовано к cb (b) cb (b) = ct (b) / ecb (b)
Аналогично, из-за ненормализованной природы функции маскирования ecbb должно быть повторно нормализовано и нормализованная энергия en(b) равна: en (b) = ecb (b) / rnorm (b) коэффициент нормализации, rnorm (b): do for each partition b tmp (b) = 0 do for each partition bb
tmp (b) = tmp (b) + sprdngf (bval (bb) ,bval (b)) end do rnorm (b) = 1/ tmp (b) end do
- Преобразовать cb (b) в tb (b), индекс тональности. tb(b) = -0.299 - 0.43 loge (cb(b))
Каждый tb (b) ограничен диапазоном 0 <tb (b) <1.
- Вычислить необходимое SNR в каждом разделе.
NMT (b) = 6 дБ для всех b. NMT (b) соответствует шумовому маскеру (в дБ) для раздела. TMN (b) = 18 дБ для всех b. TMN (b) соответствует тональному маскеру (в дБ). Требуемое отношение сигнал-шум, SNR (b):
SNR (b) = tb (b) * TMN (b) + (1-tb (b)) * NMT (b).
- Вычислить отношение мощностей.
Отношение мощностей, bc (b):
bc (b) =10 Л (-SNR (b)/10)
- Вычислить фактический энергетический порог, nb (b).
nb (b) = en (b) * bc (b) nb (b) также используется в модуле M/S (см. пункт 12): nb (b) равен Xthr с 'X' = [R, L,
M., S].
- Контроль пре-эха и абсолютный порог слышимости
Чтобы избежать пре-эха, вычисляется контроль пре-эхом для коротких и длинных БПФ, абсолютный порог слышимости также учитывается здесь: