|
|
  |
DSP из AVR, обработка сигналов в звуковой полосе частот |
|
|
|
Dec 8 2006, 14:52
|

Местный
  
Группа: Участник
Сообщений: 242
Регистрация: 19-06-06
Из: Новосибирск
Пользователь №: 18 167

|
Привет !Решил я в технаре выпендрится и сделать скажем так упрощенный вариант ЦСП. Определил для него следующие требования :Полоса пропускания 12-15кГц классно если до 20кГц, уровень входного сигнала от 0 до 5В, возможность запоминать короткие фрагменты сигнала с последующим воспроизведением(хоть в RAM хоть во FLASH), реализация простенького ФНЧ на цифровом уровне, ну и управление по RS232.Начал делать проц М32, ЦАП-таймер0 в fastPWM, выходной фильтр тупой два кандюка и два резюка по известной схеме. Сигнал подаю напрямую в АЦП. Выявились проблемы: полоса узкая примерно -3кГц, если подаю звуковой сигнал то он сильно искажается. Передовал оцифрованный сигнал в камп по UART(115200) 128кБ выборок сохранял в кампе в массиве, в процессе передачи контролировал оцифрованный сигнал на какчество все было замечательно,но када я его назад с компа сплевывал то при воспроизведении получалось очень зашумленно. Возникшие вопросы: Как правильно рассчитывать входные цепи АЦП(че почитать)? Как правильно рассчитывать выход ЦАПа и какой ЦАП лучше R2R или ШИМ? Как добиться нормального какчества в области звуковых частот? Подходят ли AVR для таких эксперементов ? Спасибо всем кто это прочитал и надеюсь на профессиональные ответы.
|
|
|
|
|
Dec 8 2006, 17:25
|

За битами по регистрам гоняюсь
  
Группа: Свой
Сообщений: 457
Регистрация: 24-04-06
Из: Таганрог
Пользователь №: 16 446

|
Цитата(prottoss @ Dec 8 2006, 16:58)  ... Почитайте аппнот 335 ... Ох уж этот аппнот ... Ошибки там в ФНЧ. Помнится, недавно на форуме было обсуждение AN335. Но даже если сделать без ошибок, всё равно качество получаемого звука, как бы это помягче сказать, плохое. R-2R уже получше, но при числе разрядов более 10 работает не очень хорошо. Сейчас для вывода звукового сигнала использую ЦАП от AD типа AD5541, правда он не очень дешевый (~14 уе), но работает замечательно. Управляется по SPI, корпус SO-8. Качество синтезированного звука очень высокое. Для стереовыхода приобрёл AD1851, но ещё не пробовал его использовать. ИМХО - для начала экспериментов R-2R подойдёт, а позже нужно будет переезжать на настоящие ЦАП.
--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
|
|
|
|
|
Dec 8 2006, 17:31
|

Гуру
     
Группа: Свой
Сообщений: 2 720
Регистрация: 24-03-05
Пользователь №: 3 659

|
Цитата(Nanobyte @ Dec 8 2006, 21:25)  Цитата(prottoss @ Dec 8 2006, 16:58)  ... Почитайте аппнот 335 ... Ох уж этот аппнот ... Я, честно говоря, разбирал его только с позиции использования DataFlash, и от обработки звука очччень далек на сегодняшний день, как то не было случая плотно позаниматься. Тем не менее, там, похоже, какие то принципы обработки изложены
--------------------
|
|
|
|
|
Dec 8 2006, 20:08
|

За битами по регистрам гоняюсь
  
Группа: Свой
Сообщений: 457
Регистрация: 24-04-06
Из: Таганрог
Пользователь №: 16 446

|
Цитата(Punk @ Dec 8 2006, 20:55)  То есть в принципе своем полоса пропускания АЦП позволяет записывать звуковой сигнал дело только за правильным и быстрым воспроизведением Полоса частот АЦП контроллера позволяет накрыть весь звуковой диапазон, проблема в том. как и где результат оцифровки быстро сохранить или обработать. Ну а воспроизводить звук лучше внешним ЦАП. Проверено.
--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
|
|
|
|
|
Dec 11 2006, 16:26
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Для таких вещей существуют кофидеки (АЦП/ЦАП нелинейные + фильтр цифровой). Такие приборы я видел даже 16-бит. Самому нужен был только телефонный канал, поэтому не углублялся в поиски, но видел, что существуют аналоги для "CD качества". Приборы такие стоят ниже, по-моему, 14$. Предварительно жмут сигнал в 8-бит. Имеют правда "спицифический интерфейс", но я его реализовал на m8 16МГц.
При передаче на rs232 сигнал желательно сжимать. Думаю что это возможно, хотя производительности AVR для таких вещей маловато.
|
|
|
|
|
Dec 11 2006, 21:44
|

За битами по регистрам гоняюсь
  
Группа: Свой
Сообщений: 457
Регистрация: 24-04-06
Из: Таганрог
Пользователь №: 16 446

|
Цитата(SasaVitebsk @ Dec 11 2006, 17:26)  ... Предварительно жмут сигнал в 8-бит... ... При передаче на rs232 сигнал желательно сжимать. Думаю что это возможно, хотя производительности AVR для таких вещей маловато. Если исходные 16 бит сжимаются в 8 бит, то это будет, конечно, сжатие с потерями. Отсюда ухудшение качества, искажения и прочие гадости. А сжимать звуковой сигнал без потерь очень сложно, и тут AVR, наверное, действительно отпадает. Ну а для передачи по RS232 (на 115200) сжатие уже потребуется, ибо без него получим Fmax~5 кГц.
--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
|
|
|
|
|
Dec 11 2006, 22:37
|
Участник

