Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

(по цифровому вещанию) Dvorkovich_V_Cifrovye_videoinformacionnye_sistemy

.pdf
Скачиваний:
258
Добавлен:
15.03.2016
Размер:
23.26 Mб
Скачать

Глава 18. Подавление акустического эха в системах телеконференцсвязи

Рис. 18.3. Принципиальная схема подавителя акустического эха

Относительно понятий «эхокомпенсация» и «эхоподавление»

Существуют два основных подхода для подавления акустического эха. В иностранных источниках эти подходы имеют устоявшиеся названия: Acoustic Echo Cancellation (AEC) и Acoustic Echo Suppression (AES). В русскоязычной литературе разделять эти подходы не принято, устоявшихся и общепринятых названий для этих подходов не существует. Более того, довольно часто оба подхода называют термином «акустическое эхоподавление», что является некорректным дословным переводом термина «Acoustic Echo Suppression». Общую задачу борьбы с акустическим эхом, независимо от подхода, назовем в соответствии с заглавием: «Подавление акустического эха», термин «Acoustic Echo Cancellation» переведем как эхокомпенсация, а «Acoustic Echo Suppression» — как эхоподавление. Эти названия, на взгляд авторов, довольно точно отражают суть указанных подходов, за исключением упоминания акустической природы эха.

Эхокомпенсация

Эхокомпенсация является традиционным подходом для решения проблемы акустического эха. Эхокомпенсатор подавляет эхо путем вычитания смоделированного эха (удаленного сигнала, пропущенного сквозь фильтр, моделирующий эхопуть) из микрофонного сигнала.

Эхопуть иммитируется линейным фильтром длиной L, h = {h1, . . . , hL}T . Тогда микрофонный сигнал записывается в виде:

z(n) = hT · x(n) + v(n) + s(n),

(18.1)

где x(n) = {x(n − L + 1), . . . , x(n)}T

— сигнал от дальней стороны, v(n) — шум

на ближней стороне, s(n) — полезный сигнал на ближней стороне.

 

˜

˜

˜

T

используется для аппроксимации

Моделирующий фильтр h

= {h1

, . . . hL}

 

истинного эхопути h. Определив его, можно оценить эхосигнал:

 

 

 

˜T

 

 

(18.2)

 

y˜(n) = h x(n).

Для поиска ˜ используются адаптивные алгоритмы. h

18.2. Алгоритмы подавления акустического эха

Эхосигнал может быть успешно исключен, если моделирующий фильтр близок к реальному. В практических приложениях, как правило, моделирующий фильтр, и реальный эхопуть довольно значительно различаются по многим причинам, например связанным с нелинейностью характеристики динамика, быстрыми изменениями акустической среды или рассинхронизацией устройств захвата и воспроизведения звука. Все это приводит к неполному подавлению эха и появлению так называемого остаточного эха.

Эхоподавление

Помимо эхокомпенсации существует другой подход к борьбе с акустическим эхом: эхоподавление. В телефонии эхоподавление реализовывалось как полудуплексный эхозаградитель, пропускающий сигнал по каналу связи только в одну сторону, основываясь на сравнении энергий ближнего и удаленного сигналов. Таким образом, один из абонентов в любой момент времени может либо говорить, либо слушать своего собеседника. Это чрезвычайно простой, но неэффективный метод. Современные требования к качеству звука в телеконференциях и комфорту общения требуют полнодуплексных схем, т. е. позволяющих одновременный встречный разговор. Эхоподавление, реализованное в спектральном домене, аналогично традиционным алгоритмам одноканального шумоподавления, например, спектральному вычитанию, делает возможной реализацию полнодуплексной связи.

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

Шумоподавление на базе спектрального вычитания

Для подавления аддитивного широкополосного шума в одном канале разработано множество методов. Одним из них является спектральное вычитание, принцип работы которого заключается в следующем.

