ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Вторник
2 июля
520245
fk0, легенда (04.06.2014 18:22 - 18:49, просмотров: 6877)
Хочется оцифровать сигнал с микрофона в АЦП МК проф. уровня. АЦП имеет 10 разрядов. Во-первых сигнал получаемый от микрофона требует регулировки усиления порядка 0-20dB, например. Во-вторых даже при том разрядности АЦП явно мало для восприятия на слух, чтоб не прослушивались характерные "8-битные" шумы квантования. В голову приходит, что используемый в телефонии μ-law вполне втискивается в 8 бит (и 12 бит линейных) при сохранении более чем приемлемого качества звучания. Почему бы не использовать логарифмический усилитель перед АЦП? Потом сигнал можно алгоритмически перевести уже в линейный вид. Ведь по сути это будет мало чем отличаться от кодирования в u-law. Более того, регулировка усиления каким-либо искусственным способом (PGA, VGA...) не нужна: ведь после логарифмирования сигнал от микрофона нужно уже не перемножать, а складывать с желаемым коэффициентом усиления. Ту же операцию можно проделать и после преобразования в АЦП -- при этом ничего ведь существенно не изменится, от того будет ли к числам получаемым из АЦП добавлена константа (зависящая впрочем от знака). Или вовсе домножить после преобразования обратно в линейную форму. Остаются проблемы: зависимость работы схемы логарифмического усилителя (собранного из доступных ширпотребных компонент, а не спец. микросхемы, в чём нет никакого смысла...) от температуры и ограниченный динамический диапазон. Последний может быть расширен использованием транзисторов вместо диодов. А что касается температуры, то параметры усилителя могут периодически оцениваться, например, по измерению двух разных напряжений (через две точки только одна кривая может пройти). Как это можно сделать. На приведённой схеме, например, R10 может быть ключём управляемым МК. И таким образом можно отключить напряжение питания микрофона и обеспечить на входе усилителя напряжение порядка 0V, нижний вывод R12 при этом тоже соединяется с GND. Или на нижний вывод R12 может подаваться относительно стабильное напряжение питания (подразумевается соединение с GPIO МК). И это будет второй точкой с неким ненулевым напряжением. Измерив напряжение на выходе усилителя в двух точках программа может рассчитать коэффициенты (a,b) в формуле y=a*log(x/b) и начать работу. А при изменении температуры делать повторные измерения... Может ли такое хоть теоретически работать, какие есть существенные проблемы?
image
[ZX]