реклама на сайте
подробности

 
 
5 страниц V  « < 2 3 4 5 >  
Reply to this topicStart new topic
> Эхоподавление(если можно так сказать), Нужен реальный совет под реальную задачу.
fontp
сообщение Aug 23 2009, 13:43
Сообщение #46


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



Цитата(ryhor @ Aug 23 2009, 17:34) *
ало внимание - у нас голос smile.gif


А G.168 - что? Стандарт для голосовых линейных шумоподавителей. Естественно требования стандарта не могут относиться к голосу. Ало
Всякий голос нестандартен. Естественно, стандарт содержит набор воспроизводимых тестов. Без всякого голоса

Остальной ваш шум, нет смысла обсуждать

Цитата(ryhor @ Aug 23 2009, 17:34) *
Что значит я уверен или не уверен? я тут не причем - это все природа. Хочет меняет хочет не меняет smile.gif. Т.е. как бы дело не в уверенности или не уверенности, а в том что практика говорит (в прямом смысле в этом случае smile.gif ). Т.е. еще раз параметры эхоканала - меняются (считайте что это дано).


Бла-бла-бла
Всё меняется в этом мире. Проблема в балансе - как быстро меняется по отношению к адаптации.
Go to the top of the page
 
+Quote Post
ryhor
сообщение Aug 23 2009, 14:01
Сообщение #47


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 3-04-06
Пользователь №: 15 742



Цитата(fontp @ Aug 23 2009, 16:43) *
А G.168 - что? Стандарт для голосовых линейных шумоподавителей. Естественно требования стандарта не могут относиться к голосу. Ало
Голос нестандартен. Естественно, стандарт содержит набор воспроизводимых тестов

Остальной ваш шум, нет смысла обсуждать

Бла-бла-бла
Всё меняется в этом мире. Проблема в балансе - как быстро меняется по отношению к адаптации.



я близок к тому что бы засчитать ваш слив хе хе хе smile.gif
но как бы аннонсированная цель - помочь автору топика
посему я повторю свой рецепт:
Цитата
я немного повторюся - для акустического канала вам надо
1. найти ИХ - в частности ее длину - отсюда станет ясна длина вашего адаптивного КИХ фильтра.
2. поглядеть АЧХ - насколько оно линейное - т.е вы в него синус - а оно вам в ответ насколько не синус? но тут если уж совсем каких то косяков железячных нет - все должно быть более менее - посему это больше как упражнение на разминку.
3. читаем про LMS и NLMS адаптивные фильтры.
4. Делаем реализацию фильтра с КИХ (3-4 строчки?) и реализацию "адаптатора" этого КИХ фильтра алгоритмом NLMS - столько же строчек по существу вопроса.
5. смотрим на результат - радуемся или плачем - в зависимости от успеха
6. думаем про "детектор двойного разговора"
7. конец
... через какое то время
8. если хочется бооольшего подавления - начинаем читать про RLS алгоритмы адаптации


могли бы вы привести кратко возражения по существу (или привести ваш план график работ)? При этом думать не обо мне, а о задаче и ее решении т.е. сделать это так что бы это было полезно автору топика?
Go to the top of the page
 
+Quote Post
fontp
сообщение Aug 23 2009, 14:05
Сообщение #48


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



Цитата(ryhor @ Aug 23 2009, 18:01) *
я близок к тому что бы засчитать ваш слив хе хе хе smile.gif
но как бы аннонсированная цель - помочь автору топика
посему я повторю свой рецепт:


могли бы вы привести кратко возражения по существу (или привести ваш план график работ)? При этом думать не обо мне, а о задаче и ее решении т.е. сделать это так что бы это было полезно автору топика?


Я вроде бы и не возражал против плана biggrin.gif Заметил только, что в 3 строчки не получится
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Aug 23 2009, 23:03
Сообщение #49


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Завтра, не смотря на праздник, постараюсь поработать и до вечера выложить ИХ и АЧХ дабы уже более-менее прикинуть что к чему...

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

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

P.S. на fontp не наезжайте, по моим наблюдениям(возможно субъективным) он даёт дельные советы в 99 случаях из 100 smile.gif


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Aug 27 2009, 00:42
Сообщение #50


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



В общем-то, по-моему всё очень неплохо складывается....
Слишком сильно не задирая чувствительность микрофона вполне можно пользоваться системой как есть(без эходава).
Основной задачей была отдача комплекта на испытания и она выполнена. Время на доработку теперь побольше.

Замерял импульсную. Возмущения от импульса видны на отрезке 5ms - далее "подстилающий" шум кулеров smile.gif
АЧХ не мерял. Уровень импульса приличный!

