реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> DSP из AVR, обработка сигналов в звуковой полосе частот
Punk
сообщение Dec 8 2006, 14:52
Сообщение #1


Местный
***

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



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


Знающий
****

Группа: Свой
Сообщений: 943
Регистрация: 6-07-04
Из: Санкт-Петербург
Пользователь №: 274



Гиблое дело, но все равно почитай
http://elm-chan.org/works/vp/report.html
Go to the top of the page
 
+Quote Post
prottoss
сообщение Dec 8 2006, 15:58
Сообщение #3


Гуру
******

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



Цитата(Punk @ Dec 8 2006, 18:52) *
Привет !Решил я в технаре выпендрится...
Почитайте аппнот 335 на http://atmel.com - Digital Sound Recorder with AVR and DataFlash. Правда, всего 8-бит и 8 КГц, но, по крайней мере, есть от чего оттолкнуться


--------------------
Go to the top of the page
 
+Quote Post
Nanobyte
сообщение Dec 8 2006, 17:25
Сообщение #4


За битами по регистрам гоняюсь
***

Группа: Свой
Сообщений: 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: производится без предупреждения
Go to the top of the page
 
+Quote Post
prottoss
сообщение Dec 8 2006, 17:31
Сообщение #5


Гуру
******

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



Цитата(Nanobyte @ Dec 8 2006, 21:25) *
Цитата(prottoss @ Dec 8 2006, 16:58) *
... Почитайте аппнот 335 ...

Ох уж этот аппнот ...
Я, честно говоря, разбирал его только с позиции использования DataFlash, и от обработки звука очччень далек на сегодняшний день, как то не было случая плотно позаниматься. Тем не менее, там, похоже, какие то принципы обработки изложены


--------------------
Go to the top of the page
 
+Quote Post
Punk
сообщение Dec 8 2006, 19:55
Сообщение #6


Местный
***

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



То есть в принципе своем полоса пропускания АЦП позволяет записывать звуковой сигнал дело только за правильным и быстрым воспроизведением
Go to the top of the page
 
+Quote Post
Nanobyte
сообщение Dec 8 2006, 20:08
Сообщение #7


За битами по регистрам гоняюсь
***

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



Цитата(Punk @ Dec 8 2006, 20:55) *
То есть в принципе своем полоса пропускания АЦП позволяет записывать звуковой сигнал дело только за правильным и быстрым воспроизведением

Полоса частот АЦП контроллера позволяет накрыть весь звуковой диапазон, проблема в том. как и где результат оцифровки быстро сохранить или обработать.
Ну а воспроизводить звук лучше внешним ЦАП. Проверено.


--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Dec 11 2006, 16:26
Сообщение #8


Гуру
******

Группа: Свой
Сообщений: 2 712
Регистрация: 28-11-05
Из: Беларусь, Витебск, Строителей 18-4-220
Пользователь №: 11 521



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

При передаче на rs232 сигнал желательно сжимать. Думаю что это возможно, хотя производительности AVR для таких вещей маловато.
Go to the top of the page
 
+Quote Post
Nanobyte
сообщение Dec 11 2006, 21:44
Сообщение #9


За битами по регистрам гоняюсь
***

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



Цитата(SasaVitebsk @ Dec 11 2006, 17:26) *
... Предварительно жмут сигнал в 8-бит...
... При передаче на rs232 сигнал желательно сжимать. Думаю что это возможно, хотя производительности AVR для таких вещей маловато.

Если исходные 16 бит сжимаются в 8 бит, то это будет, конечно, сжатие с потерями. Отсюда ухудшение качества, искажения и прочие гадости. А сжимать звуковой сигнал без потерь очень сложно, и тут AVR, наверное, действительно отпадает. Ну а для передачи по RS232 (на 115200) сжатие уже потребуется, ибо без него получим Fmax~5 кГц.


--------------------
Курсор влево, курсор вправо - считается хакерством. FORMAT C: производится без предупреждения
Go to the top of the page
 
+Quote Post
sav6622
сообщение Dec 11 2006, 22:37
Сообщение #10


Участник
*

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



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


Не могли бы Вы поподробней рассказать под какой "специнтерфейс" вы делали на меге ? И под какую кокретно микросхему ? А то вот я тоже собираюсь реализовывать, но по моим оценка на мегах не реализовать ввиду полной "софтовости".
Go to the top of the page
 
+Quote Post
OLEG_BOS
сообщение Dec 12 2006, 02:02
Сообщение #11


Местный
***

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



Цитата
Не могли бы Вы поподробней рассказать под какой "специнтерфейс" вы делали на меге ? И под какую кокретно микросхему ? А то вот я тоже собираюсь реализовывать, но по моим оценка на мегах не реализовать ввиду полной "софтовости".


Вот Вам одна из таких микросхем Mu–Law или A–Law кодеков фирмы Motorola (Freesale Semiconductor) применяемой в телефонии. "Специнтерфейс" описан в данном документе. Задача оцифровки аналогового сигнала и обратного преобразования лежит именно на микросхеме кодека. Задача Меги состоит в управлении кодеком, тактировании, преобразовании цифрового PCM потока в другой протокол для дальнейшей передачи, хранения и.т.д.
Прикрепленные файлы
Прикрепленный файл  MC14LC5480.pdf ( 455.95 килобайт ) Кол-во скачиваний: 130
 
Go to the top of the page
 
+Quote Post
ValeraK
сообщение Dec 12 2006, 11:26
Сообщение #12


Частый гость
**

Группа: Новичок
Сообщений: 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 конструкция выходного дня, интересное время препровождение.
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Dec 12 2006, 23:43
Сообщение #13


Гуру
******

Группа: Свой
Сообщений: 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М. Частоту эту менять нежелательно, так как относительно её расчитывается фильтр. Внутри тактирование может быть не привязано. Желательно иметь один кварц на МК и от него поделить на кофидек(или кодек) иначе могут быть слышны биения.

Мы добились хорошего звучания.

Удачи
Go to the top of the page
 
+Quote Post
Punk
сообщение Dec 19 2006, 18:57
Сообщение #14


Местный
***

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



Добился какчественного звычания с ШИМа (пускал звук с бука сквозняком через аврку32 ADC-PWM) а
вот припаяв R-2R качество меня не порадовало, даже при подаче чистого синуса он на выходе так сказать "с заусенцами" в отличии от ШИМ где выход идеальный.Но у R-2R раза в 2 полоса шире.

В процессе работы возниг вопрос: А КАК СДЕЛАТЬ/РАССЧИТАТЬ ПРОСТОЙ ЦИФРОВОЙ НЧ ФИЛЬТР,ну чтоб проц в реальном времени сигнал фильтровал в заданной полосе.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 10:42
Рейтинг@Mail.ru


Страница сгенерированна за 0.01479 секунд с 7
ELECTRONIX ©2004-2016