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

Шум и свист при дискретизации

Добрый день.

Вот наткнулся на грабли, господа. Прошу помощи.

 

Собственно расклад:

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:

Схему девайса, код, wav с проблемой - выложу всё что необходимо.

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


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

1) фильтр перед АЦП какой?

2)странно использовать LPC2148 для передачи в комп через RS-232;

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


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

1) фильтр перед АЦП какой?

2)странно использовать LPC2148 для передачи в комп через RS-232;

1. Фильтра просто нет никакого :)

2. В общем-то на данном этапе это задача минимум. Это проект по шифрованию переговоров по мобильному, затеянный не мною.

Мне лишь дали уже собранный девайс. Схему и тех. задание.

Задача завести аппаратную часть, оцифровать голос, прогнать через вокодер(CELP/SPEEX) и показать криптографам что шифровать(алгоритм не разглашается).

На данном этапе я выбрал Speex, но естественно перед тем как что-либо ему скормить нужно всё-таки получить те самые отсчёты от AD.

 

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

 

Сама плата очень мала(32x20мм) и особо, я думаю, с фильтрами не разгуляешься.

Может быть это как-то можно сделать в цифре?

Интересно так-же, как это делается обычно(может быть переделаем схему/плату)

 

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

post-35751-1205083242_thumb.jpg

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


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

1. Фильтра просто нет никакого :)
Вот и ответ. Ключевые слова для поиска в гугле - anti-aliasing filter, зоны Найквиста. Вот тут - очень подробное объяснение "на пальцах" от Аналоговых Девайсов. Вам надо или ставить очень крутой фильтр перед АЦП или фильтр попроще, оцифровывать на многократной частоте и делать прореживание (дециамцию). Все это описано в документе по ссылке.

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


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

1. Фильтра просто нет никакого :)

:biggrin: Да уж...почему-то я не сомневался. Вам дали очень полезную ссылку, ознакомьтесь с ней внимательно.

2. В общем-то на данном этапе это задача минимум. Это проект по шифрованию переговоров по мобильному, затеянный не мною.

Мне лишь дали уже собранный девайс. Схему и тех. задание.

Задача завести аппаратную часть, оцифровать голос, прогнать через вокодер(CELP/SPEEX) и показать криптографам что шифровать(алгоритм не разглашается).

На данном этапе я выбрал Speex, но естественно перед тем как что-либо ему скормить нужно всё-таки получить те самые отсчёты от AD.

 

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

 

Сама плата очень мала(32x20мм) и особо, я думаю, с фильтрами не разгуляешься.

Может быть это как-то можно сделать в цифре?

Интересно так-же, как это делается обычно(может быть переделаем схему/плату)

 

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

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

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


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

Господа, всем спасибо за ответы!

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

 

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

Выбирал не я. Говорят по габаритам подошел :)

Ребята там не очень продвинутые это всё заварили.

Была-бы железная часть впорядке я бы им уже всё накодил, а тут на тебе!

Я тоже сразу задал этот вопрос про SPEEX(да и вообще), в ответ получил: "должен в принципе впритык" :) чем был сразу немного удивлен.

Говорят взяли встроенный потому как опять-таки габариты. :)

В общем нужно теперь мне над этим всем крепко думать. Неужели нет компактных и мощных МК - не верю! Буду искать.

Есть идея взять сигнал прямо с мобилы после фильтров и т.д. Нужно смотреть схему, как это всё реализовано там.

Мне интересно по поводу сжатия в аналоге? В чём суть? Это "аппаратный A-Law/mu-Law"??

т.е. если после этого скормить данные ещё и вокодеру - то мы получим больший эффект???

Щас на основной работе дел навалилось - практически не остаётся времени чтобы сесть и поискать нормально в гугле.

 

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

Да. Полностью с вами согласен. И в плане MAXa и по поводу фильтра )

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

 

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

С вашей помощью, коллеги )

 

 

 

Господа, всем спасибо за ответы!

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

 

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

Выбирал не я. Говорят по габаритам подошел :)

Ребята там не очень продвинутые это всё заварили.

Была-бы железная часть впорядке я бы им уже всё накодил, а тут на тебе!

Я тоже сразу задал этот вопрос про SPEEX(да и вообще), в ответ получил: "должен в принципе впритык" :) чем был сразу немного удивлен.

Говорят взяли встроенный потому как опять-таки габариты. :)

В общем нужно теперь мне над этим всем крепко думать. Неужели нет компактных и мощных МК - не верю! Буду искать.

Есть идея взять сигнал прямо с мобилы после фильтров и т.д. Нужно смотреть схему, как это всё реализовано там.

Мне интересно по поводу сжатия в аналоге? В чём суть? Это "аппаратный A-Law/mu-Law"??

т.е. если после этого скормить данные ещё и вокодеру - то мы получим больший эффект???

Щас на основной работе дел навалилось - практически не остаётся времени чтобы сесть и поискать нормально в гугле.

 

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

Да. Полностью с вами согласен. И в плане MAXa и по поводу фильтра )

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

 

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

С вашей помощью, коллеги )

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


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

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

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

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

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

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

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

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

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

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