Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Шум и свист при дискретизации
Форум разработчиков электроники ELECTRONIX.ru > Цифровая обработка сигналов - ЦОС (DSP) > Алгоритмы ЦОС (DSP)
sigmaN
Добрый день.
Вот наткнулся на грабли, господа. Прошу помощи.

Собственно расклад:
MCU LPC2148 усилитель MAX9766 к нему микрофон и динамик подцеплен от мобилы.

Задача: оцифровать сигнал на частоте 8000 и передать на PC через COM порт.

Метод 1: ADC в режим BURST, в SELбит регистра AD1CL пишу только один канал(у меня он на шестом) разрешаю прерывания и ловлю цифру. Идея была реализована, но при понижении частоты биты( CLKDIV регистра AD1CL ставились так, чтобы после деления 15Mhz вышло 8000 отсчётов сигнала/с) слышался свист и характерный, как-бы немного рваный шум(достаточно немалой амплитуды).
Также был эксперимент вывода прямо на динамик через DAC.

Пробывал увеличить частоту ADC до максимума(около 4MHz) и эффект исчез, звук был чистым(ну естественно небольшой шум усилителя - но ни свиста ни искажений!) Но это не то - прерывания происходят очень часто!

МЕТОД 2: Подумол что лучше завести для этого таймер который бы дёргался ровно 8000 раз в сек.
ADC без прерываний, без BURST, в обработчике прерывания таймера опрашивается вывод ADC и точно также идёт далее(на динамик и/или com port)

Результат тот-же!!!!!
Если нужно выложу wav. ЧТО ДЕЛАТЬ?
Пробывал поднимать порог при воспроизведении( if(gain>p){ DACOud(gain)}) но это не то всё!

Приблизительно я понимаю почему это происходит.
Не знаю как с этим бороться!

Помогите плиз. Погибаю совсем. help.gif
Схему девайса, код, wav с проблемой - выложу всё что необходимо.
DRUID3
1) фильтр перед АЦП какой?
2)странно использовать LPC2148 для передачи в комп через RS-232;
sigmaN
Цитата(DRUID3 @ Mar 9 2008, 20:45) *
1) фильтр перед АЦП какой?
2)странно использовать LPC2148 для передачи в комп через RS-232;

1. Фильтра просто нет никакого smile.gif
2. В общем-то на данном этапе это задача минимум. Это проект по шифрованию переговоров по мобильному, затеянный не мною.
Мне лишь дали уже собранный девайс. Схему и тех. задание.
Задача завести аппаратную часть, оцифровать голос, прогнать через вокодер(CELP/SPEEX) и показать криптографам что шифровать(алгоритм не разглашается).
На данном этапе я выбрал Speex, но естественно перед тем как что-либо ему скормить нужно всё-таки получить те самые отсчёты от AD.

С ЦОС в принципе мало знаком пока. Имею общие понятия. Практики до этого небыло.

Сама плата очень мала(32x20мм) и особо, я думаю, с фильтрами не разгуляешься.
Может быть это как-то можно сделать в цифре?
Интересно так-же, как это делается обычно(может быть переделаем схему/плату)

Прикрепляю кусок схемы: аналоговая часть.
Сергей Борщ
Цитата(sigmaN @ Mar 9 2008, 19:20) *
1. Фильтра просто нет никакого smile.gif
Вот и ответ. Ключевые слова для поиска в гугле - anti-aliasing filter, зоны Найквиста. Вот тут - очень подробное объяснение "на пальцах" от Аналоговых Девайсов. Вам надо или ставить очень крутой фильтр перед АЦП или фильтр попроще, оцифровывать на многократной частоте и делать прореживание (дециамцию). Все это описано в документе по ссылке.
DRUID3
Цитата(sigmaN @ Mar 9 2008, 19:20) *
1. Фильтра просто нет никакого smile.gif

