sigmaN 0 9 марта, 2008 Опубликовано 9 марта, 2008 · Жалоба Добрый день. Вот наткнулся на грабли, господа. Прошу помощи. Собственно расклад: 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)}) но это не то всё! Приблизительно я понимаю почему это происходит. Не знаю как с этим бороться! Помогите плиз. Погибаю совсем. Схему девайса, код, wav с проблемой - выложу всё что необходимо. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DRUID3 0 9 марта, 2008 Опубликовано 9 марта, 2008 · Жалоба 1) фильтр перед АЦП какой? 2)странно использовать LPC2148 для передачи в комп через RS-232; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sigmaN 0 9 марта, 2008 Опубликовано 9 марта, 2008 · Жалоба 1) фильтр перед АЦП какой? 2)странно использовать LPC2148 для передачи в комп через RS-232; 1. Фильтра просто нет никакого :) 2. В общем-то на данном этапе это задача минимум. Это проект по шифрованию переговоров по мобильному, затеянный не мною. Мне лишь дали уже собранный девайс. Схему и тех. задание. Задача завести аппаратную часть, оцифровать голос, прогнать через вокодер(CELP/SPEEX) и показать криптографам что шифровать(алгоритм не разглашается). На данном этапе я выбрал Speex, но естественно перед тем как что-либо ему скормить нужно всё-таки получить те самые отсчёты от AD. С ЦОС в принципе мало знаком пока. Имею общие понятия. Практики до этого небыло. Сама плата очень мала(32x20мм) и особо, я думаю, с фильтрами не разгуляешься. Может быть это как-то можно сделать в цифре? Интересно так-же, как это делается обычно(может быть переделаем схему/плату) Прикрепляю кусок схемы: аналоговая часть. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Сергей Борщ 121 9 марта, 2008 Опубликовано 9 марта, 2008 · Жалоба 1. Фильтра просто нет никакого :)Вот и ответ. Ключевые слова для поиска в гугле - anti-aliasing filter, зоны Найквиста. Вот тут - очень подробное объяснение "на пальцах" от Аналоговых Девайсов. Вам надо или ставить очень крутой фильтр перед АЦП или фильтр попроще, оцифровывать на многократной частоте и делать прореживание (дециамцию). Все это описано в документе по ссылке. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
DRUID3 0 10 марта, 2008 Опубликовано 10 марта, 2008 · Жалоба 1. Фильтра просто нет никакого :) Да уж...почему-то я не сомневался. Вам дали очень полезную ссылку, ознакомьтесь с ней внимательно. 2. В общем-то на данном этапе это задача минимум. Это проект по шифрованию переговоров по мобильному, затеянный не мною. Мне лишь дали уже собранный девайс. Схему и тех. задание. Задача завести аппаратную часть, оцифровать голос, прогнать через вокодер(CELP/SPEEX) и показать криптографам что шифровать(алгоритм не разглашается). На данном этапе я выбрал Speex, но естественно перед тем как что-либо ему скормить нужно всё-таки получить те самые отсчёты от AD. С ЦОС в принципе мало знаком пока. Имею общие понятия. Практики до этого небыло. Сама плата очень мала(32x20мм) и особо, я думаю, с фильтрами не разгуляешься. Может быть это как-то можно сделать в цифре? Интересно так-же, как это делается обычно(может быть переделаем схему/плату) Прикрепляю кусок схемы: аналоговая часть. Я имел ввиду, что зачем Вы взяли микроконтроллер с USB? Кстати, даже незнаю потянет ли он SPEEX, но если над ним внимательно посидеть и подумать, то может быть и так. Но вот непонятно Вы что решили для "криптомобилы"(я знаю как они делаются, можете не пояснять) взять АЦП внутри контроллера? :07: 10 бит!? вообще-то берут 16, потом ДД сжимается или логарифмической или иной компрессией. Кстати, такое сжатие можно сделать и в аналоге, но я не очень знаком со SPEEX чтобы такое советовать. Просто чтобы передать по GSM каналу сжатый кодеком поток звука+избыток для криптографии и это внутри 9600 bps сжимать надо не пАдеЦки, и если еще алгоритм будет использовать 10 бит из 16 возможных - то звучать будет очень похоже на говорящее ведро. Правда, если Вы действительно глубоко вникните в кодек, то может и выйдите из этой ситуации. Дальше MAX9766 это насколько я понимаю усилитель мощности, он шумный, противный :) и предназначен для низкоомных нагрузок... О фильтре...прочитав внимательно приведенную выше коллегой ссылку, Вы поймете без него никак, он может быть даже довольно примитивен, причем достаточно будет грамотно спроектировать обратные связи в ОУ предусилителя (выбросив к чертям собачим усилок мощности, который авставлен абсолютно не по адресу). Но если, по каким-то Вашим соображениям этого сделать нельзя то воспользуйтесь линейкой фильтров на переключаемых конденсаторах MAX7400-MAX7407 от Maxim - они имеют очень высокие параметры при малых габаритах. Сделать такой фильтр принципиально цифровым принципиально НЕ возможно - это расплата за условности допускаемые нами пытаясь описать непрерывный, аналоговый мир мгновенными отсчетами для применения аппарата дискретной математики. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
sigmaN 0 10 марта, 2008 Опубликовано 10 марта, 2008 · Жалоба Господа, всем спасибо за ответы! Почитал 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 и по поводу фильтра ) "он может быть даже довольно примитивен, причем достаточно будет грамотно спроектировать обратные связи в ОУ предусилителя" - я пока слабо представляю что поставить в качестве такового ) т.е. усилитель микрофона на ОУ? Почему бы и нет, кстати ) Да...ох и задачка. Но я люблю такие, после их решения получаешь самое ценное - ОПЫТ. С вашей помощью, коллеги ) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться