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

 
 
> Фильтр на ATmega16
Nameless19
сообщение Dec 10 2014, 16:16
Сообщение #1





Группа: Новичок
Сообщений: 2
Регистрация: 4-11-14
Пользователь №: 83 525



Здравствуйте!
Нужна помощь с моделированием в Proteus цифрового фильтра Чебышева 4 порядка (режекторный фильтр). Используются мк ATmega16, АЦП MCP3201 и ЦАП MCP4921. Нужно собрать схему, а вот как ее лучше сделать - понять не могу, несмотря на множество прочитанных статей. Может у кого есть идеи или какая-нибудь информация о том как собрать модель?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Sergey-Ufa
сообщение Dec 11 2014, 18:16
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 37
Регистрация: 27-10-13
Из: Уфа
Пользователь №: 78 917



Если описать решение задачи в самом общем виде, то это будет выглядеть примерно так:
Контроллер инициализирует работу АЦП и получает с него данные. Входные данные в контроллере обрабатываются по алгоритму режекторного цифрового фильтра и с применением коэффициентов, соответствующих фильтру Чебышева 4-го порядка. Алгоритм и коэффициенты получают либо расчетом вручную, либо используя соответствующий софт для проектирования. Полученные выходные данные выводятся контроллером на ЦАП, на выходе которого получается отфильтрованный аналоговый сигнал.
Для моделирования необходимо в соответствии с даташитами на все три микросхемы правильно соединить между собой контроллер, АЦП и ЦАП, правильно подключить к ним необходимые внешние элементы. Затем написать для контроллера программный код на ассемблере или на языке более высокого уровня с учетом особенностей работы АЦП и ЦАП, и использованных внешних портов ввода-вывода. При этом предполагается, что вы хотя бы немного умеете работать с Proteus и с какой либо программой-компилятором для Mega16, а также владеете хотя бы начальными знаниями по программированию контроллеров семейства AVR. В противном случае весь дальнейший разговор становится беспредметным, а ваш вопрос превращается просто в предложение на каких-то условиях решить эту задачу за вас.
Go to the top of the page
 
+Quote Post
Xenia
сообщение Dec 11 2014, 22:49
Сообщение #3


Гуру
******

Группа: Модератор FTP
Сообщений: 4 479
Регистрация: 20-02-08
Из: Москва
Пользователь №: 35 237



Цитата(Sergey-Ufa @ Dec 11 2014, 21:16) *
Если описать решение задачи в самом общем виде, то это будет выглядеть примерно так:
Контроллер инициализирует работу АЦП и получает с него данные. Входные данные в контроллере обрабатываются по алгоритму режекторного цифрового фильтра и с применением коэффициентов, соответствующих фильтру Чебышева 4-го порядка. Алгоритм и коэффициенты получают либо расчетом вручную, либо используя соответствующий софт для проектирования. Полученные выходные данные выводятся контроллером на ЦАП, на выходе которого получается отфильтрованный аналоговый сигнал.


То, что вы написали, предельно очевидно. Было бы неожиданным, если бы данные получал не АЦП, выдавал не ЦАП, а фильтр считал не МК. sm.gif Т.е. даже вообразить нельзя, чтобы эту схему можно было собрать как-то иначе.

Интересно было бы услышать другой комментарий - по поводу того, способна ли эта схема работать в непрерывном режиме или нет. А если да, то с какой приблизительно скоростью?

Лично я вижу здесь две возможности, одна не лучше другой. Возможность 1-ая. АЦП оцифровывает в непрерывном режиме какой-то объем данных, сложив их в массив фиксированной длины, а затем затыкается. Дальше наступает стадия "переваривания" содержимого этого массива данных с помощью фильтра, а когда процедура будет закончена, ЦАП "проиграет" содержимое отфильтрованного массива, превратив его последовательность напряжений с каим-то временным интервалом.

В этом варианте устройство работает явно в периодическом режиме, когда на выходе участки отфильтрованного входного сигнала перемежаются с участками постоянного напряжения (это ЦАП держит последнюю точку, в ожидании, когда закончится прием и фильтрация следующего блока данных). Достаточно запустить на вход установки чистую синусоиду, чтобы получить наглядный повод ужаснуться тому, что из нее получится на выходе. Кроме того, последовательные участки отфильтрованного сигнала, скорее всего, будут иметь разрывы непрерывности в начале и конце каждого блока данных, т.к. применение фильтра Чебышева не гарантирует нам сохранения значений в краевых точках.

Возможность 2-я (из тех, что я вижу). АПЦ снимает каждый раз только одну точку, которая присоединяется к ранее собранному массиву данных справа, а левая точка массива (самая старая) удаляется. Фильтрация в этом случае проводится каждый раз по всему массиву (сохраняя оригинал для добавления следующих точек), а затем ЦАП преобразует в напряжение тоже только одну точку - по собственному вкусу: среднюю или последнюю.

В последнем случае периодичность вроде бы сохраняется, но за счет страшной медлительности - после каждой новой оцифрованной точки следует задержка "на обдумывание хода", как в шахматах. А учитывая, что думать здесь будет ATmega16, надяться на высокую скорость не приходится.

Вот примерно в таком ключе хотелось бы послушать комментарии, а не в духе "ветер дует, огонь горит, дождь падает" (С) Пятый элемент. sm.gif
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 26th June 2025 - 07:54
Рейтинг@Mail.ru


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