Цитата(CADiLO @ May 23 2012, 22:35)

Вот кусок даташита на чипсет касаемый аудиоканала и часть схемы модуля (обычной 900ки, но второй канал сделан похоже).
Это отвечает на вопрос, как сделана аналоговая часть. Но не на вопрос, как устроено внутри. Я представляю примерно такую структуру:
(см. рисунок)
Почему плохо работает эхоподавление. Эхоподавление в SIM900 устроено примерно так, как указывается здесь (http://www.ti.com/lit/an/spra322/spra322.pdf) на рис. 2 со стр. 11. Т.е. сигнал уходящий в динамик задержанный на разные длительности вычитается с разными весовыми коэффициентами из сигнала приходящего с микрофона. И отдельно есть алгоритм настраивающий коэффициенты. Такой алгоритм плохо работает, если аудиосигнал, на пути от ЦАП до АЦП (от динамика до микрофона) получает нелинейные искажения (в частности ограничение сигнала из-за переусиления).
Теперь смотрим на схему обработки аудиосигнала внутри SIM900. Особенностью громкой связи является удалённость динамика от человека, удалённость микрофона от человека и близкое расположение микрофона и динамика. Можно сказать, наверняка, что для микрофона уровень сигнала, поступающего из динамика, практически наверняка будет выше, чем уровень сигнала поступающий от человека. Потому, что даже при одинаковой громкости, динамик ближе к микрофону, чем человек.
Начнём с динамика. "От бедности" динамик низкого качества и сам вносит искажения, усилитель тоже не Hi-Fi. Слышно же плохо и громкость устанавливается на 100%. Я выше писал, что при установке AT+CLVL=100;+AUDG=2,1,12000 ещё нелинейных искажений нет, но при +AUDG=2,1,13000 они уже явно видны на осциллографе. Это максимальная громкость и громче делать не стоит. Усилитель и динамик тоже не должны искажать сигнал, для начала просто можно сделать по-тише. Но практически есть нужда сделать по-громче (плохо слышно!) Но любая попытка внести в аудиосигнал искажения (ограничение сигнала при переусилении) -- нарушение работы эхоподадвления. Если искажения происходят после попадания сигнала в алгоритм эхоподавления. На схеме выше +CLVL и +AUDG нельзя увеличивать, если возникают искажения. А G1 можно было бы. Если бы он в SIM900 был. И даже если при усилении в G1 сигнал искажался, то это не мешало бы эхоподавлению (потому, что на вход алгоритма эхоподавления уже попадал бы точно такой же искажённый сигнал, как и на микрофонный вход).
С микрофоном такая же ситуация. SIM900 устроен так, что при амплитуде сигнала на микрофонном входе близкой к 100% мы получаем уже на удалённом телефоне близкую к 100% амплитуду. Практически же амплитуда речи человека ниже (см. выше), чем звука из динамика (человек дальше и говорит скорей тише). В удалённом телефоне получается тихо (не слышно!) и усиление микрофона увеличивается пока не станет хорошо слышно. А поскольку эхо сигнал (из динамика) громче речи человека, тут возникает ограничение на входе АЦП (т.н. "нелинейные искажения") и алгоритм эхоподавления работать нормально уже не может. Нужно уменьшить усиление микрофона, но тогда не будет ничего толком слышно. Если бы в SIM900 был усилитель G2, то это решило бы проблему, даже если сигнал при этом искажался (потому, что в алгоритм эхоподавления он попадал бы ещё в неискажённой форме).
Вопросы:
1) Правильно ли я понимаю механизм обработки звука внутри SIM900 (см. рисунок) ?
Если неправильно, то прошу исправить, что я понимаю не так.
2) есть ли возможность регулировки усиления G1 и G2 (см. рисунок) ?