gora_electric
Oct 21 2007, 12:15
Кто поможет ? Давно вынашиваю идею микрофон+ATmega = адаптивный дельта модулятор.
Пытался несколько раз попробовать но так и не разобрался....
Может у кого есть ссылка на проект с доходчивыми комментариями... или понятное описание алгоритма применительно к контроллерам... Понимаю что прошу слишком много, но может кто поможет. Сама идея не нова - звук передовать по радиоканалу в закрытом хотя бы для ЧМ виде. .... только в "ознакомительных" целях.
gora_electric
Oct 21 2007, 14:49
И еще вопрос знающим - дельта модулятор на АТини с применением встроенного компаратора , кто знает подскажите ?
SasaVitebsk
Oct 21 2007, 22:55
Цитата(gora_electric @ Oct 21 2007, 17:49)

И еще вопрос знающим - дельта модулятор на АТини с применением встроенного компаратора , кто знает подскажите ?
Абсолютно ничего сложного нет. Никаких "применительно к МК" не существует. Радиоканал вообще не при чём. Это совершенно разные темы. Закодировать и передать. Зачем вам именно адаптивная дельта модуляция - непонятно. Она просто найболее простая. При применении МК можно применять более распространнённые способы сжатия.
С другой стороны привести проект не представляется возможным, так как такие вещи очень увязаны в аппаратную часть. Придётся банально почитать литературу. Сам алгоритм - страничка не более. На пальцах объяснить сложно.
gora_electric
Oct 22 2007, 17:59
[quote name='SasaVitebsk' date='Oct 22 2007, 01:55' post='311333']
Зачем вам именно адаптивная дельта модуляция - непонятно. Она просто найболее простая. При применении МК можно применять более распространнённые способы сжатия.
/quote]
Вот потому что наиболее простая, поэтому и хотелось попробовать. ... А радиоканал - это так к слову . В нем я более менее ..... Существует мотороловский АДМ кодек, однако не могу его наити в продаже, а вроде поручить это дело авр-ке- я бы попробовал. Алгоритм бы хотябы...
SasaVitebsk
Oct 22 2007, 21:05
В двух словах примерно так. (Пишу кодирование - назад обратно)
Вводится два коэффициента. Один К - крутизна, второй Т - период спада.
1) Выставляется крутизна на ИНТЕГРАТОР(не совсем ЦАП. Точнее ЦАП который прибавляет значение к предыдущему) Естественно это можно сделать и программно, но в этом случае придётся применить ЦАП не менее 14 разрядов (для речи). Если же использовать интегратор, то достаточно 8.
2) Сравнивается значение с измеряемым (компаратор) выдаётся бит.
3) Если идёт 3 подряд 1 (в нек. алгоритмах 4), то К наращивается на 2
4) Из Т вычитается К. При переполнении (заёме) Из К вычитается 1.
5) Отслеживаются граничные значения К.
Иными словами чем громче звук тем больше крутизна и тем быстрее она спадает.
Если мне не изменяет память, то на сайте атмела есть апликухи по реализации этих алгоритмо с примерами...
gora_electric
Oct 23 2007, 07:10
Спасибо за участие , с алгоритмом буду разбираться и сбегаю на атмел
alexander55
Oct 23 2007, 07:12
Цитата(SasaVitebsk @ Oct 23 2007, 01:05)

придётся применить ЦАП не менее 14 разрядов (для речи). Если же использовать интегратор, то достаточно 8.
14 разрядов - это Вы, Саша, загнули. 8 - это максимум.
defunct
Oct 23 2007, 09:40
Самая простая модуляция - это без модуляции.
Сигнал подать на АЦП, оцифровать и делать с ним что угодно.
alexander55
Oct 23 2007, 11:27
Цитата(defunct @ Oct 23 2007, 13:40)

Самая простая модуляция - это без модуляции.
Сигнал подать на АЦП, оцифровать и делать с ним что угодно.
Правильно, если посмотреть на алгоритм, то увидим очертания интегрирующего АЦП.
nick-l
Oct 23 2007, 15:13
если интересно то здесь
http://www.platan.ru/shem/pdf/45sx.pdf лежит конструкция цифрового диктофона на AVR
SasaVitebsk
Oct 23 2007, 17:04
Цитата(alexander55 @ Oct 23 2007, 10:12)

14 разрядов - это Вы, Саша, загнули. 8 - это максимум.