Прилагаю три пикчера(слева на право):
1. без подачи импульса(отладочная плата) - 250ms
2. без подачи импульса(всё смонтировано в телефон) - 250ms
2. подан импульс(всё смонтировано в телефон) - тут видна 71ms область, где наблюдаем импульс

Мне не удалось добиться более-менее чистого графика без подачи импульса. Как-то странно он улавливает шум компа...
Всё 10раз проверил - ошибок никаких не нашел. Думается мне, что может вовсе и не шум это, а наводки от цифровой части....
Замер делал так-же на отладочной плате - там микрофон просто висит в воздухе и никакого корпуса нет. Выдаёт примерно такую-же рваную картину, но только на порядок(а то и на два) меньшей амплитуды.... На слух ничего этого не слышно. Делал loopback, посылая отсчёты ADC сразу в DAC.

Видно, что импульс совпал во времени с всплеском шума/помехи(характерный резкий скачек вверх и окончание с провалом)...
Я постарался выделить область, где мы имеем поданный импульс и реакцию на него.
Получается 5-6ms. Ну и в любом случае не более 11(это если вообще всё выделить).
Но амплитуда, конечно, внушительная получается smile.gif

Думается мне, что проблема будет успешна решена достаточно коротким фильтром с LMS адаптацией.

Всё-таки пока не до конца понятно как будет работать фильтр, скажем, вот в такой обстановке как у меня.
Шум + пробившийся от динамика сигнал(в данном случае импульс). А шум может быть постоянным и достаточно сильным(к примеру в автомобиле)...

Сам механизм работы непонятен.
Т.е. за желаемый результат мы принимаем тишину(в случае отсутствия дабл тока) и начинаем адаптировать фильтр. Т.е. по идее, если шум меняется медленнее, чем адаптируется фильтр - то всё хорошо будет(заодно и шум тоже сведем на нет). Но тут у меня другой вопрос: а что если шум "длиннее" фильтра? Будет выкусывать из него куски и шум превратится в ....
Чуток подскажите тут, чтоб у меня уже мозайка сложилась, так сказать.

Сложно ли реализовать нормальный дабл ток детектор? Читал, что в OSLEC у них там были кое-какие проблемы с этим делом....
Эскизы прикрепленных изображений
Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение
 


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
Ковылин_Констант...
сообщение Aug 27 2009, 01:46
Сообщение #51


Участник
*

Группа: Свой
Сообщений: 41
Регистрация: 4-05-08
Из: Новосибирск
Пользователь №: 37 258



На правом рисунке сколько по времени ширина выделенной зоны - 5мс ?

По характеру характеристики видно, что до уровня -30дб будет лежать в пределах 9мс -> следовательно желателен алгоритм на 16 мс . (а ниже уровня -30дб включается нелинейный процесс с ограничением амплитуды - clip и додавливает эхо)

Шум автомобиля громкий для эхоподавителя это гуд, он всё эхо и без эхоподавителя задавит )

OSLEC не давит шумы автомобиля . Это из области реализаций AEC.

OSLEC для вашей ситуации более чем достаточно, причём нужно стремиться к уменьшению алгоритма от 16мс до 9мс, найдя оптимум при этом. При меньшем количестве TAP резко улучшается скорость сходимости и качество поиска коэффициентов фильтра.

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

Механизм работы OSLEC простой - адаптация теневой модели ведётся всегда!, а вот копирование коэффициентов фильтра в рабочую модель происходит только при благоприятных условиях: нет двойного разговора, новые коэффициенты лучше рабочих и тп ...

Думаю даже, что все мои обьяснения лишние - самое правильное см. первоисточник OSLEC - echo.c
Go to the top of the page
 
+Quote Post
fontp
сообщение Aug 27 2009, 11:42
Сообщение #52


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



Эхо хоть и короткое, но и неслабое.
ОSLEC или любая другой готовый линейный эхоподавитель подойдёт.
NLMS c dоuble-talk детектором и прочими стандартными наворотами вполне достаточно.
(Но из SPEEX mdf.c был бы ещё круче)
Наверное, лучше всё таки взять готовый. 3 строками не обойдётся. Скорее сотней.

16 мс - это 128 отсчётов, двигайтесь по направлению к 8*9=72 как сказано выше. Не забывайте, что условия стабильности позволяют при этом пропорционально увеличивать шаг адаптации для более быстрой сходимости. Условия стабильности есть везде, можете взять хоть здесь (кратко и на русском)

http://multicore.ru/fileadmin/user_upload/...ectric-echo.pdf
В программе хорошо бы иметь вычисление ERLE для объективного контроля качества.
Go to the top of the page
 