biggrin.gif Да уж...почему-то я не сомневался. Вам дали очень полезную ссылку, ознакомьтесь с ней внимательно.
Цитата(sigmaN @ Mar 9 2008, 19:20) *
2. В общем-то на данном этапе это задача минимум. Это проект по шифрованию переговоров по мобильному, затеянный не мною.
Мне лишь дали уже собранный девайс. Схему и тех. задание.
Задача завести аппаратную часть, оцифровать голос, прогнать через вокодер(CELP/SPEEX) и показать криптографам что шифровать(алгоритм не разглашается).
На данном этапе я выбрал Speex, но естественно перед тем как что-либо ему скормить нужно всё-таки получить те самые отсчёты от AD.

С ЦОС в принципе мало знаком пока. Имею общие понятия. Практики до этого небыло.

Сама плата очень мала(32x20мм) и особо, я думаю, с фильтрами не разгуляешься.
Может быть это как-то можно сделать в цифре?
Интересно так-же, как это делается обычно(может быть переделаем схему/плату)

Прикрепляю кусок схемы: аналоговая часть.

Я имел ввиду, что зачем Вы взяли микроконтроллер с USB? Кстати, даже незнаю потянет ли он SPEEX, но если над ним внимательно посидеть и подумать, то может быть и так. Но вот непонятно Вы что решили для "криптомобилы"(я знаю как они делаются, можете не пояснять) взять АЦП внутри контроллера? 07.gif 10 бит!? вообще-то берут 16, потом ДД сжимается или логарифмической или иной компрессией. Кстати, такое сжатие можно сделать и в аналоге, но я не очень знаком со SPEEX чтобы такое советовать. Просто чтобы передать по GSM каналу сжатый кодеком поток звука+избыток для криптографии и это внутри 9600 bps сжимать надо не пАдеЦки, и если еще алгоритм будет использовать 10 бит из 16 возможных - то звучать будет очень похоже на говорящее ведро. Правда, если Вы действительно глубоко вникните в кодек, то может и выйдите из этой ситуации. Дальше MAX9766 это насколько я понимаю усилитель мощности, он шумный, противный smile.gif и предназначен для низкоомных нагрузок... О фильтре...прочитав внимательно приведенную выше коллегой ссылку, Вы поймете без него никак, он может быть даже довольно примитивен, причем достаточно будет грамотно спроектировать обратные связи в ОУ предусилителя (выбросив к чертям собачим усилок мощности, который авставлен абсолютно не по адресу). Но если, по каким-то Вашим соображениям этого сделать нельзя то воспользуйтесь линейкой фильтров на переключаемых конденсаторах MAX7400-MAX7407 от Maxim - они имеют очень высокие параметры при малых габаритах. Сделать такой фильтр принципиально цифровым принципиально НЕ возможно - это расплата за условности допускаемые нами пытаясь описать непрерывный, аналоговый мир мгновенными отсчетами для применения аппарата дискретной математики.
sigmaN
Господа, всем спасибо за ответы!
Почитал PDFчик - всё правильно, нужно фильтровать! Тут никуда без этого.

Цитата(DRUID3 @ Mar 10 2008, 09:14) *
Я имел ввиду, что зачем Вы взяли микроконтроллер с USB? Кстати, даже незнаю потянет ли он SPEEX, но если над ним внимательно посидеть и подумать, то может быть и так. Но вот непонятно Вы что решили для "криптомобилы"(я знаю как они делаются, можете не пояснять) взять АЦП внутри контроллера? 07.gif 10 бит!? вообще-то берут 16, потом ДД сжимается или логарифмической или иной компрессией. Кстати, такое сжатие можно сделать и в аналоге, но я не очень знаком со SPEEX чтобы такое советовать.

Выбирал не я. Говорят по габаритам подошел smile.gif
Ребята там не очень продвинутые это всё заварили.
Была-бы железная часть впорядке я бы им уже всё накодил, а тут на тебе!
Я тоже сразу задал этот вопрос про SPEEX(да и вообще), в ответ получил: "должен в принципе впритык" smile.gif чем был сразу немного удивлен.
Говорят взяли встроенный потому как опять-таки габариты. smile.gif
В общем нужно теперь мне над этим всем крепко думать. Неужели нет компактных и мощных МК - не верю! Буду искать.
Есть идея взять сигнал прямо с мобилы после фильтров и т.д. Нужно смотреть схему, как это всё реализовано там.
Мне интересно по поводу сжатия в аналоге? В чём суть? Это "аппаратный A-Law/mu-Law"??
т.е. если после этого скормить данные ещё и вокодеру - то мы получим больший эффект???
Щас на основной работе дел навалилось - практически не остаётся времени чтобы сесть и поискать нормально в гугле.