При прямой выдаче ЦАП на выход, и частоте выборок 8кГц - 14 разрядов обеспечивает лишь телефонное качество. Для того чтобы в этом убедится просмотрите любой кофидек фирмы motorola. Имеется в виду стандартный линейный ЦАП. Для работы с 8 битами используют нелинейный ЦАП с характеристиками уха. Для запрашиваемого алгоритма я работал с 8-ми битным ЦАП с выборкой 32 кГц. Для получения CD качества используется, как известно выборка 44.1 кгц и специализированные ЦАП. Обычно 20 разрядов.
Очень большое значение имеет выходной фильтр.
Обективно я легко различу (и вы также) оцифровку 14 битами от 13-ти битной на малой громкости.
Вот так-то.
defunct
Oct 23 2007, 18:38
Цитата(SasaVitebsk @ Oct 23 2007, 20:04)

Для работы с 8 битами используют нелинейный ЦАП с характеристиками уха.
Если Вы о PCMA/U кодировании, то оно добавляет точности для слабого сигнала, за счет потери качества на мощных сигналах. То же телефонное качество можно получить 8-ми битами, если принять что сигнал всегда мощный.
Цитата
Обективно я легко различу (и вы также) оцифровку 14 битами от 13-ти битной на малой громкости.
На малой громкости да, но на мощном сигнале что 14-ти, что 13-ти будут хуже тупой 8-ми битной оцифровки сигнала.
SasaVitebsk
Oct 23 2007, 21:22
Тут надо разделить задачу на две. Или, точнее выделить что надо человеку. Или поток сжать или сигнал получить.
Если сжать поток, то существует множество способов. Я писал о простой оцифровке обычным АЦП. Естественно ссуществует огромное количество различных способов сжатия потока. Дельта сигма модуляция один из самых первых и самых слабых. Весьма прост в реализации, но на сегодняшний момент не применяется. По этому и микрухи не выпускаются. Применяют другие. Тоже не сложные. В частности можно посмотреть способы оцифровки применяемые в GSM (очень простые и более эффективные) и для звуковых карт. Простой AVR вполне справится с любым из данных алгоритмов. Реализация их достаточно проста. Выборка везде 8кГц - результат - количество значащих бит на выборку. То есть уровень сжатия.
Если речь идёт об получении качественного сигнала, с соблюдением различных характеристик (например динамического диапазона), то надо уточнить с какой частотой выборок он планирует работать. Это для начала. При линейном АЦП при частоте выборки 8кГц какие бы не применял алгоритмы нормально звук не оцифруешь. Это я говорю совершенно убеждённо. Я просто банально всё это делал и экспериментировал. Ещё раз повторяю даже для телефонии применяют 14 бит линейных или 8 бит нелинейного АЦП, где три старших бита определяют вес младших разрядов. В телефонии максимальноя граница 3400Гц.
Я писал, что можно применять интегратор, тогда с меньшим весовым значением разряда можно получить больший размах сигнала. Это позволяет уменьшить разрядность АЦП (Там ЦАП и сравнение) до 8 бит. Хотя таким образом фактически увеличивается разрядность. А используется свойство слабого нарастания (падения) уровня звука.
А вообще - ухо - как и глаз уникальный инструмент. И очень чутко реагирует на малейшие искажения.
SergeiCh
Oct 24 2007, 08:37
Цитата(SasaVitebsk @ Oct 24 2007, 04:22)

Тут надо разделить задачу на две. Или, точнее выделить что надо человеку.
Как я понял, человеку надо скремблер, причем передаваться будет не цифра, а аналоговый сигнал. По-моему, дельта модуляция для этого плохо пригодна, т.к. ошибка, свойственная аналоговым сигналам, может накапливаться и приводить к нежелательным эффектам. Я не специалист в этой области, могу ошибаться. Надежнее уж перетасовать гармоники.
Цитата
Самая простая модуляция - это без модуляции.
Pulse Code Modulation?
Дельта-ацп поток очень удобен для построения скремблеров с
одноразрядной линией задержки с отводами, но ,естественно, это
только "времянка"
SasaVitebsk
Oct 24 2007, 19:47
Цитата(SergeiCh @ Oct 24 2007, 11:37)

Как я понял, человеку надо скремблер, причем передаваться будет не цифра, а аналоговый сигнал. По-моему, дельта модуляция для этого плохо пригодна, т.к. ошибка, свойственная аналоговым сигналам, может накапливаться и приводить к нежелательным эффектам. Я не специалист в этой области, могу ошибаться. Надежнее уж перетасовать гармоники.
Pulse Code Modulation?

Скремблер это несколько другое.
Для этого вида модуляции характерны незначительные частотные искажения и сильные фазовые искажения. Именно поэтому она и ушла со сцены. Так я не смог впрямую передать сигнал выше 7400 бод. (Как известно все модемы и факсы работают на принципах амплитудно фазовой модуляции сигнала).
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.