Строится статистическая модель шума (амплитудный спектр и вариации). Статистика собирается в каждой частотной полосе в моменты отсутствия полезного сигнала. Далее амплитудный спектр шума вычитается из амплитудного спектра входного сигнала с некоторым масштабированием уровня шума. Блоксхема алгоритма представлена на рис. 18.4.

Зашумленный сигнал x(n) состоит из полезного сигнала s(n) и аддитивного стационарного широкополосного шума v(n):

x(n) = s(n) + v(n)

(18.3)

После перехода в спектральный домен имеем:

 

X(f ) = S(f ) + V (f ).

(18.4)

Для амплитуд спектральных составляющих можно записать приблизительное соотношение:

|X(f )| ≈ |S(f )| + |V (f )|.

(18.5)

Тогда амплитуда полезного речевого сигнала может быть представлена как разница амплитуды входного сигнала и амплитуды модели шума:

˜

(18.6)

|S(f )| ≈ |X(f )| − |V (f )|.

Глава 18. Подавление акустического эха в системах телеконференцсвязи

Рис. 18.4. Блок-схема шумоподавления на базе спектрального вычитания

Фазовую информацию восстановить невозможно, поэтому фаза очищенного сигнала полагается равной фазе входного сигнала.

Комбинируя фазовую и амлитудную информации, мы получаем выходной сигнал:

·

|X(f )|

 

 

1

·

 

S(f ) = X(f )

max (0, |X(f )|

α

α

 

= G(f ) X(f ),

(18.7)

β · |V (f )| )

 

 

 

 

 

 

α

 

 

где α и β — параметры алгоритма, G(f ) — коэффициент аттенюации амплитуды спектральной составляющей.

Вычисления S(f) производятся для последовательных перекрывающихся фреймов, которые после перехода во временной домен складываются с перекрытием, что минимизирует краевые эффекты от использования окна конечной длины.

Спектральное вычитание имеет серьезный недостаток: поскольку шум носит случайный характер, он содержит узкополосные всплески амплитуды. Соотношение энергии всплесков и среднего уровня шума невелико, поэтому в общем сигнале они неразличимы. После вычитания среднего значения шума уровень шума в целом резко понижается и соотношение энергий оставшихся всплесков и сред-

18.2. Алгоритмы подавления акустического эха

него уровня шума резко вырастает, несмотря на то что соотношение сигнал–шум увеличилось.

Всплески воспринимаются как короткие периодические призвуки, т. н. музыкальный шум, и довольно неприятны на слух.

Есть множество способов борьбы с музыкальным шумом, основанных как на сглаживании по времени и частоте G(f ), так и на постфильтрации коротких узкополосных помех.

Эхоподавление на базе спектрального вычитания

В отличие от эхокомпенсации эхоподавление модифицирует спектральную амплитуду сигнала, оставляя неизменной (искаженной) фазу.

По аналогии с одноканальным шумоподавлением можно записать формулу

для аттенюации спектральной амплитуды:

 

 

 

 

 

 

 

 

 

max 0, |Z(f )|α − β ·

Y˜ (f ) α

 

 

 

 

G(f ) =

α

,

(18.8)

 

 

1

 

Z(f )

 

 

 

 

 

 

 

|

|

 

 

 

 

 

 

где — спектр микрофонного сигнала, ˜ — спектр оценки эха.

Z(f ) Y (f )

Для получения ˜ необходимо использовать адаптивный фильтр.

Y (f )

Сложение с перекрытием

Для корректной работы в частотном домене используется так называемый алгоритм сложения с перекрытием (Overlap-Add). Рассмотрим его более подробно, поскольку этот алгоритм также можно успешно использовать не только для эхоподавления, но и для эхокомпенсации в частотной области.