+Quote Post
ryhor
сообщение Aug 27 2009, 12:00
Сообщение #53


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 3-04-06
Пользователь №: 15 742



Вот - половина (большая) дела сделана.
Теперь вы знаете длительность ИХ и соотвественно все понятно по длине фильтра.

Но картинки ваши настораживают вот по таким пунктам

- что это за ассиметричный сигнал в 8000 (*2^-15) амплитуды? к нему два вопроса: 1. самый главный - почему он ассиметричный если это внешний звук или шум 2. он слишком большой
- ИХ имеет слишком большую амплитуду - т.е. все сказанное из динамика с амп 1 попадает в микрофон и после оцифровки получается размахом во всю шкалу. Это очень интересно - и очень плохо smile.gif

что надо поделать
- посмотрите не стоит ли у вас АРУ где то в канале в том или ином виде - с АРУ надо осторожно, если вообще надо в вашем случае
- порегулировать коэфф усиленя микрофона - он слишком чувствительный у вас прямо сейчас
- разобраться откуда ассимитрия "шумового/внешнего" сигнала

При таком уровне соотношения амплитуд (2^-15*) 8000..6000/32000 = 0.25 вы больше ~-12-15дБ подавления не получите.

Еще интересно - ИХ более менее симметричная в +и-, а вот это "нечто" сугубо в одну сторону - там явно где то косяк.


UPD - вот первая картинка не плохо выглядит в качестве как бы "тишины", а выбросы положительные это что от не то.

Сообщение отредактировал ryhor - Aug 27 2009, 12:14
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Aug 27 2009, 16:52
Сообщение #54


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Ой ой ой! Нагнал я вчера по ночи smile.gif
Пропустил я в аудиоредакторе диалог с выбором Intel PCM(LSB,MSB) и Motorola PCM(MSB,LSB) и тупо даванул Ok вчера.
Так вот выдавал я в порт я LSB,MSB а файл открывался как MSB,LSB. От того и такая амплитуда импульса вышла.
Waveform промасштабирован в недетское кол-во раз чтобы хоть что-то было видно(справа есть шкала - по ней можно сориентироваться по сравнению с предыдущими скриншотами).
И взял другую трубку - там на фоне вообще почти полная тишина получается.

На самом деле выглядит это так:
Эскизы прикрепленных изображений
Прикрепленное изображение
 


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
ryhor
сообщение Aug 27 2009, 19:28
Сообщение #55


Участник
*

Группа: Участник
Сообщений: 38
Регистрация: 3-04-06
Пользователь №: 15 742



Цитата(sigmaN @ Aug 27 2009, 20:52) *
Ой ой ой! Нагнал я вчера по ночи smile.gif
Пропустил я в аудиоредакторе диалог с выбором Intel PCM(LSB,MSB) и Motorola PCM(MSB,LSB) и тупо даванул Ok вчера.
Так вот выдавал я в порт я LSB,MSB а файл открывался как MSB,LSB. От того и такая амплитуда импульса вышла.
Waveform промасштабирован в недетское кол-во раз чтобы хоть что-то было видно(справа есть шкала - по ней можно сориентироваться по сравнению с предыдущими скриншотами).
И взял другую трубку - там на фоне вообще почти полная тишина получается.

На самом деле выглядит это так:



ну теперь если с выходом и входом не напутано - т.е.
- "пикали" на макс громкости
- захватывали на той чувствительности что будет работать микрофон
то можно сказать что акустического эха у вас нет smile.gif

И как следствие можно вообще ничего не делать в этом направлении.

Проверьте все еще раз на всякий случай. Один из вариантов - проговариваете в динамик речь и пишете что слышит микрофон. Если вы ИХ правильно намеряли записанная речь должна быть в теже дБ что на картинке меньше.
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Aug 28 2009, 23:34
Сообщение #56


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Влепил я туда OSLEC.
Попариться пришлось не очень много.
Стандартный Сишный код по быстродействию реалтайма мне не обеспечил, поэтому пришлось закатать рукава и поработать над асмовой оптимизацией фильтра. На этом пути меня ждало много интересного. Раньше оптимайзил плывучие функции Speex, поэтому о переполнениях, Sign extension и прочем даже не задумывался. Я тут вот, пришлось узнать об этом по подробнее smile.gif

Только что произвел тестовый звонок. Длина фильтра = 80 отсчётов.
Небольшие отдельные кусочки эха иногда прослушиваются, но достаточно тихо и совсем ненавязчиво.
Дабл ток проверю завтра ибо собеседника мне не найти - все спят уже smile.gif

