A Regularized Block Diagonal RLS Algorithm for Acoustic Echo Cancellation
Статья возвращается к классическому адаптивному эхоподавлению и предлагает промежуточный вариант между быстрым, но дорогим RLS и дешёвыми алгоритмами с медленной сходимостью. Обратная ковариационная матрица заменяется набором независимых диагональных блоков, поэтому вычисления можно распараллелить, а сложность регулируется размером блока. Идея проста и инженерно понятна, хотя экспериментальная проверка заметно слабее теоретической части.
Метод. Фильтр порядка N делится на M участков длиной L, а межблочные корреляции отбрасываются. Каждый блок отдельно обновляет свою матрицу P размером L на L и вектор коэффициентов, но все блоки связаны общим нормирующим знаменателем, полученным из полного входного вектора. Диагональная нагрузка Тихонова задаёт начальное P(0)=δ-1I и подавляет стартовый выброс. В опытах используются N=512, L от 32 до 128, коэффициент забывания 0,9999 и δ=1.
Результаты. Теоретическая сложность снижается с O(N2) у RLS до O(NL): при L=64 это 64N вместо N2. На белом шуме стандартный RLS и RLS-DCD достигают рассогласования -30 дБ примерно за 0,6 с, RBD-RLS - примерно за 1 с, зато остаётся устойчивее быстрого FRLS. На коррелированном шуме увеличение L приближает кривую к RLS; после скачка импульсной характеристики на третьей секунде вариант L=128 восстанавливается почти так же быстро. На одном фрагменте ICASSP AEC Challenge RBD-RLS даёт близкую к RLS кривую ERLE, тогда как FRLS расходится около 0,5 с.
Ограничения. Четыре основных опыта используют искусственные сигналы длиной 4 с при 8 кГц, а реальная проверка фактически сведена к одному трёхсекундному отрезку без численной таблицы ERLE. Нет замера времени на процессоре, памяти и поведения при одновременной речи двух сторон или нелинейности громкоговорителя. Отбрасывание межблочных корреляций особенно рискованно для речи. Сама статья отмечает, что диагональная нагрузка гарантирует положительную определённость только в начале, а при длинной рекурсии матрица всё равно может уйти от неё.
Фишка из статьи. Размер блока здесь является прямой ручкой между скоростью и качеством, но публикация честно показывает цену аппроксимации: линейная по N запись в таблице не означает той же сходимости, что у полного RLS.
| Алгоритм | Асимптотика | Белый шум: около -30 дБ | Практическое замечание |
|---|---|---|---|
| RLS | O(N2) | около 0,6 с | быстро, но дорого |
| FRLS | O(N) | медленнее RBD-RLS | расходится на реальном фрагменте |
| RBD-RLS, L=64 | O(64N) | около 1,0 с | компромисс по цене корреляций |
| RBD-RLS, L=128 | O(128N) | ближе к RLS на коррелированном входе | лучше отслеживает смену эха |
Как это читать: выигрыш не бесплатный и зависит от структуры входа. Для белого шума малый блок почти не мешает, а для коррелированной речи приходится увеличивать L, то есть частично возвращать вычислительную стоимость.