Цифровой фильтр

В данный форуме Вы можете создавать темы посвящённые расширению функционала программы или сайта. После рассмотрения Ваше предложение будет перенесено в соответствующее место
arisov77
Рядовой
Сообщения: 51
Зарегистрирован: 11.06.2016{, 12:42}
Репутация: 7
Откуда: Инза

Цифровой фильтр

#41

Сообщение arisov77 » 22.08.2022{, 22:47}

Rovki писал(а):
22.08.2022{, 19:46}
...Кому нужен вольтметр АКБ , который показывает 12.6.....12.3... 12.9... Или термометр 25.8...26.1...25.5 ...каждую минуту
От подобных мельканий мне помогло использование нескольких последовательных фильтров: медианный (по 3 значениям) + "итерационный" + медианный + "итерациональный" + экспоненциальное бегущее среднее + накапливающее среднее. Пробовал разные комбинации, менял местами фильтры - но только в такой последовательности добился наименьших мельканий.

Итерационный или пороговый фильтр (или может его ещё как то по другому называют) был сделан по алгоритму описанному здесь https://catcatcat.d-lan.dp.ua/moving-av ... e-srednee/ читать абзац "Проблема медленно изменяющего параметра" (сайт у меня открывается через VPN). Если у кого нет VPN приведу часть текста оттуда: ...Для этого я применяю такой прием, я для него придумал название итерационный фильтр. Суть заключается в том, что поступившие данные сравниваются с предыдущим значением и если значения равны, то счетчик итераций обнуляется. Если же не равны, то начинает работать счетчик итераций и когда достигает заданного значения, новые данные заменяют место старых. Для устранения влияния на работу на больших изменениях параметра, вводиться понятие порога, выше которого данный фильтр неактивен...
Также по фильтрации на том сайте можно почитать https://catcatcat.d-lan.dp.ua/prostoy-t ... nogo-toka/

Фильтры "Медианный и экспоненциальное бегущее среднее" - алгоритмы брал отсюда https://alexgyver.ru/lessons/filters/

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

Цифровой фильтр

#42

Сообщение Ingwar » 23.08.2022{, 00:44}

Rovki писал(а):
22.08.2022{, 19:46}
Я ж говорю что заказчика и меня не устраивает время, после включения, выхода на уровень ,а не работа потом при любом фильтре. Редкость обновления не решает проблем с прыганьем показаний , хоть раз в минуту ...Кому нужен вольтметр АКБ , который показывает 12.6.....12.3... 12.9... Или термометр 25.8...26.1...25.5 ...каждую минуту
Что то тут не так... Я не знаю, как Вы настраиваете фильтры, что они у Вас скачут "каждую минуту". Из моего поста вполне очевидно, что скорость реакции фильтра, как и его сглаживающая функция в примере довольно высоки. Для понимания - скорость налива ~150 грамм в секунду, датчик на 30кг и гарантированная погрешность плюс/минус 5 грамм. Причем льют в тару 0,5 и 1 литр. Такое, казалось бы необоснованное решение применить датчик до 30кг, обусловлено низкой ̶с̶о̶ц̶и̶а̶л̶ь̶н̶о̶й̶ ̶о̶т̶в̶е̶т̶с̶т̶в̶е̶н̶н̶о̶с̶т̶ь̶ю̶ культурой труда работников с дружественных республик, которые на весы могут ставить различные предметы, протирать с усердием поверхность, опереться да и присесть... Надеюсь Вы понимаете какое примерно может быть соотношение шумов к полезному сигналу ?
Может надо что то "в консерватории поправить"?... Может проблема в цикле или аппаратная?
Люди в своем большинстве живо интересуются всем на свете, за исключением того, что действительно стоит знать.

Аватара пользователя
Rovki
Полковник
Сообщения: 4485
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 236
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Цифровой фильтр

#43

Сообщение Rovki » 23.08.2022{, 13:53}

Ingwar писал(а):
23.08.2022{, 00:44}
Rovki писал(а):
22.08.2022{, 19:46}
Я ж говорю что заказчика и меня не устраивает время, после включения, выхода на уровень ,а не работа потом при любом фильтре. Редкость обновления не решает проблем с прыганьем показаний , хоть раз в минуту ...Кому нужен вольтметр АКБ , который показывает 12.6.....12.3... 12.9... Или термометр 25.8...26.1...25.5 ...каждую минуту
Что то тут не так... Я не знаю, как Вы настраиваете фильтры, что они у Вас скачут "каждую минуту". Из моего поста вполне очевидно, что скорость реакции фильтра, как и его сглаживающая функция в примере довольно высоки. Для понимания - скорость налива ~150 грамм в секунду, датчик на 30кг и гарантированная погрешность плюс/минус 5 грамм. Причем льют в тару 0,5 и 1 литр. Такое, казалось бы необоснованное решение применить датчик до 30кг, обусловлено низкой ̶с̶о̶ц̶и̶а̶л̶ь̶н̶о̶й̶ ̶о̶т̶в̶е̶т̶с̶т̶в̶е̶н̶н̶о̶с̶т̶ь̶ю̶ культурой труда работников с дружественных республик, которые на весы могут ставить различные предметы, протирать с усердием поверхность, опереться да и присесть... Надеюсь Вы понимаете какое примерно может быть соотношение шумов к полезному сигналу ?
Может надо что то "в консерватории поправить"?... Может проблема в цикле или аппаратная?
Скачки это дело второе , первое, вы все пропускаете- при включении долгий выход на входной сигнал, при глубоком стеке и длинным тактом ... Фильтр можно любой использовать , нужна обвязка фильтра ,что бы на выходе сразу установился уровень сигнала, а потом он усреднился.
Электронщик до мозга костей и не только

Аватара пользователя
Phazz
Полковник
Сообщения: 2064
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 249
Откуда: Сургут
Имя: Анатолий

Цифровой фильтр

#44

Сообщение Phazz » 23.08.2022{, 15:07}

А долгий это сколько?

Аватара пользователя
Rovki
Полковник
Сообщения: 4485
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 236
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Цифровой фильтр

#45

Сообщение Rovki » 23.08.2022{, 18:39}

Phazz писал(а):
23.08.2022{, 15:07}
А долгий это сколько?
Если стек 100 ,такт 100мс =10сек , нужно как в цифровом тестере- подсоединил щупы и сразу же видно реальные показания ...В моем варианте так и есть ...
Электронщик до мозга костей и не только

Аватара пользователя
Phazz
Полковник
Сообщения: 2064
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 249
Откуда: Сургут
Имя: Анатолий

Цифровой фильтр

#46

Сообщение Phazz » 23.08.2022{, 18:57}

Rovki, по первому значению наверное действительно не правильно выводить. Зачем Вам стэк в 100 ячеек? То есть если у вас фактически пропали показания, вы еще 10 секунд будете наблюдать плавное снижение. Мне кажется срез из 10 будет вполне комфортный по времени выхода в режим и информативный.

Аватара пользователя
Rovki
Полковник
Сообщения: 4485
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 236
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Цифровой фильтр

#47

Сообщение Rovki » 23.08.2022{, 20:40}

Phazz писал(а):
23.08.2022{, 18:57}
Rovki, по первому значению наверное действительно не правильно выводить. Зачем Вам стэк в 100 ячеек? То есть если у вас фактически пропали показания, вы еще 10 секунд будете наблюдать плавное снижение. Мне кажется срез из 10 будет вполне комфортный по времени выхода в режим и информативный.
Если будет помеха в 100% от уровня сигнала в течении одного (даже) такта ,то при 10 ячеек будет скачек показаний в 10% , это при 10в сигнала целый вольт , а у меня после запятой 2 знака. :smile427: . Необходимо хотябы 1%...В моем методе при включении идет усреднение 1из 1,2из 2,3из3 ,...100из 100 меняется делитель суммы по мере заполнения стека).После заполнения стека делитель становится 100, до выключения. Похож на ПИД чем то , вначале Д, потом И ... :) .Если писать в коде ,то можно сделать проще- при первом изменении сигнала на входе ,после включения , заполнить им весь массив ,не меняя делитель, Но все же думаю делать скользящий делитель лучше , помехи первоначальные будут сглажены быстрее. :smile37:

Отправлено спустя 7 минут 46 секунд:
Вероятность того что при включении питания будет ноль на выходе несравненно выше(при наличии на входе 12в)-100% , чем удар помехи в 1 такте(одном из 100) .

Отправлено спустя 4 минуты 38 секунд:
Показания при выключении как раз мало кого интересуют , Тем более при выключении погаснет сразу экран...

Отправлено спустя 2 минуты 1 секунду:
У меня в индикаторе нет отдельного входа для измерения напряжения , есть только - и + (до 24в питание)
Электронщик до мозга костей и не только

Аватара пользователя
Phazz
Полковник
Сообщения: 2064
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 249
Откуда: Сургут
Имя: Анатолий

Цифровой фильтр

#48

Сообщение Phazz » 23.08.2022{, 21:17}

Да я имею ввиду напряжение на датчике, например обрыв кабеля. Ладно, понятно что вы уже не свернёте. Но у вас явно слишком большая глубина фильтрации от туда и проблемы. И при изменении значений датчика вы реальные показания увидите только через 10 секунд. Вы считаете это нормальным?

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

Цифровой фильтр

#49

Сообщение Dryundel » 23.08.2022{, 21:17}

Rovki писал(а):
23.08.2022{, 20:55}
Если будет помеха в 100% от уровня сигнала в течении одного (даже) такта ,то при 10 ячеек будет скачек показаний в 10% , это при 10в
А вот для этого и существует медианный фильтр. Именно для фильтрации скачков его и ставят перед бегущим средним.
Но Вам же теория пофигу. Так что продолжайте :smile14: .
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

Аватара пользователя
Phazz
Полковник
Сообщения: 2064
Зарегистрирован: 17.10.2016{, 15:38}
Репутация: 249
Откуда: Сургут
Имя: Анатолий

Цифровой фильтр

#50

Сообщение Phazz » 23.08.2022{, 21:20}

Все таки я ни как не понимаю смысла фильтрации в 10 секунд. Что она вам дает?

Аватара пользователя
Rovki
Полковник
Сообщения: 4485
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 236
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Цифровой фильтр

#51

Сообщение Rovki » 24.08.2022{, 13:52}

Dryundel писал(а):
23.08.2022{, 21:17}
Rovki писал(а):
23.08.2022{, 20:55}
Если будет помеха в 100% от уровня сигнала в течении одного (даже) такта ,то при 10 ячеек будет скачек показаний в 10% , это при 10в
А вот для этого и существует медианный фильтр. Именно для фильтрации скачков его и ставят перед бегущим средним.
Но Вам же теория пофигу. Так что продолжайте :smile14: .
Если эти два фильтра поставить последовательно ,то время не ускорится . Даже если нет помехи , фильтр будет так же долго выходить на входной сигнал, что тут не понятно, Я вам про Фому ,а вы мне про Ерему. Я ж писал- теорию проходил 40 лет назад...

Отправлено спустя 2 минуты 30 секунд:
Phazz писал(а):
23.08.2022{, 21:20}
Все таки я ни как не понимаю смысла фильтрации в 10 секунд. Что она вам дает?
Да я рад бы 1сек,но значения прыгают, может конечно спалил внутренний источник опорного напряжения :smile37: надо другую есп попробовать ...
Электронщик до мозга костей и не только

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

Цифровой фильтр

#52

Сообщение Dryundel » 24.08.2022{, 14:12}

Rovki писал(а):
24.08.2022{, 13:54}
Если эти два фильтра поставить последовательно ,то время не ускорится . Даже если нет помехи , фильтр будет так же долго выходить на входной сигнал, что тут не понятно, Я вам про Фому ,а вы мне про Ерему.
А если включить мозги, то Фома останется не при делах.
Вам уже хором пишут:
Phazz писал(а):
23.08.2022{, 21:17}
у вас явно слишком большая глубина фильтрации от туда и проблемы.
Phazz писал(а):
23.08.2022{, 18:57}
Rovki, по первому значению наверное действительно не правильно выводить.
Phazz писал(а):
23.08.2022{, 21:20}
Все таки я ни как не понимаю смысла фильтрации в 10 секунд. Что она вам дает?
Вы же уперлись в ворота которые заперты и долбите по одному месту. Типа:
Rovki писал(а):
23.08.2022{, 20:55}
Если будет помеха в 100% от уровня сигнала в течении одного (даже) такта ,то при 10 ячеек будет скачек показаний в 10% , это при 10в
Когда явная помеха ( сильно отклоненное значение ) будет отфильтровано медианой, не потребуется такой сумасшедшей глубины фильтрации бегущего среднего и время итераций тоже можно уменьшить.
Вот здесь что не понятно?

Дальше могла бы следовать теория настройки времени итераций для спарки медиана+экспонента в зависимости от характеристик сигнала. Но Вы же и так все знаете, преподавали как никак. Поэтому помолчу.
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

Аватара пользователя
Rovki
Полковник
Сообщения: 4485
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 236
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Цифровой фильтр

#53

Сообщение Rovki » 24.08.2022{, 17:46}

Спасибо за понимание. Я понимаю , что это может быть частным случаем , но я показал на графиках ,как ведет себя функция на моем фильтре и так она будет работать хорошо при любой длине стека. Вы ,Андрей постите чужие тексты, а на вопрос что будет если соединить два фильтра последовательно ,так и не ответили потому как эффекта ,нужного мне не получится... Естественно при глубине 10 ,время выхода на уставку уменьшится , но точность ухудшится ...Поэтому нужно предлагать и сравнивать разные фильтры при одинаковых параметрах, а не утверждать что кто то идиот и применяет 100 ячеек.Вот и сравнивайте все ваши фильтры при одинаковых условиях- стек 100, такт 100мс.например :smile37:
Электронщик до мозга костей и не только

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

Цифровой фильтр

#54

Сообщение Dryundel » 24.08.2022{, 19:03}

Rovki писал(а):
24.08.2022{, 17:46}
а на вопрос что будет если соединить два фильтра последовательно ,так и не ответили потому как эффекта ,нужного мне не получится...
А как же их не соединять? Об этом писали и не только я.
arisov77 писал(а):
22.08.2022{, 22:47}
От подобных мельканий мне помогло использование нескольких последовательных фильтров: медианный (по 3 значениям) + "итерационный" + медианный + "итерациональный" + экспоненциальное бегущее среднее + накапливающее среднее. Пробовал разные комбинации, менял местами фильтры - но только в такой последовательности добился наименьших мельканий.
Dryundel писал(а):
21.08.2022{, 18:32}
Так вот фильтрация шума и фильтрация помех ЦИФРОВОГО сигнала осуществляется разными фильтрами и с разной частотой дискретизации (тактирования).
А вот как правильно рассчитать параметры - это уже теория.
Rovki писал(а):
24.08.2022{, 17:46}
Естественно при глубине 10 ,время выхода на уставку уменьшится , но точность ухудшится
Абсолютная профанация и непонимание процесса.
Rovki писал(а):
24.08.2022{, 17:46}
Поэтому нужно предлагать и сравнивать разные фильтры при одинаковых параметрах, а не утверждать что кто то идиот и применяет 100 ячеек.
А я попытался это сделать, но теория Вам не заходит. Вы же все знаете, образование имеете не гуманитарное, эхолот сделали и уже 30 лет преподаете науку о фильтрах. А вот правильно скомпоновать и настроить не можете. То ли сапожник без сапог, то ли лыжи не едут.
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

arisov77
Рядовой
Сообщения: 51
Зарегистрирован: 11.06.2016{, 12:42}
Репутация: 7
Откуда: Инза

Цифровой фильтр

#55

Сообщение arisov77 » 24.08.2022{, 20:00}

Dryundel писал(а):
24.08.2022{, 19:03}
...А вот как правильно рассчитать параметры - это уже теория...
Я с теорией на Вы... :D
Я делал так: выходные сигналы с АЦП и после фильтров подавал на плоттер https://alexgyver.ru/lessons/serial/ и наглядно видел все шумы. И экспериментальным подбором типов фильтров, их коэффициентов и последовательностью включений добился "идеальной" для моего применения "прямой" при постоянном сигнале и приемлемой реакции (менее 1 сек.) на изменение полезного сигнала. Последний фильтр "накапливающее среднее" можно было не использовать, но так как по скорости у меня ещё был запас, то сделал "контрольный выстрел".

Аватара пользователя
Rovki
Полковник
Сообщения: 4485
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 236
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Цифровой фильтр

#56

Сообщение Rovki » 25.08.2022{, 09:07}

Dryundel писал(а):
24.08.2022{, 19:03}
Rovki писал(а):
24.08.2022{, 17:46}
а на вопрос что будет если соединить два фильтра последовательно ,так и не ответили потому как эффекта ,нужного мне не получится...
А как же их не соединять? Об этом писали и не только я.
arisov77 писал(а):
22.08.2022{, 22:47}
От подобных мельканий мне помогло использование нескольких последовательных фильтров: медианный (по 3 значениям) + "итерационный" + медианный + "итерациональный" + экспоненциальное бегущее среднее + накапливающее среднее. Пробовал разные комбинации, менял местами фильтры - но только в такой последовательности добился наименьших мельканий.
Dryundel писал(а):
21.08.2022{, 18:32}
Так вот фильтрация шума и фильтрация помех ЦИФРОВОГО сигнала осуществляется разными фильтрами и с разной частотой дискретизации (тактирования).
А вот как правильно рассчитать параметры - это уже теория.
Rovki писал(а):
24.08.2022{, 17:46}
Естественно при глубине 10 ,время выхода на уставку уменьшится , но точность ухудшится
Абсолютная профанация и непонимание процесса.
Rovki писал(а):
24.08.2022{, 17:46}
Поэтому нужно предлагать и сравнивать разные фильтры при одинаковых параметрах, а не утверждать что кто то идиот и применяет 100 ячеек.
А я попытался это сделать, но теория Вам не заходит. Вы же все знаете, образование имеете не гуманитарное, эхолот сделали и уже 30 лет преподаете науку о фильтрах. А вот правильно скомпоновать и настроить не можете. То ли сапожник без сапог, то ли лыжи не едут.
1/ опять нет конкретного ответа на конкретный вопрос.
2.То вы говорите ,что цифра это не сигнал ,то что помеха это не шум...(интересно- частые помехи это уже шум :D или вы их по спектру отличаете или уровню) Для ВЧ фильтра, например нет разницы, что это сигнал, помеха или шум , все что выше частоты среза он не пропускает(ослабляет) . В сигнале- полезный сигнал +шум(помеха) складываются, получаются гармоники , а не отдельно друг от друга существуют. Для цифровых фильтров- цифровая фильтрация, естественно (программная реализация). Для аналоговых- аналоговая(аппаратная реализация) .
3. Опять голословно ,безапелляционно ...О глубине стека говорят в фильтрах со среднем ,а не вообще ..И там чем больше стек ,тем точнее приближение ,но дольше по времени ,при одинаковой частоте тактирования.
4.Пытаться сделать - это схема, удовлетворяющая требованиям(быстрый выход на значение и отсутствие мельканий значений на индикаторе) , а не теория и тем боле компиляция...

Отправлено спустя 3 минуты 1 секунду:
arisov77 писал(а):
24.08.2022{, 20:00}
Dryundel писал(а):
24.08.2022{, 19:03}
...А вот как правильно рассчитать параметры - это уже теория...
Я с теорией на Вы... :D
Я делал так: выходные сигналы с АЦП и после фильтров подавал на плоттер https://alexgyver.ru/lessons/serial/ и наглядно видел все шумы. И экспериментальным подбором типов фильтров, их коэффициентов и последовательностью включений добился "идеальной" для моего применения "прямой" при постоянном сигнале и приемлемой реакции (менее 1 сек.) на изменение полезного сигнала. Последний фильтр "накапливающее среднее" можно было не использовать, но так как по скорости у меня ещё был запас, то сделал "контрольный выстрел".
Это похвально. Метод проб и ошибок ни кто не отменял ,опять же это эксперимент, практика. Но меня интересовал в первую очередь мгновенный выход фильтра на уставку после включения питания ...а не последующая его работа(тут все понятно)
Электронщик до мозга костей и не только

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

Цифровой фильтр

#57

Сообщение Dryundel » 25.08.2022{, 11:23}

Ох Rovki, как же с Вами не легко.
Rovki писал(а):
25.08.2022{, 09:10}
опять нет конкретного ответа на конкретный вопрос.
Видимо и не было конкретного вопроса. На что Вам еще не ответили?
Rovki писал(а):
25.08.2022{, 09:10}
То вы говорите ,что цифра это не сигнал ,то что помеха это не шум... (и далее по тексту бред про гармоники)
Именно так. Попытайтесь это хоть как то осознать и принять.
ШУМ - шумят например транзисторы. Уровень отклонения шума от полезного сигнала имеет определенную амплитуду и не выходит за ее пределы.
ПОМЕХА - явное короткое отклонение от уровня сигнала(шума).
ЦИФРА(цифровой поток) - это ряд значений имеющий частоту оцифровки. Эта частота постоянна и неизменна. Больше никаких частот в нем нет не высоких не низких. ВООБЩЕ НИКАКИХ!

4,5,4,6,5,6,5,4,5,6,20,4,5,4,4,5,5,4,6,4,6,5,4,5,30,4,5,6,5,4,5,6,4,5,5,4,6

Вто поток значений. Их вывод осуществляется с периодом 10 мс, т.е с постоянной частотой 100Гц.
Где Вы видите какие нибудь частоты еще? Где высокие? Где низкие? Как предполагаете фильтровать по полосам частот?
***
Конечно же существуют методы выделять частоты и в цифровом сигнале. Для этого применяются достаточно сложные преобразования Фурье. Но это вообще отдельная песня и к данной теме не имеет отношения от слова совсем. И боже упаси Вас цепляться за этот абзац. Мне его Вам вообще не объяснить.
***
Вернемся к нашим баранам(цифрам)
Как видно из примера, основная масса цифр находится в пределах от 4 до 6 - ЭТО ШУМ.
Есть отдельные всплески 20 и 30 но периоды появления этих всплесков не постоянны и очень сильно отличается от периодов шумового изменения.
Так вот если пропустить этот поток цифр через медианный фильтр из трех с периодом выборки те же 10мс, то мы получим точно такой же ряд цифр, но уже без этих 20 и 30, т.к. они заменятся на 4, 5 или 6. Делать выборку чаще смысла нет, т.к. цифры в потоке чаще не изменяются(мы так условились).

5,6,20 - медиана 5
6,20,4 - медиана 4
20,4,5 - медиана 4

ВСЁ! - мы отсеяли помехи. Запаздывание результирующего графика всего на одну итерацию - 10мс (ни о чем) Кроме того частично отсеялись 4 и 6 , стало больше пятерок. А это означает что шумы тоже частично отсеялись но не сильно.

Теперь остается сгладить шумы. Сгладить - значит усреднить. У нас есть условие - запаздывание должно быть 1 сек. Для нормальной фильтрации сигнала это безумно большой период, но для аккумулятора сойдет
Значит время тактирования фильтра равно 1000мс деленное на глубину фильтрации(количество ).
1000/100 = 10мс
1000/32 = 31мс
1000/8 = 125мс
Т.е. Для одного и того же запаздывания необходимо рулить сразу двумя параметрами - тактированием и глубиной. Тут уже выбираем золотую середину. Либо загружаем контроллер, либо уменьшаем глубину.

