Перейти к содержанию
    

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

Чем отличается эхоподавление от эхокомпенсации в телефонии? Где лучше всего об этом почитать?

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чем отличается эхоподавление от эхокомпенсации в телефонии? Где лучше всего об этом почитать?

Спасибо.

 

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

 

Где почитать, точно пока не могу сказать :-) Пощите в инете найдете кучу информации...

 

P.S. Но сейчас похоже эти два понятия означают одно и тоже, то бишь эхокомпенсацию.... :)

Изменено пользователем sav6622

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

 

Где почитать, точно пока не могу сказать :-) Пощите в инете найдете кучу информации...

 

P.S. Но сейчас похоже эти два понятия означают одно и тоже, то бишь эхокомпенсацию...

Да, по-моему, это синонимы. Устройства с усилением, управляемым сигналом, называются эхозаградителями.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А где бы исходный код эхокомпенсатора посмотреть? Хорошо бы с соответствием рекомендации G.168.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А где бы исходный код эхокомпенсатора посмотреть? Хорошо бы с соответствием рекомендации G.168.

 

:) Cразу вас расстрою, скорее всего не найдете... Я пытаюсь периодически в течении 3-4 лет найти, причем копаю глубоко... :)

 

Если найдете, поделитесь пожалуйста ссылочкой :cheers:

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А где бы исходный код эхокомпенсатора посмотреть? Хорошо бы с соответствием рекомендации G.168.

 

:) Cразу вас расстрою, скорее всего не найдете... Я пытаюсь периодически в течении 3-4 лет найти, причем копаю глубоко... :)

 

Имелось ввиду что соответствующий рекомендациям g.168, просто эхокомпенсатор достаточно широко представлен.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А где бы исходный код эхокомпенсатора посмотреть? Хорошо бы с соответствием рекомендации G.168.

 

:) Cразу вас расстрою, скорее всего не найдете... Я пытаюсь периодически в течении 3-4 лет найти, причем копаю глубоко... :)

 

Имелось ввиду что соответствующий рекомендациям g.168, просто эхокомпенсатор достаточно широко представлен.

 

G165-168 стандарты телефонии. Эхо-подавитель соответственно голосовой. Голосовой эхоподавитель, кроме линейного эхокомпенсатора, должен содержать ещё нелинейные компоненты, как-то Double-Talk_Detector и т.п. В принципе, всё это хозяйство можно найти в специальной литературе. Прибабахи необходимы, но требуют обычно настройки экспериментальной

 

Чтобы заполнить пробел размещаю прямо здесь свою модель эхоподавителя с которой начиналась моя разработка эхоподавителя. Модель целочисленная на С, со всеми прибабахами, настраивалась в реальном времени (понятно что быстродействие не очень и нужно переписывать на ассемблер хотя-бы внутренний цикл). Обработка блочная, программа организована правильно, вложеными циклами (а не наоборот, когда напишут сначала адаптивный фильтр, а потом подвешивают на счётчики всё остальное). Линейный адаптивный фильтр -NLMS. Можно ли сделать с него G168? Можно. Только будет неэффективно, если по максимуму. G168 - стандарт расплывчатый. Требований по испытаниям много, но они для цифровой реализации - тривиальны. А по длине задержки эхо (эффективной длине адаптивного фильтра) там нет жёстких требований. Можно делать на 30 мс. Стандарт не требует, чтобы эхоподавитель был дальний.

В стандарте сказано, что он может быть дальним (60мс), но не обязан.

Если, конечно, заказчик говорит G168, подразумевает - дальний, тогда другое дело. Северо-американские корпорации практикуют обычно в своём оборудовании внутри-континентальный вариант - миллисекунд так на 40. Называется G168 тем не менее. Если реклама ссылается на оба стандарта G165/G168, то скорее всего там 30 мс или меньше.

Для дальних эхоподавителей или очень быстродействующих средних - нужны другие алгоритмы. В основе проектирования дальних эхоподавителей лежит тот факт, что импульсная характеристика отражения от гибрида обычно очень короткая - 2-4 мс. Неизвестно только где эти отражения от разных гибридов расположены. Алгоритмы включают эвристики, а потому содержат know-how

Раньше делали прорежённые алгоритмы (искать в google sparced echo canceller), последнее время появилась мода на Лагерровские решётки (работы Ali.H.Sayed & Ricardo Merched). Ищите статьи этих авторов, а также эту книгу

A. H. Sayed, Fundamentals of Adaptive Filtering, John Wiley & Sons, NY 2003

 

 