Группа: Свой
Сообщений: 68
Регистрация: 2-02-05
Из: Россия
Пользователь №: 2 377

|
Цитата(SasaVitebsk @ Dec 11 2006, 16:26)  Приборы такие стоят ниже, по-моему, 14$. Предварительно жмут сигнал в 8-бит. Имеют правда "спицифический интерфейс", но я его реализовал на m8 16МГц. Не могли бы Вы поподробней рассказать под какой "специнтерфейс" вы делали на меге ? И под какую кокретно микросхему ? А то вот я тоже собираюсь реализовывать, но по моим оценка на мегах не реализовать ввиду полной "софтовости".
|
|
|
|
|
Dec 12 2006, 02:02
|

Местный
  
Группа: Свой
Сообщений: 386
Регистрация: 1-12-05
Пользователь №: 11 639

|
Цитата Не могли бы Вы поподробней рассказать под какой "специнтерфейс" вы делали на меге ? И под какую кокретно микросхему ? А то вот я тоже собираюсь реализовывать, но по моим оценка на мегах не реализовать ввиду полной "софтовости". Вот Вам одна из таких микросхем Mu–Law или A–Law кодеков фирмы Motorola (Freesale Semiconductor) применяемой в телефонии. "Специнтерфейс" описан в данном документе. Задача оцифровки аналогового сигнала и обратного преобразования лежит именно на микросхеме кодека. Задача Меги состоит в управлении кодеком, тактировании, преобразовании цифрового PCM потока в другой протокол для дальнейшей передачи, хранения и.т.д.
|
|
|
|
|
Dec 12 2006, 11:26
|

Частый гость
 
Группа: Новичок
Сообщений: 164
Регистрация: 11-01-05
Из: Россия, Снежинск
Пользователь №: 1 900

|
Цитата(OLEG_BOS @ Dec 12 2006, 04:02)  Вот Вам одна из таких микросхем Mu–Law или A–Law кодеков фирмы Motorola (Freesale Semiconductor) Я именно на этой микросхеме Mc14Lc5480 (имеющую микрофонный с фильтром и динамиковый усилители) сделал маленькую АТС на AtMega16. В качестве тестовой програмки организовал кольцевой буфер читая из которого выводил в ЦАП, а предварительно поделив на 2 значение с АЦП и сложив со старым зачением ещё раз поделив на 2 записывал в этот же кольцевой буфер - в результате получил эффект ЭХО. Причём интересно поигратся со скоростью записи в буфер, красивые эффекты получаются при наличии обгонного кольца старых значений типа улетающего по частоте звука. В общем DSP конструкция выходного дня, интересное время препровождение.
|
|
|
|
|
Dec 12 2006, 23:43
|
Гуру
     
Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521

|
Цитата(Nanobyte @ Dec 11 2006, 21:44)  Если исходные 16 бит сжимаются в 8 бит, то это будет, конечно, сжатие с потерями. Отсюда ухудшение качества, искажения и прочие гадости. А сжимать звуковой сигнал без потерь очень сложно, и тут AVR, наверное, действительно отпадает. Ну а для передачи по RS232 (на 115200) сжатие уже потребуется, ибо без него получим Fmax~5 кГц. Я несколько упростил, чтобы не углублятся. На самом деле это не совсем сжатие. Используется нелинейность самого уха. Слабые звуки мы слышим лучше, чем громче звук тем больше шаг. Такой принцип используется практически везде при обработке звука. Естественно ухудшение качества есть, но относительно эталона, я для уха - незначительное. Серьёзный плюс в таком случае - встроенный в микруху цифровой фильтр. То есть обвеска - минимальная. Я думаю потеря качества на ШИМе будет значительно больше. Шум квантования (две частоты), ошибки восстановления сигнала. Очень сложно создать фильтр работающий в большом диапазоне частот. Поэтому выигрыш в отсутствии ЦАП приводит к проигрышу в создании эффективного фильтра, что и подтверждают Ваши исследования в данной области. Насчёт 16->8 бит подтвердить не могу. Я использовал аналог для телефонии там 13->8 бит. Возможно 16 жмётся в 10. Может есть и 20 бит. Поищите. Указано - CD качество. Основные производители Motorola, TI, Sony. Устанавливаются везде в телефонии, GSM(стандарт передачи), CD рекордерах. Сжимать звук не очень сложно (конечно с небольшим коэффициентом сжатия). Посмотрите принципы телефонии или различных MIDI процессоров. Я сжимал на AVR. Принцип - как везде, передаётся изменение сигнала. В кофидеках существует два закона преобразования Mu- и A-. Отличаются не принципиально, некоторые микрухи могут работать в обоих. Интерфейс битовый несколько мудрёный. Детали я уже не помню (давно было), но что-то типа: Данные - строб битовый - строб фрейма (пачки). Может ещё какой строб. Микруха тактируется своей частотой типа 1.024М. Частоту эту менять нежелательно, так как относительно её расчитывается фильтр. Внутри тактирование может быть не привязано. Желательно иметь один кварц на МК и от него поделить на кофидек(или кодек) иначе могут быть слышны биения. Мы добились хорошего звучания. Удачи
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|