ksv198 0 8 августа, 2006 Опубликовано 8 августа, 2006 · Жалоба Доброго времени суток всем! Решил вот заставить Мегу разговаривать . Прицепил к ней AT45DB161D, залил звуковой файлик (PCM 8 kHz, 8 bit) и ШИМом на 1-м таймере пытаюсь формировать звук. Таймер 0 у меня тикает на 8000 Гц, на каждом тике записываю в OCR1A новое значение, прочитанное из датафлэша. Режим ШИМа 8 битный "Fast PWM", тактовая контроллера 8 МГц, т.е. частота ШИМа ~31 кГц. Хотел сам себя обмануть и обойтись без дополнительных фильтров, надеялся на сглаживание индуктивностью динамика. После первых опытов, понял, что был не прав, разборчивость речи плохая. Сейчас в раздумье: или фильтровать сразу на выходе Меги, а потом усиливать звук; или раскачать импульсный сигнал сначала, а потом зафильтровать его LC фильтром. Что посоветуете? Качество нужно на уровне телефонного, т.е. чтобы только разборчива речь была. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
pokos 0 8 августа, 2006 Опубликовано 8 августа, 2006 · Жалоба Наверное, параллельно со звуком имеется характерный свист? Передискретизацию полезно сделать хотя бы 2х. Т.е. частота дискретизации на выходе должна быть 16кГц. И цифровой фильтр. Ресурсов это дело жрёт не сильно много, а эффект весьма заметный. Ну, потом зафильтровать каким-нибудь примитивным аналоговым фильтром. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ksv198 0 8 августа, 2006 Опубликовано 8 августа, 2006 · Жалоба Наверное, параллельно со звуком имеется характерный свист? Передискретизацию полезно сделать хотя бы 2х. Т.е. частота дискретизации на выходе должна быть 16кГц. И цифровой фильтр. Ресурсов это дело жрёт не сильно много, а эффект весьма заметный. Ну, потом зафильтровать каким-нибудь примитивным аналоговым фильтром. "Про пар мне барин все понятно... куды лошадь то запрягать?" :) Примитивный аналоговый фильтр не помогает, вот здесь например, применили Чебышевский 5-го порядка. Я собственно хотел бы попроще что-нибудь (жаба и лень душат совместно, а тут еще жара +35). Про цифровой фильтр, жрущий мало ресурсов интересно, если можно - ссылочку на примерчик, сам пока цифровых фильтров не делал. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
pokos 0 8 августа, 2006 Опубликовано 8 августа, 2006 · Жалоба Примитивный аналоговый фильтр не помогает, вот здесь например, применили Чебышевский 5-го порядка. Качества хотели. Если нужна только разборчивая речь, то с передискретизацией и RC цепочка неплохо работает. Я, правда, предискретизацию делал 4х, но, думаю, 2х тоже сильно улучшит звук. Про цифровой фильтр, жрущий мало ресурсов интересно, если можно - ссылочку на примерчик, http://www.atmel.com/dyn/resources/prod_do...nts/doc2527.pdf FIR поможет. Чем больше его длина, тем лучше, ограничивается только наличием вычислительных ресурсов. Аккумулятора 16-битного хватит. Частоту среза ему 3,4кГц и будет щастье. А вообще, для речи гораздо лучше подходит АДИКМ, а не ИКМ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ksv198 0 8 августа, 2006 Опубликовано 8 августа, 2006 · Жалоба Качества хотели. Если нужна только разборчивая речь, то с передискретизацией и RC цепочка неплохо работает. Я, правда, предискретизацию делал 4х, но, думаю, 2х тоже сильно улучшит звук. http://www.atmel.com/dyn/resources/prod_do...nts/doc2527.pdf FIR поможет. Чем больше его длина, тем лучше, ограничивается только наличием вычислительных ресурсов. Аккумулятора 16-битного хватит. Частоту среза ему 3,4кГц и будет щастье. Спасибо за ссылку, буду читать. А вообще, для речи гораздо лучше подходит АДИКМ, а не ИКМ. Имеется в виду ADPCM? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
pokos 0 8 августа, 2006 Опубликовано 8 августа, 2006 · Жалоба Имеется в виду ADPCM? Я-я, безондерс. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
proba 0 8 августа, 2006 Опубликовано 8 августа, 2006 · Жалоба наверно из PCM правильно PWM преобразовали ? там знак +12 бит получается. я использовал 2 канала PWM , один вышие 6 бит выдает, другои младшие 6. суммируются резисторами R и 64*R, за этим 3.порядка RC филтрь на опарационном У. качество неплохая получается. еще, PWM должен быть фазокорректный. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
pokos 0 8 августа, 2006 Опубликовано 8 августа, 2006 · Жалоба ... еще, PWM должен быть фазокорректный. Кстати, да! На такой низкой частоте дискретизации Fast PWM будет здорово гадить. Если вопрос ко мне, могу рассказать, что я делал. Дело было давно, не все подробности помню. машина была 51-я с соответствующими ограничениями по железу и быстродействию. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
INT1 0 8 августа, 2006 Опубликовано 8 августа, 2006 (изменено) · Жалоба А посмотрите : http://www.gaw.ru/html.cgi/txt/app/Atmel/m...at45_to_avr.htm (AVR335) PS, увидел, что это и есть "вот здесь" - :) что вспомнилось, у меня это был 4433 , и, если они не подправили исходник - нужно задействовать оба буфера. А как заливали РСМ во флэш? Изменено 8 августа, 2006 пользователем INT1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
artemkad 89 8 августа, 2006 Опубликовано 8 августа, 2006 · Жалоба Прицепил к ней AT45DB161D, залил звуковой файлик (PCM 8 kHz, 8 bit) и ШИМом на 1-м таймере пытаюсь формировать звук. Таймер 0 у меня тикает на 8000 Гц, на каждом тике записываю в OCR1A новое значение, прочитанное из датафлэша. Режим ШИМа 8 битный "Fast PWM", тактовая контроллера 8 МГц, т.е. частота ШИМа ~31 кГц. Хотел сам себя обмануть и обойтись без дополнительных фильтров, надеялся на сглаживание индуктивностью динамика. После первых опытов, понял, что был не прав, разборчивость речи плохая. Сейчас в раздумье: или фильтровать сразу на выходе Меги, а потом усиливать звук; или раскачать импульсный сигнал сначала, а потом зафильтровать его LC фильтром. Что посоветуете? Качество нужно на уровне телефонного, т.е. чтобы только разборчива речь была. Или лыжи не едут, или масло мало :cranky: . Проверь, что залил и как выдаешь. Проверь стоит ли у тебя в параллель динамику емкость. Проверь, стоит ли у тебя электролит между ногой Меги и динамиком... Бо при твоих условиях можно говорить о плохом воспроизведении музыки, но никак не о плохой разборчивости речи. Плохая разборчивость это когда 2 кгц, 4 бита . Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_artem_ 0 8 августа, 2006 Опубликовано 8 августа, 2006 · Жалоба Если звук сделан по псм стандарту то может быть что мю или а компандирование применено . То есть перед тем как воспроизводить обратное преобразование надо. Что касается 8 кГц звука то согласен с предыдушим автором - с разборчивостью речи никаких проблем не должно быть. А в случае увеличения частоты шима в два раза попробуй грубо заполнить промежуточные недостаюшие значения средним двух смежных. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
INT1 0 8 августа, 2006 Опубликовано 8 августа, 2006 (изменено) · Жалоба Нашел вот статью из "Paguo" может будет интересна Нормально работает с усилителем в классе D, но нужен хотя бы однозвенный LC фильтр на динамик, и обеспечить конструктивные требования к L. Поройтесь в апнотах Apex_a: http://eportal.apexmicrotech.com/mainsite/...s/app_notes.asp wav_pcm_eeprom.rar Изменено 8 августа, 2006 пользователем INT1 Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
SapegoAL 0 8 августа, 2006 Опубликовано 8 августа, 2006 · Жалоба наверно из PCM правильно PWM преобразовали ? там знак +12 бит получается. я использовал 2 канала PWM , один вышие 6 бит выдает, другои младшие 6. суммируются резисторами R и 64*R, за этим 3.порядка RC филтрь на опарационном У. качество неплохая получается. еще, PWM должен быть фазокорректный. Согласен с данным автором у меня также получалось (13 бит). Поэтому от шима я отказался поставил кофидек с цифровым фильтром на выходе. Там ЦАП нелинейный. Всё класс получилось. В смысле речи. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Woodoo 0 8 августа, 2006 Опубликовано 8 августа, 2006 · Жалоба имел опыт с воспроизведением аудио используя шим, но он был програмный, и написан на х86. Воспроизводил не голос, а музыку в формате 11050 Гц, 8 бит. Вывод на ПК-спикер. + элементарная р-ц цепочка = очень приемлемое качество как для ШИМа. Так что мой совет: поднимите частоту, хотябы вдвое + элементарный фильтр, а уж потом усилитель (ни как не наоборот, импульсы усиливать не стоит). Для голоса этого должно хватить с избытком. P.S.: Так как в кампе небыло звуковой карты, слушал таким оброзом музыку довольно долго, ставил Электроника У-101-стерео + S30 = супер! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ksv198 0 9 августа, 2006 Опубликовано 9 августа, 2006 · Жалоба наверно из PCM правильно PWM преобразовали ? там знак +12 бит получается. я использовал 2 канала PWM , один вышие 6 бит выдает, другои младшие 6. суммируются резисторами R и 64*R, за этим 3.порядка RC филтрь на опарационном У. качество неплохая получается. еще, PWM должен быть фазокорректный. Не совсем понял про преобразование. Я использую 8-ми битный RAW PCM, беззнаковый, без A-low, mu-low; такие может делать Cool Edit. Пробовал и фазокорректный PWM, при этом качество улучшается немного, но сильнее свист. А посмотрите : http://www.gaw.ru/html.cgi/txt/app/Atmel/m...at45_to_avr.htm (AVR335) PS, увидел, что это и есть "вот здесь" - :) что вспомнилось, у меня это был 4433 , и, если они не подправили исходник - нужно задействовать оба буфера. А как заливали РСМ во флэш? РСМ во флэш заливаю через последовательный порт, вернее с СОМа компьютера на скорости 19200 передаю контроллеру, а он уже льет по SPI во флэш, для контроля читаю назад - все совпадает. Можно оба буфера использовать, а если лениво , то можно в RealTerm-е поставить задержку между байтами 5-6 мс, тогда с одним буфером успевает писать в страницу между приемом соседних байтов. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться