Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Цифровая фильтрация фона.
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > AVR
muravei
Надо мерить изменения пост.тока в линии примерно раз 15 в сек .
Какую надо выбрать частоту семплирования чтобы фильтровать сетевые наводки?

И может, кто знает реализации подобного на АВР?
Pat
Цитата(muravei @ Dec 11 2005, 06:43) *
Надо мерить изменения пост.тока в линии примерно раз 15 в сек .
Какую надо выбрать частоту семплирования чтобы фильтровать сетевые наводки?

50Гц
Цитата(muravei @ Dec 11 2005, 06:43) *
И может, кто знает реализации подобного на АВР?

Лучше производить измерение сигнала с периодом кратным 20мС.
Например 100 выборок за 20мС и пропускаем все это через простейший фильтр, скользящее среднее.
mse
Цитата
50Гц

Всьма спорное утверждение.
Например, можно попасть сэмплом в минимум или максимум наводки.
Цитата
100 выборок за 20мС

звучит гораздо лучше ;О)
Ну и ещё на компараторе и таймере внутри и ёмкости с ключиком и опером снаружи, можно сваять АЦП двойного интегрирования. Тут то-же самое - время измерения(1 стадия) должна быть N*20мС. И без ЦФ.
Runner
Частота выборок должна быть кратной частоте сети - при этом величина погрешности от наводки будет постоянной и ее можно будет убрать калибровкой. Частота в сети отличается от 50 Гц на единицы-доли процентов - при увеличении нагрузки она падает (особенно это заметно зимой). При кратковременных измерениях это не страшно, но за 15 сек может набежать значительная и непредсказуемая разность фаз (относительно ожидаемой). Предлагаю сделать детектор уровня напряжения в сети - на обычном компараторе, и по прерыванию от этого детектора мерять вашу величину. Не по каждому прерыванию, конечно, а с той частотой, которая вам нужна.
PS Скользящее среднее тоже очень хорошая идея.
GrayCat
Беда в том, что из-за наличия "нелинейных" потребителей (практически всё с выпрямителями на входе) много наводок не 50, а 100 Гц с гармониками. Так что частоту семплирования надо брать N*100 Гц (чем больше N, тем более высокие гармоники подавятся, но нужно больше памяти), и усреднять "скользящим средним" по периоду M*20мсек (чем больше M, тем лучше фильтрация, но хуже время реакции на полезный сигнал, и больше вычислений).
Petka
Цитата(GrayCat @ Dec 12 2005, 11:57) *
Беда в том, что из-за наличия "нелинейных" потребителей (практически всё с выпрямителями на входе) много наводок не 50, а 100 Гц с гармониками. Так что частоту семплирования надо брать N*100 Гц (чем больше N, тем более высокие гармоники подавятся, но нужно больше памяти), и усреднять "скользящим средним" по периоду M*20мсек (чем больше M, тем лучше фильтрация, но хуже время реакции на полезный сигнал, и больше вычислений).


Математики на эту тему говорят что интеграл синуса по периоду(а так же кратным периоду) равен нулю!!!
отсюда вывод:
1) что если усреднить значения сигна по времени 20мс, то вы избавитесь от наводок 50Гц, 100 Гц, 200Гц и.т.д.
2) количество выборок за период 20мс надо сделать минимум 2 а лучше 4 (это против 100Гц). =).
Математика полезная штука, особо в нашей работе =)
muravei
А медианный фильтр как?
psL
Медианный фильтр - сортировка по возрастанию(убыванию). Результат - центральное значение в массиве.
BVU
Цитата(muravei @ Dec 11 2005, 07:43) *
Надо мерить изменения пост.тока в линии примерно раз 15 в сек .
Какую надо выбрать частоту семплирования чтобы фильтровать сетевые наводки?

И может, кто знает реализации подобного на АВР?

Если Ваше измерение изменения постоянного тока происходит 15 раз в секунду (частотный диапазон примерно от 0 до 10Гц), то основная сетевая наводка находиться на частоте 50Гц а далее идут ее гармоники кратные 50: 100, 150, 200 и т.д. ... В этом случае перед АЦП ставиться последовательно два аналоговых фильтра - режекторный, для 'вырезания' основных 50Гц и ВЧ-фильтр, который отсечет гармоники и остальные промышленные наводки которые в основном - высокочастотные.
Petka
Цитата(psL @ Dec 13 2005, 10:22) *
Медианный фильтр - сортировка по возрастанию(убыванию). Результат - центральное значение в массиве.


В общем случае медианный случай не поможет. Медианка помогает избавиться от импульсных помех, но от насаженного синуса она не выручит. Больше того, синус она наоборот оставит =)
_artem_
Da dumayu chto vam cifrovoy filtr zdes ne nuzen . Vi to raz v 15 sekund budete merit a na vxode ACP analogovyj filtr vse ravno dolzen stoyat - nu i postavte filtr nizkix chastot s chastotoy sreza v 0.5 Hz (50 tam bolse chem sestaya oktava 0.5 Hz esli ne osibayus po 10 dB na kazduyu oktavu dlya filtra pervoy stepeni ) i merte sebe tok raz v 15 sek. Krome togo problema navodok voznikayet v redkix sluchayax . Dopustim pri poluchenii kardiogrammi , tam on ubiraetsja rejectornim filtrom . Vy snachala ocenite uroven pomex na vixode datchika dlja samogo xudsego sluchaya a potom uze mozno dumat o celesoobraznosti filtra.
muravei
Цитата(_artem_ @ Dec 13 2005, 21:39) *
Vi to raz v 15 sekund

15 раз в сек(15Гц)
"Железный" фильтр конечно будет , ну почему бы не использовать цифровой?
"Скользящего среднего" реализуется легко, а может еще что- нибудь и с БПФ.
GrayCat
Фильтр, отсекающий помеху вне полосы полезного сигнала, целесообразен всегда!!! :D Другое дело, что не всегда позволяют ресурсы (мегабайты, мегаФЛОПы, мега$)...
BVU
Перед АЦП необходимо всегда ставить аналоговые фильтры, не зависимо от того применяете ли вы цифровую фильтрацию или нет. Это необходимо для ограничения (выделения) требуемой полосы сигнала для анализа, т.к. ваша цифровая система сбора данных в результат измерения всегда будет вносить собственные помехи. А так Вы будете знать какие частоты доверительно реальны, а какие нет.
Но в Вашем случае необходимо простое сглаживание данных, с тем условием чтобы результат которого не 'затирал' флюктуации постоянного тока.
mse
Цитата
"Железный" фильтр конечно будет , ну почему бы не использовать цифровой?

Ну началось... ;О) говорю тебе - делай двойное интегрирование. 12-13 разрядов безо всяких ухищрений, "железных" фильтров и цыфровых. МИПСов не ест, на помеху ложит, к точности и стабильности комплектовки не требователен. Обойдётся в копейки.
muravei
Цитата(mse @ Dec 14 2005, 11:17) *
Ну началось... ;О) говорю тебе - делай двойное интегрирование.

Не..е.
Попробую сколзящее среднее.
О ресурсах:На Атмеле лежит апликашка про цифр фильтры (к сожалению без исходников)
так там дла Меги обещаны с скорости от 30 до 160 килосемплов в сек
mse
Цитата
Не..е.
Попробую сколзящее среднее.

;О) Хозяин-барин
Pat
Цитата(mse @ Dec 14 2005, 10:17) *
Ну началось... ;О) говорю тебе - делай двойное интегрирование. 12-13 разрядов безо всяких ухищрений, "железных" фильтров и цыфровых. МИПСов не ест, на помеху ложит, к точности и стабильности комплектовки не требователен. Обойдётся в копейки.

Идея кстати очень даже ничего.
Mse а можно ли увидеть ее в картинке?
_artem_
Цитата(muravei @ Dec 14 2005, 09:07) *
Цитата(_artem_ @ Dec 13 2005, 21:39) *

Vi to raz v 15 sekund

15 раз в сек(15Гц)
"Железный" фильтр конечно будет , ну почему бы не использовать цифровой?
"Скользящего среднего" реализуется легко, а может еще что- нибудь и с БПФ.


OK nedoglyadel.
No vot chto poluchaetsja - vam pridetsja vybat chastotu vyborok bolsoy kak minimum 50*2. Esli budete delat rejectornij plyus filtr nizkix chastot - dopolnitelnie resursi kontrollera.

Esli vse taki ne otstupilis , to ispolzuyte Filter Solutions programmu - ona vidaet source code dlya trebuemogo filtra - http://www.nuhertz.com/filter/. Po moemu ona analogovye filtry toze pozvolaet vychislyat .Prosto nado uchest chto ne vse AVR imeyut builtin umnozitel da i floating point operacii trebuyut bolsogo vremeni dlya vychisleniy .
Kstati a chto tam u vas za datchik (dolzen byt nizkoomniy rezistor) ? Mozet podsoedinenie ot nego do kontrollera zasitit ot pomex i vsego delov to?
mse
Ну вот примерно так. Там много лишнего, но смысла такая: На 1 компараторной ноге(МК не показан) делителем висит уровень~4,7В. Почти питание. Опер-RTR. типа AD820. В нормальном состоянии мух стоит на земле, т.е. опер в "+"насыщении. Начинаецца измерение - мух переключаицца на сигнал. Сигнал, если не забыл, смесчён по уровню на REF, опером, который D2. Выход опера D4 поехал вниз. МК следит, пока компаратор не сработает. Сработал - заряжаем тимер на 20мС. Отвисаем по делам. Тимер сработал, обнуляем, настраиваем на ICP от выхода компаратора и даём уровень "GND" мухом. Гуляем. Выход D4 полез вверх. Как только долез до ~4,7В, компаратор флипнулся, ICP счёлкнуло, дата об напряжении-токе в кармане. Вуаля.
mse
Блин, чего я отредактировать не могу? Ланно.
Опер D4 выходом на вторую ногу компаратора. За каким хреном я смещал всё на REF не помню, наверное, чтобы избавиться от -5В. Тогда вместо него на схеме GND. Если есть нормальной стабильности отрицательная напруга, то мона REF похерить и убить смещение, вместо REF заюзать GND, и вместо GND то самое отриццательное напружение.
Да вот ещё. +5в на мух заведено для форсированного достижения насысченным выходом опера Д4 уровня ~4,7В на сигнальной ноге компаратора . А то бум мерять 0В и никогда не достигнем оного. Печально. А так - весело.
_artem_
A sam signal otkuda . Tok bloka pitaniya ili zaryadki akkumulyatora meris ?
A sam tok cherez datchik pulsiruyusiy (vypryamlenniy nefiltrovanniy 50 HZ )?
mse
Сигнал - (ток4-20мА на резюке 100ом)*8. Пульсирующий любым способом, главное, чтобы однополярный. В данном случае - положытельный. А ваще в ХорХилл хорошо описано.
_artem_
Po moemu v sluchae current loop na 100 Om 50 Hz pomexa ne osutimaya budet .

P.S. ya naverxu osibsya - filtr pervogo poryadka daet 6 Db na oktavu a vtorogo 12.
SasaVitebsk
Цитата(mse @ Dec 14 2005, 12:17) *
Цитата
"Железный" фильтр конечно будет , ну почему бы не использовать цифровой?

Ну началось... ;О) говорю тебе - делай двойное интегрирование. 12-13 разрядов безо всяких ухищрений, "железных" фильтров и цыфровых. МИПСов не ест, на помеху ложит, к точности и стабильности комплектовки не требователен. Обойдётся в копейки.


Практически согласен!!! Делал стенд для калибровки приборов. Планировали даже термостатирование. Пробовал привязываться к фазе сети спец. датчиком фазы. Не заметил ни каких изменений где бы мы данный стенд не тестировали. Но очень сильно точность зависит от выбранного АЦП, ИОН, схемы разводки и платы.
И ещё различные усреднения - дерьмо. Для цифровых измерений ещё куда ни шло, но когда работал со звуковым сигналом, - убедился. Простой математикой не обойдёшься. Пролазит хрип и треск пока не применил цифровой фильтр. Самое смешное, что простой цифровой фильтр проще в реализации, занимает меньше озу чем скажем скользящее усреднение! Не так страшен чёрт. Теперь постоянно пользуюсь. Расчитывал фильтр с пом. проги QED2000. К сож. подломки нет и коэф. подбирать пришлось. А принцип написания фильтра взял с проги (DTMF детектирования) расположенной на сайте TI slaae16.pdf.
С уважением!
Кстати может кто лечилово подбросит QED2000 ver. 6.3
GrayCat
Цитата(_artem_ @ Dec 14 2005, 20:35) *
Prosto nado uchest chto ne vse AVR imeyut builtin umnozitel da i floating point operacii trebuyut bolsogo vremeni dlya vychisleniy .
А зачем там Floating Point? wink.gif Очень многие вещи на микроконтроллерах чудесным образом реализуются в Integer/Fixed point.

Цитата(SasaVitebsk @ Dec 15 2005, 22:36) *
И ещё различные усреднения - дерьмо. Для цифровых измерений ещё куда ни шло, но когда работал со звуковым сигналом, - убедился.
Надо просто знать особенности разных типов фильтров. И для звука "скользящее среднее" действительно не подходит, т.к. звук -- это сигнал в "частотной области". Но много ли вы работаете со звуком на младших МК? wink.gif . Зато оно отлично подходит для обаботки измерений.
muravei
Цитата(SasaVitebsk @ Dec 15 2005, 23:36) *
Самое смешное, что простой цифровой фильтр проще в реализации, занимает меньше озу чем скажем скользящее усреднение! Не так страшен чёрт. Теперь постоянно пользуюсь. Расчитывал фильтр с пом. проги QED2000. К сож. подломки нет и коэф. подбирать пришлось. А принцип написания фильтра взял с проги (DTMF детектирования) расположенной на сайте TI slaae16.pdf.
С уважением!
Кстати может кто лечилово подбросит QED2000 ver. 6.3

А я смоделировал ск. ср-мне понравилось.А можно ли у него сдвигать частоту среза?

Для триальных программ, я сделал спец винд на кусочке диска, сохранил его образ.Переустановка занимает 10-15 мин.
Petka
Цитата(muravei @ Dec 16 2005, 12:01) *
Цитата(SasaVitebsk @ Dec 15 2005, 23:36) *

Самое смешное, что простой цифровой фильтр проще в реализации, занимает меньше озу чем скажем скользящее усреднение! Не так страшен чёрт. Теперь постоянно пользуюсь. Расчитывал фильтр с пом. проги QED2000. К сож. подломки нет и коэф. подбирать пришлось. А принцип написания фильтра взял с проги (DTMF детектирования) расположенной на сайте TI slaae16.pdf.
С уважением!
Кстати может кто лечилово подбросит QED2000 ver. 6.3

А я смоделировал ск. ср-мне понравилось.А можно ли у него сдвигать частоту среза?



Частота среза не совсем верное понятие для "ск.ср." т.к. это является режекторным фильтром. Как я раньше говорил этот фильрт "вырезает" частоты, период которых кратен длине окна.
muravei
Думал, длина окна влияет на крутизну среза.
_artem_
Цитата(GrayCat @ Dec 16 2005, 10:19) *
А зачем там Floating Point? wink.gif Очень многие вещи на микроконтроллерах чудесным образом реализуются в Integer/Fixed point.


Согласен. Но мы то не знаем априори насколько контроллер будет занят этим пока не узнаем
что за фильтр(ы) надо применять и какого порядка.
Думаю сначала надо определиться - действительно ли цифровая фильтрация нужна или нет.
Если нет анализатора спектра у товариша, то данные с датчика должны быть проанализированы на предмет наличия 50 герцового сигнала и других шумов какой либо программой преобразования фурье. Посмотрел гуглом - куча информации по инету и готовые бесплатные программы - повозиться придется, так как данные с датчика надо сбросить на компютер плюс программу подобрать.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.