Цифровые фильтры

Пользовательские блоки дополняющие возможности стандартных блоков из разделов Математика и Алгебра, а так-же различные цифровые фильтры
Правила форума
Рекомендации по размещению блоков:
Автор блока создает подробное описание блока, отличие от подобных(если есть на данный момент).Сложные блоки очень желательно с примерами.
При выходе новых версий редактирует/дополняет свой первый пост с указанием даты, версии, причины.
В каждой теме обсуждается только выложенный автором блок - баги, возможность (или предложение) доработки и прочие хотелки.
Свои блоки, переработанные, с другими библиотеками, протоколами и т.д.- размещаем либо сами отдельно, либо обсуждаем и дорабатываем в форуме Разработка блоков.
Пользователи улучшив блок автора и проверив его работоспособность - могут обратиться к автору или модераторам с просьбой добавить их версию блока в первое сообщение темы.
Ответить
Аватара пользователя
Boroda
Капитан
Сообщения: 836
Зарегистрирован: 01.05.2016{, 01:04}
Репутация: 38
Откуда: Коломна
Имя: Станислав
Контактная информация:

Цифровые фильтры

#1

Сообщение Boroda » 24.01.2018{, 13:05}

Фильтры:
БлокиПоказать
Фильтры.jpg
Фильтры.jpg (48.24 КБ) 5980 просмотров
1. RC-фильтр (RC). Аналогичный фильтр используется в регуляторах Овен.
Формула работы:
Dacc = Dacc + in - out;
out = Dacc / K;
period - период работы в милисекундах.
Постоянная времени фильтра = K*period, за это время выходное значение достигнет 63% от входного.

2. Скользящее среднее на 8 точек (wind).
Формула работы:
out = (temp1+temp2+temp3+temp4+temp5+temp6+temp7+temp8) / 8;
где temp - предыдущие значения входного сигнала (массив).
После каждого вычисления массив значений сдвигается (самое старое значение удаляется, новое заносится в массив).

3. Фильтр аномальных значений (anomal_1). Аналогичный фильтр используется в регуляторах Овен.
in - текущее входное значение.
in_1 - предыдущее входное значение.
Если abs(in - in_1) входит в диапазон (delta), то текущее значение попадает на выход.

4. Фильтр аномальных значений (anomal_2).
in - текущее входное значение.
in_x - предыдущие входные значения.
Если (in - in_1 + in_2 - in_3) входит в диапазон (delta), то их среднеарифметическое значение попадает на выход.

5. Фильтр аномальных значений (anomal_3).
in - текущее входное значение.
in_x - предыдущие входные значения.
in_summ - среднеарифметическое предыдущих четырех измерений.
Если (in - in_summ) входит в диапазон (delta), то текущее входное значение попадает на выход.

6. Медианный фильтр на 10 и 20 точек (median).
Принцип работы:
Есть ряд значений (11,10,12,100,500,30,10,9,10,12,11), которые запомнил фильтр.
Фильтр раскладывает их по возрастанию (9,10,10,10,11,11,12,12,30,100,500) и на выход выдает средний член этого ряда (11).

7. Фильтр Калмана.

Также в архиве есть пара файлов Exel с реальными тестами работы фильтров с болтающимся в воздухе аналоговым входом Arduino.
Вложения
Test_filtr.rar
Блоки фильтров
(258.54 КБ) 764 скачивания

Blackhock
Рядовой
Сообщения: 5
Зарегистрирован: 12.01.2017{, 17:19}
Репутация: 0

Цифровые фильтры

#2

Сообщение Blackhock » 23.02.2018{, 11:21}

Здравствуйте. Можно сделать такой фильтр по типу медианный на 10 который на выходе давал бы не средние число ряда, а максимальное значение числа и имел выход (Ок) достижения максимального числа.

pan
Полковник
Сообщения: 2860
Зарегистрирован: 13.04.2017{, 11:57}
Репутация: 204
Имя: noname

Цифровые фильтры

#3

Сообщение pan » 23.02.2018{, 11:30}

Blackhock, как узнавать достиг он его или нет ? его надо задать или откуда-то узнать?

Blackhock
Рядовой
Сообщения: 5
Зарегистрирован: 12.01.2017{, 17:19}
Репутация: 0

Цифровые фильтры

#4

Сообщение Blackhock » 23.02.2018{, 12:27}

Максимальное число нужно выделить из массива. То есть вот так, если есть ряд значений (11,10,12,100,500,30,10,9,10,12,11), которые запомнил фильтр затем раскладывает их по возрастанию (9,10,10,10,11,11,12,12,30,100,500) и на выход выдает Максимальный член этого ряда (500). После этого выдаёт на выход Ок высокий уровень.

Аватара пользователя
ElectroMechaniC
Сержант
Сообщения: 230
Зарегистрирован: 21.09.2016{, 06:50}
Репутация: 1
Откуда: Донецк
Имя: Юрий

Цифровые фильтры

#5

Сообщение ElectroMechaniC » 24.04.2018{, 18:01}

Что означает диапазон дельта?
:newrus: Все в руках человека. Поэтому всегда мойте руки перед и зад! :victory:
:smile225: :smile469: :smile427:

holodaleksey
Лейтенант
Сообщения: 554
Зарегистрирован: 10.01.2016{, 13:47}
Репутация: 13

Цифровые фильтры

#6

Сообщение holodaleksey » 12.04.2020{, 03:51}

Кто нибудь пробовал эти фильтры с esp01? У меня почему то ни один не идёт, куча ошибок при загрузке (именно загрузке, а не компиляции) и отказ по тайм-аут. Фл прог портабл 6.3.1

добавлено: руки у меня золотые, правда из ****. все работает, просто програматор для есп не вытягивает по питанию, если кроме есп какие то еще устройства на нем висят во время прошивки.
Подпись удалена мною по требованию администрации форума, что является нарушение демократии )

Аватара пользователя
Di123
Капитан
Сообщения: 822
Зарегистрирован: 03.11.2018{, 19:38}
Репутация: 28
Имя: Дмитрий

Цифровые фильтры

#7

Сообщение Di123 » 05.12.2021{, 10:08}

что то из всех фильтров работает только рк
2021-12-05_134821.png
остальные тупо повторяют входной сигнал
даже если их хоть по трое ставить друг за другом однотипные

Аватара пользователя
Dryundel
Полковник
Сообщения: 2097
Зарегистрирован: 22.05.2017{, 23:15}
Репутация: 649
Откуда: Ярославль
Имя: Андрей
Контактная информация:

Цифровые фильтры

#8

Сообщение Dryundel » 05.12.2021{, 12:30}

Di123 писал(а):
05.12.2021{, 10:08}
что то из всех фильтров работает только рк
Ожидаемо, ибо за фильтры взялся Di123. :)
Значит пришло время разобраться с типами фильтров, их назначением и настройками.
Вероятно фильтры бывают разными, как думаете, Di123?
И вероятно то что не работает в одном случае заработает в другом.
Очень рекомендую почитать на сей счет соответствующую литературу.
Как только будет осознание отличий между скользящим средним, медианой и аномалией, придет и понимание.
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

Ingwar
Полковник
Сообщения: 1807
Зарегистрирован: 28.10.2015{, 22:47}
Репутация: 161
Откуда: Ленобласть
Имя: Игорь

Цифровые фильтры

#9

Сообщение Ingwar » 05.12.2021{, 14:34}

Dryundel писал(а):
05.12.2021{, 12:30}
Как только будет осознание отличий между скользящим средним, медианой и аномалией, придет и понимание.
"Не работает" гораздо интереснее. И не читать , а писать.
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

com
Капитан
Сообщения: 830
Зарегистрирован: 31.05.2018{, 22:12}
Репутация: 83
Откуда: Санкт-Петербург
Имя: Ринат

Цифровые фильтры

#10

Сообщение com » 06.12.2021{, 09:50}

Кое что про фильтры.
https://alexgyver.ru/lessons/filters/

Аватара пользователя
Di123
Капитан
Сообщения: 822
Зарегистрирован: 03.11.2018{, 19:38}
Репутация: 28
Имя: Дмитрий

Цифровые фильтры

#11

Сообщение Di123 » 25.09.2022{, 14:18}

почиму у меня оконный показывает минус а всё что до него нормально ?
2022-09-25_181406.png
2022-09-25_181429.png

Ответить

Вернуться в «Блоки для рассчетов и цифровые фильтры»