Цифровой фильтр на Mega16
07.06.2013, 15:46
|
|
|
Прописка
Регистрация: 14.09.2010
Сообщений: 105
Сказал спасибо: 9
Сказали Спасибо 15 раз(а) в 11 сообщении(ях)
|
Re: Цифровой фильтр на Mega16
Сообщение от niXto
|
|
Под 100 нВ ни один АЦП не подойдет, у них минимум микровольты. Только внешний авто-зеро прецизионник с усилением 10, у него будет дрейф порядка 1 мкВ (на выходе после усиления), но это можно откалибровать по термодатчику. Запитать операционник от гальванически развязанного ИП, иначе даже в микровольты не уложиться
|
Ну в таком случае выходит что TI "врут", они приводят RMS Noise: 17nV для своего АЦП. Вообще-то да дрейф будет но я повторяю нужно разрешение, а не точность.
В том то и сложность из сильно зашумленного сигнала удалить этот шум.
Вот я и прошу помощи в проектировании фильтра.
Опробовал взвешенное среднее, весовые кф рассчитал по Блекмену (за что еще раз большое спасибо alvadep), результат получше. Разрешения добился и скорость более приемлемая, если быть точным то прибор чувствует изменение 0,166 uV= 166 nV.
А точность прибора конечно же на порядок ниже.
Вообщем пока что всем спасибо. Хотя если кто кинет ссылки на конкретные примеры программной реализации фильтров буду весьма признателен.
|
|
|
|
07.06.2013, 18:07
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,026
Сказал спасибо: 60
Сказали Спасибо 3,941 раз(а) в 2,302 сообщении(ях)
|
Re: Цифровой фильтр на Mega16
Ещё раз - нановольты, пикоамперы и пр. микромир не подают на вход АЦП, а вначале усиливают операционником. Почитайте хотя бы на википедии про принцип работы Устройства выборки-хранения и подумайте, какие искажения ОНО может вносить в ваши нановольты
Заявленные шумы будут только в том случае, если источник сигнала имеет околонулевое выходное сопротивление, а какое сопротивление у вас? Я сильно сомневаюсь в повторяемости вашего результата, да и в его долговременной стабильности без буфера на входе АЦП
|
|
|
|
07.06.2013, 18:28
|
|
|
Прописка
Регистрация: 14.09.2010
Сообщений: 105
Сказал спасибо: 9
Сказали Спасибо 15 раз(а) в 11 сообщении(ях)
|
Re: Цифровой фильтр на Mega16
Вы niXto, я вижу меня не поняли.
Любопытно кто это в наше время берется использовать "камни" АЦП без встроенного буфера/усилителя. Конечно же усилитель есть, только он встроенный, я писал, что не хочу доставлять внешнего.
Большинство современных микросхем АЦП являются фактически системой:
мультиплексор,
буфер,
усилитель,
опорник,
АЦП,
контроллер.
Именно о таких АЦП и идет речь.
И все заявленные мной характеристики выдерживаются.
(прибор уже сертифицирован госстандартом, просто пытаюсь улучшить)
Но речь сейчас не о том, а об дополнительной фильтрации.
Так вот наткнулся еще на одну неплохую программку расчета фильтров.
Она мало того, что рассчитывает КФты так еще и Сишный код генерит.
Кому надо может скачать здесь : http://www.winfilter.20m.com
|
|
|
|
07.06.2013, 19:43
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,042
Сказал спасибо: 589
Сказали Спасибо 3,967 раз(а) в 1,825 сообщении(ях)
|
Re: Цифровой фильтр на Mega16
В winfilter код для реализации фильтра генерируется не оптимально с точки зрения быстродействия, хотя при невысоких порядках фильтра это не критично. Я имею в виду сдвиг всего буфера, лучше бы использовать кольцевой буфер, т.е. заполнение идет в одну сторону по кольцу, а вычисление свертки в другую начиная с последней сохраненной выборки.
|
|
|
|
07.06.2013, 20:21
|
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
|
Re: Цифровой фильтр на Mega16
Сообщение от AlexPi
|
|
Так вот наткнулся еще на одну неплохую программку расчета фильтров.
|
Антивирусник говорит, что туда ходить не надо. Как Вы оттуда что-то поимели?
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
08.06.2013, 09:46
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 05.05.2011
Адрес: Харьков
Сообщений: 5,042
Сказал спасибо: 589
Сказали Спасибо 3,967 раз(а) в 1,825 сообщении(ях)
|
Re: Цифровой фильтр на Mega16
Возможно, Вы все это знаете, но на всякий случай дам совет, может, кому пригодится.
Для повышения быстродействия фильтра все его коэффициенты переведите в целочисленную область. Это легко сделать, перемножив их на число (желательно степень двойки) и отбросив дробную часть (длинные хвосты, как правило, уже не на что не влияют). Потом результат (то, что получилось после фильтра с модифицированными коэффициентами) просто делите на это число или сдвигаете, если число было степенью двойки. Подняв быстродействие уже можно будет и повысить порядок фильтра.
Для справки. Сумма коэффициентов фильтра должна быть равна 0 для полосового и ФВЧ, и 1 для заграждающего и ФНЧ (если перемножаете на число, то соответственно сумма должна быть равна этому числу). Кстати, таким образом можно сразу делать масштабирование.
|
|
|
|
Сказали "Спасибо" alvadep
|
|
|
08.06.2013, 13:08
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 28.05.2010
Сообщений: 1,117
Сказал спасибо: 150
Сказали Спасибо 604 раз(а) в 310 сообщении(ях)
|
Re: Цифровой фильтр на Mega16
Да, Numeri шикарная штука, умели немцы делать, до сих пор пользуюсь. Также ранее рекомендовал:
|
Сообщение от raxp
|
Для алгоритма и расчета цифровых фильтров можно использовать http://www-users.cs.york.ac.uk/~fish...lter/trad.html. Очень просто: выбираете тип фильтра: "Баттерворт", "Бессель", "Чебышев" и ФНЧ, ФВЧ, полосовой или заграждающий, далее порядок фильтра (max = 10), далее вводите частоту дискретизации сигнала и необходимые частоты среза фильтра. Нажимаете "Отправить" и на следующей страничке имеете пример кода на С, значения коэффициентов, АЧХ полученного фильтра и графики реакции на прямоугольный импульс:
|
Код:
|
#define NZEROS 8
#define NPOLES 8
#define GAIN 1.104511120e+02
static float xv[NZEROS+1], yv[NPOLES+1];
static void filterloop()
{ for (;;)
{ xv[0] = xv[1]; xv[1] = xv[2]; xv[2] = xv[3]; xv[3] = xv[4]; xv[4] = xv[5]; xv[5] = xv[6]; xv[6] = xv[7]; xv[7] = xv[8];
xv[8] = next input value / GAIN;
yv[0] = yv[1]; yv[1] = yv[2]; yv[2] = yv[3]; yv[3] = yv[4]; yv[4] = yv[5]; yv[5] = yv[6]; yv[6] = yv[7]; yv[7] = yv[8];
yv[8] = (xv[8] - xv[0]) + 1.9999857878 * (xv[1] - xv[7]) + 2 * (xv[2] - xv[6])
+ 5.9999573634 * (xv[5] - xv[3])
+ ( -0.0000000000 * yv[0]) + ( -0.0000000000 * yv[1])
+ ( -0.9995761461 * yv[2]) + ( 5.9835604076 * yv[3])
+ (-14.9384994270 * yv[4]) + ( 19.9098746640 * yv[5])
+ (-14.9406119520 * yv[6]) + ( 5.9852524500 * yv[7]);
next output value = yv[8];
}
} |


очень удобная реализация для микроконтроллеров.
|
|
|
|
|
08.06.2013, 13:28
|
|
|
Гуру портала
Регистрация: 06.05.2005
Адрес: Краснодар, возле укротворного моря.
Сообщений: 19,313
Сказал спасибо: 2,633
Сказали Спасибо 12,076 раз(а) в 6,082 сообщении(ях)
|
Re: Цифровой фильтр на Mega16
Сообщение от raxp
|
|
Да, Numeri шикарная штука, умели немцы делать, до сих пор пользуюсь. Также ранее рекомендовал:
|
Программа, которую рекомендовал в 3-м посте, сама определяет и необходимый порядок фильтра. Ввести нужно только частоты, неравномерность и подавление.
Широко ее использую, результат прекрасный.
__________________
Не бейте больно, ежели чо, ну не удержался... А вааще,
"Мы за все хорошее, против всей х..., По лугам некошеным чтобы шли ступни,
Чтобы миром правила правда, а не ложь, Мы за все хорошее, нас не на...!
..." (Ленинград)
Я не несу ответственности за свои действия в Вашей голове.
|
|
|
|
08.06.2013, 14:18
|
|
|
Почётный гражданин KAZUS.RUN
Регистрация: 28.05.2010
Сообщений: 1,117
Сказал спасибо: 150
Сказали Спасибо 604 раз(а) в 310 сообщении(ях)
|
Re: Цифровой фильтр на Mega16
...форумный редирект ссылку портит:
www-users.cs.york.ac.uk/~fisher/mkfilter/trad.html
|
|
|
|
10.06.2013, 09:24
|
|
|
Прописка
Регистрация: 14.09.2010
Сообщений: 105
Сказал спасибо: 9
Сказали Спасибо 15 раз(а) в 11 сообщении(ях)
|
Re: Цифровой фильтр на Mega16
Да, антивирус при входе на сайт ругался. Но в базы не редко заносят вполне "чистые" ресурсы. Возможно информация просто устарела. Скачанная программа оказалась нормальной, антивирусник при запуске не ругался. Ни каких смс и пр. ерунды не было.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 14:03.
|
|