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

 
 
> ЦАП на ШИМ Atmega, Реализация ЦАП с помощью ШИМ атмеги
_Ie0nid
сообщение Dec 2 2009, 10:18
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 20-09-08
Пользователь №: 40 344



Добрый день.
Использую ШИМ в качестве ЦАП, и в будущем, допустим RC фильтр. С помощью, также местного АЦП, выборками в 6.6 раз чаще частоты сигнала (допустим 1кГц) оцифровываю аналоговый сигнал, закидываю значение выборки в ОЗУ и тут же ШИМю. ВОпрос-Могу ли я быстро ШИМить данную выборку, потом отключать ШИМ и производить различные вычисления? У меня в таком случае будут получаться очень тонкие печки с длинными промежутками. Правильно ли это?
И еще, есть ли возможность, выдрать из ОЗУ накопленные значения выборок взятых с частотой 6.6345 кГц и отправить их на ШИМ. Мне кажется я должен их выпленуть их точно с такой же частотой. Но мне также кажется что я ошибаюсь, потому как кооффициент заполнения, на котором все основано, не меняется. Пожалуста поясните этот момент.
И еще, если есть какие-то принципиальные моменты для построения бюджетного ЦАП на ШИМ, пожалуйста поделитесь.
Заранее спасибо.

Сообщение отредактировал _Ie0nid - Dec 2 2009, 10:44
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
_Ie0nid
сообщение Dec 4 2009, 03:44
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 30
Регистрация: 20-09-08
Пользователь №: 40 344



Здраствуйте.
"Я уже писал - нет. Вы можете по известным точкам восстановить сигнал в точках выдачи и выдать с другой частотой дискретизации..."
- Не смотря на то, что я решил все дать на лету. Прошу разъяснить все таки этот момент. Итак, я закидал в память значения сигнала полученные бог знает когда. Частота дискритезации мне известна, допустим она была 4456 Гц (предположим, на самом деле там другое число). Теперь, естсвенно, частота ШИМа у меня не совпадает, потому как АЦП это делала через 13 тактов, а Шим это делает через 512 и с другими коэффициентами деления. Даже если я буду вставлять задержки, частота ШИМ не будет совпадать с частотй дискритезации. И я естсветенно отклоняюсь от этого сигнала, и память начнет освобождаться медленеей (или быстрей), и вроде как, если представить это все на картинке, выборки будут растягиваться по времени одна от другой, а значит и частота сигнала вроде как на выходе будет уже другая. Я пдозреваю, что здесь решает все коэффициент заполнения, но как-то в голове с трудом вяжется этот физический процесс с возможностью апроксимировать сигнал в тот, что был раньше.
Я понимаю, что вопрос почти без последующего практического примнение и все таки прошу подсказать в чем соль, что упускаю.
Заранее спасибо.

Сообщение отредактировал _Ie0nid - Dec 4 2009, 03:46
Go to the top of the page
 
+Quote Post
SasaVitebsk
сообщение Dec 4 2009, 12:19
Сообщение #3


Гуру
******

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



Цитата(_Ie0nid @ Dec 4 2009, 07:44) *
Я понимаю, что вопрос почти без последующего практического примнение и все таки прошу подсказать в чем соль, что упускаю.

Вообще-то это базовые понятия. Представьте что у вас спрашивают "как дышать?". Ответ вы знаете, но объяснить сложно. Потому что объём пояснений непонятен.

Почитайте понятия "интерполяция" и "экстраполяция". В принципе требуется интерполяция или квадратичная интерполяция сигнала.

В двух словах поясню на простом примере (надо понимать, что на самом деле всё значительно сложнее).
Представим что мы оцифровываем входной сигнал с частотой дискретизации 4 кГц. А выходной сигнал с частотой 8 кГц. (Выбираю кратную частоту для упрощения понимания процесса).
Входной сигнал следующий 5,15,85,105,...
Выходной сигнал будет 5,х,15,х,85,х,105,х,... где х- "выпавшие" значения. То есть значения в котором неизвестен сигнал.
Если использовать линейную интерполяцию (как правило используется квадратичная, здесь я для примера привожу), то сигнал в помежуточных точках находится в середине от входного.
То есть он будет 5,10((5+15)/2),15,50,85,95,105,...
Возмите постройте график и постройте входной сигнал и результирующий.

При использовании квадратичной интерполяции качество восстановления сигнала намного выше получается. В цифрах не помню, но вроде для гармонического сигнала более 90%. Естественно пересчитываются все точки, а не надуманные выпавшие. При квадратичной интерполяции требуется 3 ближайших точки для восстановления сигнала в заданной.

Короче всего не расскажешь - надо читать. Это знания даже не базовые а начальные. Базовые должны быть значительно серьёзнее.
Go to the top of the page
 
+Quote Post



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

 


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


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