Цифровая обработка сигналов

Adaptive Filters: LMS, RLS

AirPods Pro подавляют до 28 дБ внешнего шума. Zoom убирает фоновый шум ноутбукового вентилятора. Google Meet вырезает эхо из переговорных комнат. Всё это - адаптивные фильтры: LMS и RLS, придуманные ещё в 1960-х, но работающие в каждом смартфоне и ноутбуке прямо сейчас.

  • **AirPods Pro, Sony WH-1000XM5** - реал-тайм LMS/FxLMS для активного шумоподавления на частотах до 1 кГц
  • **WebRTC AEC3** (Chrome, Firefox) - адаптивный эхоподавитель, используется в 3 млрд веб-браузеров
  • **5G beamforming** - RLS адаптирует веса антенной решётки для слежения за движущимся абонентом

LMS алгоритм: наименьших средних квадратов

Стационарный фильтр Баттерворта работает хорошо, когда характеристики сигнала известны заранее. Но что если шум меняется со временем - как фоновый шум в самолёте или эхо в переговорной комнате? **Адаптивный фильтр** меняет свои коэффициенты на ходу, подстраиваясь под текущие условия.

**LMS (Least Mean Squares)** - самый простой адаптивный алгоритм. Идея: есть желаемый сигнал `d[n]`, есть выход фильтра `y[n]`, ошибка `e[n] = d[n] - y[n]`. Коэффициенты фильтра корректируются в направлении, уменьшающем среднеквадратичную ошибку - это стохастический градиентный спуск.

**Выбор шага mu:** слишком большой mu -> нестабильность (расходимость). Слишком малый -> медленная адаптация. Условие стабильности: `0 < mu < 1 / (N * P_x)`, где N - число tap-ов, P_x - мощность входного сигнала. Нормализованный NLMS автоматически масштабирует mu и стабильнее.

В LMS алгоритме увеличение шага обучения mu приводит к:

RLS: рекурсивный метод наименьших квадратов

LMS медленно сходится, когда входной сигнал коррелирован или изменяется быстро. **RLS (Recursive Least Squares)** решает точную задачу МНК рекурсивно: минимизирует взвешенную сумму всех прошлых ошибок. Сходится за O(M) итераций (M - порядок фильтра) вместо O(1/mu) у LMS.

ХарактеристикаLMSRLS
Вычислительная сложностьO(M) на итерациюO(M²) на итерацию
Скорость сходимостиМедленная (зависит от mu)Быстрая (~M итераций)
Числовая стабильностьВысокаяМожет деградировать без трюков
Параметры настройкиmu (один)lam, delta (два)
ПрименениеРеал-тайм, ограниченные ресурсыБыстроизменяющиеся сигналы

**Forgetting factor lam:** при lam < 1 старые данные экспоненциально забываются. Эффективный объём памяти: ~1/(1-lam) отсчётов. lam=0.99 -> память ~100 отсчётов; lam=0.9 -> ~10 отсчётов. Малый lam - быстрая адаптация к нестационарному сигналу, но меньшая устойчивость.

Почему RLS сходится быстрее LMS при коррелированном входном сигнале?

Шумоподавление с адаптивным фильтром

Классика применения LMS/RLS - **активное шумоподавление** (ANC, Active Noise Cancellation). Наушники Sony, Bose, Apple AirPods Pro используют именно адаптивные фильтры. Принцип: микрофон фиксирует внешний шум, адаптивный фильтр строит его модель, динамик воспроизводит антифазный сигнал.

Практическая реализация сложнее из-за **акустического пути** (secondary path): сигнал от динамика до error-микрофона проходит через акустику наушника с задержкой и окраской. Это нужно компенсировать - иначе LMS адаптируется к неправильной модели. Алгоритм **Filtered-X LMS (FxLMS)** решает эту проблему, фильтруя reference-сигнал через оценку secondary path.

**Ширина полосы подавления:** ANC эффективен до ~1 кГц. На высоких частотах длина звуковой волны сравнима с размером головы - сложно создать точную антифазу. Поэтому на частотах >1 кГц наушники используют пассивную изоляцию (foam, padding).

В системе ANC error-микрофон расположен внутри наушника, близко к уху. Его сигнал используется для:

Акустическое эхоподавление

На видеозвонке собеседник слышит собственный голос с задержкой - это **акустическое эхо**: звук из динамика попадает в микрофон и передаётся обратно. Алгоритм **AEC (Acoustic Echo Cancellation)** - ещё одно применение адаптивного фильтра. Он строит модель акустического пути комнаты (AIR - Acoustic Impulse Response) и вычитает предсказанное эхо из сигнала микрофона.

Главная сложность AEC - **двусторонний разговор** (double-talk): оба участника говорят одновременно. Если алгоритм не распознает double-talk и продолжит адаптацию, он начнёт 'подавлять' голос ближнего конца. Детектор double-talk (DTD) приостанавливает обновление коэффициентов, пока обнаруживает одновременную речь с обеих сторон.

**WebRTC** (используется в Google Meet, Zoom, Discord) содержит production-реализацию AEC3 - трёхступенчатую систему: грубая синхронизация задержки, FDAF (Frequency Domain Adaptive Filter) для длинных комнат, нелинейная пост-обработка остаточного эхо. Исходный код открыт - хорошая точка входа для изучения реального AEC.

AEC просто вычитает сигнал динамика из микрофона с фиксированной задержкой

AEC адаптивно моделирует акустическую импульсную характеристику комнаты (AIR) - сложный фильтр, меняющийся при движении людей и мебели.

Фиксированная задержка работала бы только в идеальной безэховой камере. Реальная комната добавляет сотни миллисекунд реверберации с уникальной частотной характеристикой для каждого положения в пространстве.

Что такое 'double-talk' в контексте AEC и почему он проблематичен?

Адаптивные фильтры LMS и RLS

  • LMS: стохастический градиентный спуск, O(M), прост и стабилен; медленная сходимость при коррелированном входе
  • RLS: точный рекурсивный МНК, O(M²), быстрая сходимость; сложнее численно, два параметра (lam, delta)
  • ANC: адаптивный фильтр строит модель шума и создаёт антифазный сигнал; FxLMS компенсирует secondary path
  • AEC: моделирует AIR комнаты и вычитает предсказанное эхо; double-talk detctor останавливает адаптацию при двустороннем разговоре

Связанные темы

Адаптивные фильтры строятся на теории стационарных фильтров и оптимальной фильтрации:

  • FIR и IIR фильтры — LMS адаптирует коэффициенты FIR-фильтра - нужно понимать базовую структуру
  • Фильтр Баттерворта и Чебышева — Стационарные фильтры - точка отсчёта для понимания адаптивных
  • Audio DSP: эффекты и кодеки — Практическое применение DSP-алгоритмов в аудиоцепочке

Вопросы для размышления

  • Почему NLMS (нормализованный LMS) более устойчив, чем базовый LMS при изменяющейся мощности входного сигнала?
  • В каких сценариях forgetting factor lam < 0.99 может ухудшить качество AEC?
  • Как double-talk detector влияет на задержку AEC системы - есть ли trade-off?

Связанные уроки

  • la-34-la-in-dl
Adaptive Filters: LMS, RLS

0

1

Войти