Если взять конечной длины БПФ от косинусоидального сигнала одной частоты A · cos(ωt), то формируется ряд ненулевых спектральных составляющих с частотами, в том числе отличными от ω. Это происходит благодаря краевым эффектам, поскольку используется простейшее прямоугольное окно анализа. Использование такого окна обеспечивает максимальное разрешение по частоте, но это свойство полностью нивелируется слабым подавлением боковых лепестков. Чаще всего для подавления боковых лепестков в качестве окна анализа используется простейшее окно Ханна:

w(n) = 0,5 − 0,5 · cos{2 · π · n/N )}, где n = [0, . . . , N − 1].

Оно также обладает полезным свойством: сложение окон Ханна с шагом N/2 дает в сумме единицу.

Таким образом, метод сложения с перекрытием можно представить следующим образом:

используются фреймы исходного сигнала z(n) = {z(n) . . . z(n + N − 1)}T длиной N с шагом N/2;

каждый фрейм помножается на окно w с коэффициентами w(n), и вычисляется БПФ:

Z(f ) = F F T {z(n) · w};

– производятся операции над амплитудным спектром Z(f );

Глава 18. Подавление акустического эха в системах телеконференцсвязи

вычисляются ОБПФ;

затем полученный сигнал складывается с предыдущими фреймами также с шагом N/2.

Сравнение эхокомпенсации и эхоподавления

Метод эхоподавления имеет как свои плюсы, так и минусы. Минус очевиден: эхоподавление не способно восстановить фазу полезного сигнала. При соотношениях сигнал–шум менее нуля дБ фазовые искажения становятся настолько большими, что эхоподавление вносит существенные искажения в речь. Эхокомпенсация, являясь линейной операцией, в принципе не способна внести нелинейные искажения.

Достоинства эхоподавления в более широкой области применения, большей устойчивости и более высокой степени подавления эха. В случае когда возникает рассинхронизация ввода–вывода, например из-за наличия в программной части захвата-воспроизведения звука ресемплеров, подстраивающих выходную частоту в зависимости от наполненности буфера, эхокомпенсация оказывается неэффективной. Резкое снижение уровня громкости на аппаратном уровне (например, регулятором на динамике) может вызвать некорректную работу эхокомпенсатора: некоторое время он будет генерировать так называемое паразитное эхо, поскольку оценочная импульсная характеристика адаптивного фильтра не соответствует реальному эхопути и вычитание будет производиться с избытком. В аналогичной ситуации эхоподавление реагирует излишним подавлением полезного сигнала, и ни при каких условиях не сможет сгенерировать паразитное эхо. Вообще, эхокомпенсация очень чувствительна к взаимным сдвигам сигналов x и z относительно друг друга, эхоподавление же успешно справляется с такими сдвигами, пока они значительно меньше длины фрейма.

Также в случае, когда моделирующий фильтр по соображениям экономии вычислительных ресурсов оказывается короче реальной длины эхопути, эхоподавление имеет существенное преимущество перед эхокомпенсацией. Естественно, оба метода можно комбинировать.

Адаптивный фильтр — важнейший компонент алгоритма подавления эха. Его задача — вычислить линейную аппроксимацию эхопути, наиболее близкую к реальному, причем все вычисления должны быть адаптивными, чтобы учитывать изменяющуюся во времени акустическую обстановку, например перемещения людей по комнате.

Далее удаленный сигнал пропускается сквозь коэффициенты вычисленного фильтра и вычитается из микрофонного сигнала (для эхокомпенсации), либо используется для вычисления спектральной аттенюации (для эхоподавления).

Важнейшей характеристикой адаптивного фильтра является скорость сходимости, которая определяет, насколько быстро фильтр сходится к лучшей аппроксимации эхопути. В алгоритмах эхокомпенсации обычно используются КИХ-фильтры.

Для эхоподавления применяется множество различных алгоритмов адаптивной фильтрации. Наиболее распространенным до сих пор является нормализо-

18.3. Принципы линейной адаптивной фильтрации

