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

 
 
> декодер ADPCM (АДИКМ) на AVR, теория
Alt.F4
сообщение Sep 30 2010, 12:28
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 468
Регистрация: 28-03-10
Из: Беларусь
Пользователь №: 56 256



Есть у Atmel аппнот: "AVR336: ADPCM Decoder" (там и исходники на Си есть, но я хочу сам код написать на Ассемблере), но т.к. с английским дружу только со словарем, то понять как декодировать АДИКМ из этого апнота, для меня нереально.
Искал в интернете, но ничего конкретного по этому вопросу не нашел...
Смысл я понял такой, в EEPROM (МК или внешнюю) грузим кодированный в АДИКМ звук (можно в Sound Forge). Затем декодируем и с помощью ШИМ выводим аналог. Я вот только понять не могу, как ШИМ потом с помощью фильтра сделать "звуком". Ведь у ШИМ амплитуда одинакова, у "звука" разная, а ФНЧ обрезает только частоту...
И еще интересует весь процесс декодирования, от загрузки байта из EEPROM, до вывода на ШИМ.
Может, угостите хорошей ссылкой по этому вопросу, или книгу умную порекомендуете rolleyes.gif .
Спасибо.

Сообщение отредактировал Alt.F4 - Sep 30 2010, 12:30
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
SasaVitebsk
сообщение Sep 30 2010, 13:06
Сообщение #2


Гуру
******

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



Принцип ШИМ прост. Есть период ШИМ. Есть заполнение. Если на выход поставить интегрирующую цепочку (резистор послед, конденсатор на землю) то получим (по теории) интегральную площадь заполнения импульса (на то и интегратор). Иными словами, если заполнение ШИМом 30%, то мы получим напряжение составляющее 0.3 от максимума.
Правда это в теории. На практике такое получится при правильном подборе элементов интегратора. ШИМом очень удобно пользоваться при выводе медленно изменяющегося аналогового сигнала либо сигнала, управляющего интегральной нагрузкой. Классический пример - управление двигателем постоянного тока.

На практике подбор интегратора и фильтра, который хорошо бы резал несущую (Fpwm) и незначительно искажал бы огибающий сигнал - задача непростая. Она тем легче, чем выше соотношение частоты несущей к частоте выходной. И то там много разных сложностей.

Тем не менее - если взять простой расчёт, то выглядит всё примерно так:
Допустим мы хотим получить частоту 4кгц. При скважности (фактически разрядность нашего ЦАПа) 256 (8 бит). По теории у нас должно быть не менее 2-ух кратного превышения частоты. Таким образом частота ШИМ должна быть не менее 4*2*256 = 2МГц. Или наоборот 16МГц/256/2 = 31кГц. При ШИМ 9 бит - 15.5кГц.

Считается что для качества уровня телефонии (3.4кГц) требуется 14 битный ЦАП с частотой квантования 8кГц. Легко подсчитать, что частота ШИМ при этом должна быть 8*(2**14) ~ 33МГц. smile.gif

Существуют специальные нелинейные ЦАП для звука, которые при 8 битах обеспечивают 14 бит качество. Они применяются в GSM.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Alt.F4   декодер ADPCM (АДИКМ) на AVR   Sep 30 2010, 12:28
- - Mike18   Цитата(Alt.F4 @ Sep 30 2010, 16:28) Есть ...   Sep 30 2010, 12:54
- - Alt.F4   Mike18, читал я AVR335 на русском. Там ответов на ...   Sep 30 2010, 13:07
|- - Mike18   Цитата(Alt.F4 @ Sep 30 2010, 17:07) Читал...   Sep 30 2010, 13:24
- - Alt.F4   ЦитатаТам после фильтра ещё усилитель нужно и дина...   Sep 30 2010, 13:38
|- - Mike18   Цитата(Alt.F4 @ Sep 30 2010, 17:38) ... В...   Sep 30 2010, 13:53
- - Alt.F4   Mike18, эту статью тоже читал. Про реализацию деко...   Sep 30 2010, 14:01
|- - Mike18   Цитата(Alt.F4 @ Sep 30 2010, 18:01) Mike1...   Sep 30 2010, 15:39
- - Alt.F4   Мне б на русском...   Sep 30 2010, 15:47
|- - Mike18   Цитата(Alt.F4 @ Sep 30 2010, 19:47) Мне б...   Oct 4 2010, 17:12
|- - Maik-vs   Цитата(Alt.F4 @ Sep 30 2010, 19:47) Мне б...   Oct 29 2010, 14:01
- - Alt.F4   Почему все исходники на Си? Ни одного не нашел на ...   Oct 1 2010, 08:21
- - Alt.F4   zombi описал алгоритм декодирования АДИКМ, но у ме...   Oct 24 2010, 20:42
|- - zombi   Цитата(Alt.F4 @ Oct 24 2010, 23:42) zombi...   Oct 26 2010, 14:28
- - Alt.F4   ЦитатаНа выходе 16 бит.А 8бит никак?   Oct 26 2010, 14:50


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

 


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


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