Цитата(DRUID3 @ Mar 10 2008, 09:14) *
Дальше MAX9766 это насколько я понимаю усилитель мощности, он шумный, противный smile.gif и предназначен для низкоомных нагрузок... О фильтре...прочитав внимательно приведенную выше коллегой ссылку, Вы поймете без него никак, он может быть даже довольно примитивен, причем достаточно будет грамотно спроектировать обратные связи в ОУ предусилителя (выбросив к чертям собачим усилок мощности, который авставлен абсолютно не по адресу).

Да. Полностью с вами согласен. И в плане MAXa и по поводу фильтра )
"он может быть даже довольно примитивен, причем достаточно будет грамотно спроектировать обратные связи в ОУ предусилителя" - я пока слабо представляю что поставить в качестве такового ) т.е. усилитель микрофона на ОУ? Почему бы и нет, кстати )

Да...ох и задачка. Но я люблю такие, после их решения получаешь самое ценное - ОПЫТ.
С вашей помощью, коллеги )



Господа, всем спасибо за ответы!
Почитал PDFчик - всё правильно, нужно фильтровать! Тут никуда без этого.

Цитата(DRUID3 @ Mar 10 2008, 09:14) *
Я имел ввиду, что зачем Вы взяли микроконтроллер с USB? Кстати, даже незнаю потянет ли он SPEEX, но если над ним внимательно посидеть и подумать, то может быть и так. Но вот непонятно Вы что решили для "криптомобилы"(я знаю как они делаются, можете не пояснять) взять АЦП внутри контроллера? 07.gif 10 бит!? вообще-то берут 16, потом ДД сжимается или логарифмической или иной компрессией. Кстати, такое сжатие можно сделать и в аналоге, но я не очень знаком со SPEEX чтобы такое советовать.

Выбирал не я. Говорят по габаритам подошел smile.gif
Ребята там не очень продвинутые это всё заварили.
Была-бы железная часть впорядке я бы им уже всё накодил, а тут на тебе!
Я тоже сразу задал этот вопрос про SPEEX(да и вообще), в ответ получил: "должен в принципе впритык" smile.gif чем был сразу немного удивлен.
Говорят взяли встроенный потому как опять-таки габариты. smile.gif
В общем нужно теперь мне над этим всем крепко думать. Неужели нет компактных и мощных МК - не верю! Буду искать.
Есть идея взять сигнал прямо с мобилы после фильтров и т.д. Нужно смотреть схему, как это всё реализовано там.
Мне интересно по поводу сжатия в аналоге? В чём суть? Это "аппаратный A-Law/mu-Law"??
т.е. если после этого скормить данные ещё и вокодеру - то мы получим больший эффект???
Щас на основной работе дел навалилось - практически не остаётся времени чтобы сесть и поискать нормально в гугле.

Цитата(DRUID3 @ Mar 10 2008, 09:14) *
Дальше MAX9766 это насколько я понимаю усилитель мощности, он шумный, противный smile.gif и предназначен для низкоомных нагрузок... О фильтре...прочитав внимательно приведенную выше коллегой ссылку, Вы поймете без него никак, он может быть даже довольно примитивен, причем достаточно будет грамотно спроектировать обратные связи в ОУ предусилителя (выбросив к чертям собачим усилок мощности, который авставлен абсолютно не по адресу).

Да. Полностью с вами согласен. И в плане MAXa и по поводу фильтра )
"он может быть даже довольно примитивен, причем достаточно будет грамотно спроектировать обратные связи в ОУ предусилителя" - я пока слабо представляю что поставить в качестве такового ) т.е. усилитель микрофона на ОУ? Почему бы и нет, кстати )

Да...ох и задачка. Но я люблю такие, после их решения получаешь самое ценное - ОПЫТ.
С вашей помощью, коллеги )
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.