ванный алгоритм NLMS (Normalized Least Mean Square), требующий относительно небольших вычислительных ресурсов и имеющий приемлемую в большинстве случаев скорость сходимости. Существует множество разновидностей этого алгоритма, реализованных на базе быстрого преобразования Фурье: FDNLMS, PFDNLMS и др. Есть еще более простой, но медленно сходящийся LMS, ресурсоемкий RLS, алгоритмы, основанные на аффинных проекциях, и т. д.

Винеровская фильтрация

Фильтр Винера является оптимальным в смысле среднеквадратической ошибки. Он минимизирует функцию затрат, параметром которой является вектор w весовых коэффициентов адаптивного фильтра:

J(w) = E{e2},

(18.9)

где E{e2} — средняя энергия сигнала ошибки e(n).

 

Оптимальные коэффициенты wopt минимизируют функцию затрат:

 

J(wopt) = min(E{e2}).

(18.10)

Сигнал ошибки определяется как разница между желаемым сигналом и выходом адаптивного фильтра:

e(n) = z(n) − y(n) = z(n) − wT · x(n),

(18.11)

где x(n) = {x(n−L+1) . . . x(n)}T — вектор входного сигнала фильтра, L — длина фильтра.

Введем обозначения:

R = E{xT x} — автокорреляционная матрица;

 

p = E{xd} — вектор кросскорреляции.

 

Тогда функцию затрат можно переписать в виде:

 

J(wopt) = σd2 − 2 · p · wT + R · wT · w.

(18.12)

Минимум квадратичной функции может быть определен по нулевому градиенту J(wopt):

w{J(w)} = −2 · p + 2 · R · w = 2 · (R · w − p) = 0,

(18.13)

что приводит к уравнению Винера–Хопфа:

 

wopt = pR−1,

(18.14)

которое дает коэффициенты винеровского фильтра, оптимальные в смысле минимизации среднеквадратической ошибки.

Коэффициенты фильтра Винера зависят от статистики R и p, которую можно собирать для отслеживания изменений wopt.

Инверсия матрицы R является вычислительно трудноосуществимой задачей, поэтому были предложены несколько способов упрощенного вычисления, которые и привели к алгоритмам (N)LMS и RLS.

Алгоритм LMS

Алгоритм LMS использует метод наискорейшего спуска. Вместо прямого вычисления точки wopt гораздо проще следовать градиенту функции ошибки (вернее,

Глава 18. Подавление акустического эха в системах телеконференцсвязи

впротивоположном направлении), что в конечном счете итеративно приведет к оптимуму, поскольку J(w) — положительно определенная квадратичная функция.

На каждом шаге вектор весов обновляется:

w(k + 1) = w(k) − c · w{J(w)},

(18.15)

w{J(w)} = −2 · x(k) · d(k) + 2 · x(k) · xT (k) · w =

= −2 · x(k) · [d(k) − xT (k) · w] = −2 · x(k) · e(k).

Это приводит к алгоритму LMS:

w(k + 1) = w(k) + μ · x(k) · e(k),

(18.16)

где μ = 2c — параметр, контролирующий скорость сходимости фильтра.

Алгоритм NLMS

NLMS появился как дальнейшее развитие алгоритма LMS. В LMS трудно подобрать оптимальное значение параметра μ. Поскольку энергия входного сигнала изменяется во времени, то и шаг между двумя итерациями коэффициентов фильтра, т. е. скорость сходимости, будет меняться. Скорость сходимости LMS будет мала на слабых сигналах и может быть слишком большой, т. е. проскакивать искомый минимум, — на больших. Идея алгоритма в нормализации скорости сходимости и подстройке шага к энергии входного сигнала:

μ =

,

(18.17)

x2(k)

где α — новый параметр, ответственный за скорость сходимости, но теперь устойчивость алгоритма гарантируется для 0 < α < 1. NLMS сходится значительно быстрее LMS при несколько большем количестве вычислений.