Вот и вся песня, если в двух словах. Остальное тонкости.
Rovki писал(а):
25.08.2022{, 09:10}
О глубине стека говорят в фильтрах со среднем ,а не вообще ..И там чем больше стек ,тем точнее приближение
Точнее приближение к чему? К средней температуре по больнице? Или к средней цене раков которые вчера по 5, а сегодня по 3?
Вы что измеряете то? Реальные данные или супер-усредненное значение? Если так переживаете за спокойствие следящего за показаниями, то просто установите на индикатор цифру 10,000 и забудьте про измерение. Оно вообще не потребуется?
Rovki писал(а):
25.08.2022{, 09:10}
Но меня интересовал в первую очередь мгновенный выход фильтра на уставку после включения питания ...
:smile14:
О какой уставке идет речь? Вроде говорили про показания? Или вы хотите сделать первоначальную уставку?
Тогда вообще не проблема. Изначально забейте ваш стек десяткам(уставкой) и дело с концом. Дальше эти десятки будут усредняться с реальными показаниями.
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

Аватара пользователя
Rovki
Полковник
Сообщения: 4485
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 236
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Цифровой фильтр

#58

Сообщение Rovki » 25.08.2022{, 13:09}

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

Именно это я и делаю в своем алгоритме при включении- нули не считаются ,а сумма делится на переменный делитель, пока стек заполняется все .
Вариант с забиванием стека уже рассматривался мною выше. Но проще оказалось суммировать значения со входа и менять делитель при включении, а потом как обычно.
Электронщик до мозга костей и не только

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

Цифровой фильтр

#59

Сообщение Dryundel » 25.08.2022{, 16:17}

Rovki писал(а):
25.08.2022{, 13:09}
а если низкочастотная помеха ,например 50гц?
А вот это можно рассматривать по разному. Если полезный сигнал на который наложена пульсация в 50Гц имеет гораздо больший, период, т.е изменяется гораздо медленнее, а амплитуда пульсации меньше - то эта пульсация для такого сигнала - это ШУМ. Фильтруем бегущим средним с периодом дискретизации немного большей или чуть меньшим, чем длина полуволны такого шума.

В случае если полезный сигнал гораздо выше по частоте и имеет гораздо меньшую амплитуду, то мы сначала фильтруем эту пульсацию(50Гц) от полезного сигнала, получаем более менее чистую синусоиду, а потом накладываем ее в противофазе на исходный сигнал. Математически это банальное вычитание. Все что осталось и есть отфильтрованный полезный сигнал.

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

А запаздывание сигнала на 10 секунд - это бред.
Rovki писал(а):
25.08.2022{, 13:09}
Именно это я и делаю в своем алгоритме при включении- нули не считаются ,а сумма делится на переменный делитель, пока стек заполняется все .
Уже измерили время исполнения вашего кода?
Удачи в новых открытиях. Тут Нобелем попахивает. :)
Пользовательские блоки на сайте FLPROG - BLOCK
Выразить благодарность

Аватара пользователя
Rovki
Полковник
Сообщения: 4485
Зарегистрирован: 22.04.2016{, 17:25}
Репутация: 236
Откуда: Чехов
Имя: Анатолий
Контактная информация:

Цифровой фильтр

#60

Сообщение Rovki » 25.08.2022{, 17:34}

А шум 50гц это не от транзисторов ,надеюсь. А может наводки (еще одно название) ?
Для АКБ это не бред ,даже минута , и для термометра :smile427: Я ж писал где то, мне фильтр не для системы регулирования. Универсального фильтра не просил, это ваши слова.
Для измерения нужно вернуться, найти время(точнее место на столе).
1661437951502.jpg
Обычно сделал и забыл . В очереди еще 10 дел.. :smile171: На очереди ТВ бокс, пром панель на андроиде...модули ввода\вывода USR
Электронщик до мозга костей и не только

Ответить

Вернуться в «Новые»