Пароль на архив: НеДляЛиберастов

Иванычу респект :)

Программа размещена "как есть" и комментариев я давать не буду.

У меня нет времени вспоминать почему и что и как

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в программке всё традиционно. Единственная нестандартная фича - это то, что эхоподавитель дифференциальный. Дифферинцирование входов fir-фильтром (с последующим интегрированием iir-фильтром выходов) отбеливает речь, а значит ускоряет сходимость. Но снижает динамический диапазон. В общем, это необязательно, можно исключить

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Знает ли кто-нибудь алгоритмы эхокомпенсации, требующие меньше выч. ресурсов чем NLMS при условии, что линия задержки 16 мс и больше не надо. Реализация осуществляется на TI 320c6412. Память не так критична, а вот производительности не хватает на всё что нужно

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Знает ли кто-нибудь алгоритмы эхокомпенсации, требующие меньше выч. ресурсов чем NLMS при условии, что линия задержки 16 мс и больше не надо. Реализация осуществляется на TI 320c6412. Память не так критична, а вот производительности не хватает на всё что нужно

 

 

Блочный NLMS. Всё то же самое, но обновление коэффициентов производится с чередованием, как бы интерливингом. А именно, на данном такте обновляются только коэффициенты номер которых по модулю М равен i=0,...., М-1. М равно 8 или 16. Страдает время сходимости, а так - работает.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

To fontp Видимо я не так понял... но ведь в таком случае пересчитываться будут только 1\8 либо 1\16 часть всех коэффициентов адаптивного фильтра, остальные же будут находиться в начальном(нулевом) состоянии. Где я ошибся? может быть я не правильно понимаю идеологию NLMS алгоритма? Если не трудно, поправьте.

 

for (k=0; k < LZ_len; k++)

W[k++] = Wr[k] -W_update_val * LZ[k];

 

вроде так рассчитывается классический NLMS (деление внутри W_update_val), вы предлагаете фактически:

 

for (k=0; k < LZ_len; k+= M)

W[k++] = Wr[k] -W_update_val * LZ[k];

 

где я не понял?

Изменено пользователем timonja

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

To fontp Видимо я не так понял... но ведь в таком случае пересчитываться будут только 1\8 либо 1\16 часть всех коэффициентов адаптивного фильтра, остальные же будут находиться в начальном(нулевом) состоянии. Где я ошибся? может быть я не правильно понимаю идеологию NLMS алгоритма?

 

 

Не, ну нужно двигать им фазу на каждом такте, устроив чередование

 

for (k=j; k < LZ_len; k+= M) {

W[k] = Wr[k] -W_update_val * LZ[k]; // c автоинкрементом или чепуха или двусмысленность

}

 

j = (j+1) % M

 

Фильтр будет адаптироваться в нужном направлении, хоть и замедленно. Вообще-то там (в Block LMS) ещё обычно и усредняют ошибку W_update_val * LZ[k] по нескольким тактам, что улучшает сходимость. Ищите Block LMS в гугле, когда-то было множество публикаций

 

На TI точно было в частности вот это

http://focus.ti.com/general/docs/techdocsa...actName=slau107

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Чем отличается эхоподавление от эхокомпенсации в телефонии? Где лучше всего об этом почитать?

Спасибо.

 

Мне кажется, что обсуждение пошло не в ту сторону.

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

Эхокомпенсация - это одна из операций ЦОС, когда во время приема тишины с дальней стороны строится цифровой КИХ-фильтр, компенсирующий ближнее эхо. Способов компенсации много, самые простые - LMS и линейное схождение. Результат легко просчитывается и моделируется в том же Матлабе. Если интересно - пишите, расскажу как :)

А в упомянутой рекомендации не описывается, КАК происходит эхоподавление, там описано только ЧТО при этом нужно получить :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообще-то это в основном путаница в переводной терминологии.

 

Echocanceler - это всегда ЦОС. Он подавитель посредством компенсации.

А мостовые или оптронные схемы начального аналогового подавления эхо (на переходе от 2-проводной линии к 4-проводной) называют гибридами. Хотя когда-то, лет 50 назад, когда ещё ЦОС не было их наверно называли эхоподавителями.

Существуют ещё нелинейные схемы типа компандеров, их ещё называют эхозаградителями (упоминается в самом стандарте)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для подавления эха использую метод Frequency-Domain Adaptive Filter. По экспериментам - сходится быстрее NLMS.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...