Детектор двойного разговора — важный модуль в системе акустического эхоподавления, необходимый для работы в полнодуплексном режиме. В моменты наличия двойного разговора сигнал, снимаемый с микрофона, содержит не только эхо, но и ближний сигнал. Это приводит к расхождению коэффициентов адаптивного фильтра. Поэтому в моменты возникновения двойного разговора необходимо замораживать адаптацию коэффициентов фильтра. Управление адаптацией и есть задача детектора двойного разговора.

Общая схема детектирования двойного разговора

Детектирование двойного разговора основывается на статистике, формируемой из доступных для наблюдения сигналов: сигнал, отправляемый на динамики (дальний сигнал), сигнал, захваченный с микрофона, и выходной сигнал. По этой статистике тем или иным способом вычисляется некая метрика ξ, которая сравнивается с фиксированным порогом T hr. По результату сравнения выносится решение о наличии двойного разговора и необходимости заморозки процесса адаптации.

18.4. Детектор двойного разговора

Существует достаточно много разновидностей детекторов двойного разговора, основанных на различных алгоритмах вычисления метрики ξ. Наиболее простым является алгоритм Гейгеля. Также популярны алгоритмы, основанные на нормализованной кросскорреляции и на динамике коэффициентов адаптивного фильтра (Variance Impulse Response).

Алгоритм Гейгеля

Это наиболее простой алгоритм, который чаще всего используется для детектирования двойного разговора в случае электрического эха. Он основан на сравнении энергий дальнего и ближнего сигналов. Поскольку импульсный отклик помещения обычно ослабляет дальний сигнал, то в случае если амплитуда микрофонного сигнала, деленная на максимальную амплитуду дальнего сигнала, превышает определенный порог, выносится решение о наличии двойного разговора. Метрика ξ вычисляется следующим образом:

|z(t)|

ξ = max (|x(t)| , |x(t − 1)| , . . . , |x(t − L + 1)|) . (18.18)

Если ξ превышает некий фиксированный порог, то детектируется наличие двойного разговора.

Выбор порога T hr представляет определенную сложность, поскольку он существенно влияет на точность детектора.

Алгоритм Гейгеля требует очень малых вычислительных ресурсов, но в силу своей низкой точности практически не используется в системах подавления акустического эха.

Детектирование двойного разговора по нормализованной кросскорреляции

Более точным методом является алгоритм, основанный на нормализованной кросскорреляции. Микрофонный сигнал представим в виде суммы эхосигнала и ближней речи (наличие шума в данном случае игнорируется):

z(t) = y(t) + s(t). (18.19)

Предположим, что импульсный отклик помещения — h, тогда эхосигнал представим в виде:

y(t) = hT · x(t).

(18.20)

Энергия микрофонного сигнала может быть записана как:

 

σz2(t) = hT · Rxx · h + σs2(t),

(18.21)

где Rxx = E{xT ·x}. Кросскорреляция микрофонного и дальнего сигналов может быть записана как:

rxy = E{xy} = Rxx · h

(18.22)

и, следовательно,

 

h = rxy · Rxx−1

(18.23)

При этом энергия микрофонного сигнала может быть переписана как:

 

σz2(t) = rxyT · Rxx−1 · rxy + σs2(t).

(18.24)

Глава 18. Подавление акустического эха в системах телеконференцсвязи

При отсутствии ближней речи, т. е. когда s(t) = 0, z(t) = y(t),

σz2(t) = rxzT · Rxx−1 · rxz , где rxz = E{xz}.

(18.25)

Метрика детектирования двойного разговора определяется как:

 

2

σz2(t)

3

1

 

 

rxzT Rxx−1rxz

 

2

(18.26)

ξ =

 

 

.

Числитель в этом соотношении является не чем иным, как энергией микрофонного сигнала в отсутствие ближней речи, в то время как знаменатель — реальная энергия микрофонного сигнала. При отсутствии ближней речи ξ 1, иначе ξ < 1.

Решающее правило, таким образом, формулируется следующим образом:

ξ< Thr — двойной разговор присутствует,

ξThr — двойной разговор отсутствует.