Разберусь до конца с оптимизацией, посмотрю, поиграюсь с длиной фильтра... думаю всё будет замечательно!

ВСЕМ СПАСИБО ЗА ПОМОЩЬ! a14.gif


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
shf_05
сообщение Aug 29 2009, 08:45
Сообщение #57


Профессионал
*****

Группа: Свой
Сообщений: 1 143
Регистрация: 22-04-08
Из: г. Екатеринбург
Пользователь №: 36 992



посмотрите сюда
http://focus-webapps.ti.com/general/docs/s...opic=1653260327
там и про акустическое и электрическое эхо есть теория ипрактика.
Go to the top of the page
 
+Quote Post
fontp
сообщение Aug 29 2009, 09:40
Сообщение #58


Эксперт
*****

Группа: Свой
Сообщений: 1 467
Регистрация: 25-06-04
Пользователь №: 183



Цитата(shf_05 @ Aug 29 2009, 12:45) *
посмотрите сюда
http://focus-webapps.ti.com/general/docs/s...opic=1653260327
там и про акустическое и электрическое эхо есть теория ипрактика.


Там есть несколько классических Application Notes, а в основном жлобские 3-d party реализации, за много килобаксов, соизмеримого качества или даже хуже. Фирменные коммерческие реализации вовсе не лучше Open-source по части алгоритмов. Главная особенность гнушных open-source реализаций - это межплатформенная мобильность. Поэтому гнушные алгоритмы реализуются на С, а вся оптимизация там крайне сомнительна. Лишь бы дырки заткнуть. Open-source реализации таким образом нацелены в будущее (производительность будет расти вместе с производительностью процессоров без всяких программистских затрат), а коммерческие реализации нацелены на текущие сиюминутные прибыли - примерно раза в три производительней, но умрут вместе с конкретным процессором или платформой :-)

В open-source нам доступны реализации всех основных алгоритмов -
mdf - в SPEEX
nlms - в OSLEC
fast RLS - в LEC/AEC

Цитата(sigmaN @ Aug 29 2009, 03:34) *
Только что произвел тестовый звонок. Длина фильтра = 80 отсчётов.
Небольшие отдельные кусочки эха иногда прослушиваются, но достаточно тихо и совсем ненавязчиво.
Дабл ток проверю завтра ибо собеседника мне не найти - все спят уже smile.gif

Разберусь до конца с оптимизацией, посмотрю, поиграюсь с длиной фильтра... думаю всё будет замечательно!


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

Поиграйтесь с длиной фильтра в частности и параметрами алгоритма вообще. Всё будет кокаколой ))
Go to the top of the page
 
+Quote Post
sigmaN
сообщение Aug 30 2009, 22:11
Сообщение #59


I WANT TO BELIEVE
******

Группа: Свой
Сообщений: 2 617
Регистрация: 9-03-08
Пользователь №: 35 751



Всё кокаколой! Спасибо! Там в ослике надо было ещё заюзать такие штуки как ECHO_CAN_USE_TX_HPF и ECHO_CAN_USE_RX_HPF.
Реально выручили меня именно эти фичи, которые я изначально не включил и таки вместо похрюкиваних <-40 дб получал вполне приличные отрывки эха, когда громкость динамика/чувствительность микрофона ставил побольше.
Сейчас используются все фичи эходава, включая нелинейный ограничитель ECHO_CAN_USE_NLP.
Хоть бы что-то хрюкнуло! Тишина теперь вообще! smile.gif)))))))))))


--------------------
The truth is out there...
Go to the top of the page
 
+Quote Post
Harbour
сообщение Aug 31 2009, 12:30
Сообщение #60


Местами Гуру
*****

Группа: Validating
Сообщений: 1 103
Регистрация: 5-12-04
Пользователь №: 1 323



Цитата
Open-source реализации таким образом нацелены в будущее (производительность будет расти вместе с производительностью процессоров без всяких программистских затрат), а коммерческие реализации нацелены на текущие сиюминутные прибыли - примерно раза в три производительней, но умрут вместе с конкретным процессором или платформой :-)


Конечно OSLEC это супер, когда он вышел все просто обалдели. Просто есть ряд задач, типа подавление в потоках E1 - где софтом много не выжать, зато for. ex вариант от зарлинк ZL38070 на 256 каналов, в принципе ничего, да стоит вроде недорого - 200EU
Go to the top of the page
 
+Quote Post

5 страниц V  « < 2 3 4 5 >
Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 16th June 2025 - 10:08
Рейтинг@Mail.ru


Страница сгенерированна за 0.01531 секунд с 7
ELECTRONIX ©2004-2016