Пороговое значение Thr выбирается между нулем и единицей.

В представленном выше виде алгоритм вычислительно практически нереализуем, поскольку требует не только вычисления rxz и Rxx, но и инвертирования ковариационной матрицы дальнего сигнала Rxx. Практическая реализация требует дополнительных упрощений. Импульсный отклик помещения h приблизительно (в случае сошедшегося фильтра) можно аппроксимировать коэффициентами этого фильтра w. Тогда:

ξ =

-

 

 

= -

 

 

=

-

 

 

.

(18.27)

 

σz2(t)

 

σz2(t)

 

σz2(t)

 

 

 

rxzT w

wT RxxT w

 

 

 

σy2˜(t)

 

В числителе — энергия оцененного эхосигнала, в знаменателе — реальная энергия микрофонного сигнала. В таком виде алгоритм реализуем без заметных вычислительных затрат. Очевидной проблемой этого алгоритма является зависимость от стартовой оценки коэффициентов адаптивного фильтра w.

Детектирование двойного разговора по динамике коэффициентов

Алгоритм известен под аббревиатурой VIRE DTD (Variance Impulse Response). Он использует максимальное значение коэффициентов адаптивного фильтра. Основная идея алгоритма состоит в следующем: при отсутствии ближней речи коэффициенты фильтра должны сходиться к оптимальной точке, причем со временем шаг сходимости будет уменьшаться. При наличии двойного разговора коэффициенты фильтра будут испытывать значительные флуктуации.

Итак, максимальное значение коэффициентов фильтра определяется:

 

γ = max{w1, . . . , wL}.

(18.28)

Проводится усреднение по времени с параметром λ:

 

γ (n) = λ · γ · (n − 1) + (1 − λ)·γ

(18.29)

и вычисляется метрика детектирования двойного разговора:

 

ξ(n) = λ · ξ(n − 1) + (1 − λ) · [γ − γ ]2.

(18.30)

Решающее правило так же формулируется с помощью фиксированного порога:

18.5. Подавление акустического эха на базе фильтра Калмана

ξT hr — двойной разговор присутствует,

ξ< T hr — двойной разговор отсутствует.

Данный детектор двойного разговора, также как и предыдущий, работает для всего фрейма, т. е. вычисляется в конце каждого фрейма.

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

Ранее было указано, что разделение полезного сигнала s(n) и шумового сигнала v(n) не является задачей эхоподавления и это разделение невозможно без информации о статистических свойствах s(n) и v(n). В реальной телеконференции можно столкнуться с ситуацией, когда на ближнем конце шум будет присутствовать постоянно, например шум от вентилятора блока питания персонального компьютера. То есть система эхоподавления будет вынуждена всегда работать в режиме двойного разговора.

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

Рассмотрим классическую задачу оценки состояния с помощью фильтра Кал-

мана. Уравнение процесса выглядит следующим образом:

 

xk = Fk · xk−1 + Bk · uk + wk,

(18.31)

где xk — вектор искомого (неизвестного) состояния системы; Fk — известная матрица эволюции процесса/системы, xk−1 — вектор состояния системы в момент (k −1); Bk — известная матрица управления, uk — также известный вектор управляющих воздействий, wk — нормальный случайный процесс с нулевым математическим ожиданием и ковариационной матрицей Qk.

Уравнение, описывающее наблюдение (оценку), выглядит следующим образом:

zk = Hk · xk + vk,

(18.32)

где zk — оцениваемый (наблюдаемый) вектор; Hk – матрица наблюдений (известная); vk — шум наблюдения, нормальный случайный процесс с нулевым математическим ожиданием и ковариационной матрицей Rk.

Задача оценки состояния состоит в нахождении оценки xk по наблюдаемой zk и при известных Fk, Bk, Hk.

Применительно к задаче подавления акустического эха мы можем перейти в спектральный домен и рассматривать каждую частотную полосу независимо. Пе-