Pyku_He_oTTyda 0 28 июня, 2019 Опубликовано 28 июня, 2019 · Жалоба Вам точность измерения нужна или красивые цифры? Введите зону нечувствительности, к примеру, 4.98 - 5.02, и будете получать красоту на дисплее. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 28 июня, 2019 Опубликовано 28 июня, 2019 · Жалоба 10 hours ago, pokk said: Пока из решений вижу снять цифровой сигнал(значения АЦП) построить спектр(найти частоту среза) и посчитать цифровой фильтр. Если у вас случайный шум, то и спектр вы каждый раз будете получать случайный. Соответственно случайной у вас получится и частота среза если таковую разглядите. У вас 1000 отсчетов усреднено и все равно остался шум. Это значит дальше фильтровать в лоб бесполезно.Будет только увеличиваться инерционность показаний. Существенно уменьшить шум (раз в 10) может применение априорной информации о модели измеряемого процесса. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 28 июня, 2019 Опубликовано 28 июня, 2019 · Жалоба Мельтешение цифр может раздражать, я прекрасно понимаю ТС. И ладно бы одна последняя цифра, но на границе могут меняться все (а то и позицию точки придется двигать). Это неприятно выглядит и на LED, а на тормозных знакосинтезирующих LCD вообще погано смотрится (а на "негативных" синих особенно). Потому - гистерезис. Причем отключаемый - значения меняются, гистерезис отключен. В течении некоторого количества обновлений не меняется - включаем. Как изменилось больше чем на значение гистерезиса - обновляем и вновь отключаем гистерезис. А дрожание +/- 1 lsb тоже можно блокировать, чуть иначе. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Plain 199 28 июня, 2019 Опубликовано 28 июня, 2019 · Жалоба Для каждых 1000 отсчётов считать частое и гистерезис, например, 1%, т.е. если 10 из них были равны текущему, то оно остаётся, иначе заменяется частым. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
RobFPGA 30 28 июня, 2019 Опубликовано 28 июня, 2019 · Жалоба Приветствую! 6 minutes ago, rx3apf said: Мельтешение цифр может раздражать, я прекрасно понимаю ТС. И ладно бы одна последняя цифра, но на границе могут меняться все (а то и позицию точки придется двигать). Это неприятно выглядит и на LED, а на тормозных знакосинтезирующих LCD вообще погано смотрится (а на "негативных" синих особенно). ... Ха- ха - ха - так может вообще нафиг мерить - пусть TC сделает установку нужных значений индикации кнопкой - сколько нравится столько и поставит - цифры будут стоять как вкопанные . TC поставил задачу БЕЗ решения (за исключением варианта с кнопками). Тем более он сам говорит что сигнал ему известен (почти) 12 hours ago, pokk said: При этом сам сигнал "почти" постоянный, разве что под действием температуры может уплывать. Надо бы сначала TC решить системную задачу - определиться с требованиями к входному сигналу и точности измерениям и индикации - а уж потом придумывать чудо нейросеть для приятной индикации неизвестного измеренного значения. Удачи! Rob. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Leka 0 28 июня, 2019 Опубликовано 28 июня, 2019 · Жалоба Поменять способ отображения (уже советовали). Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 29 июня, 2019 Опубликовано 29 июня, 2019 · Жалоба Выдавать результат измерения не 10 раз в секунду, а раз в две или больше секунд. Выбрать время, чтобы не раздражало мельтешение цифр и чтобы изменение измеряемой величины отслеживалось. И фильтровать соответственно. Цифры должны скакать, а как часто, зависит от того, что меряешь. Любой гистерезис - потеря точности. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 29 июня, 2019 Опубликовано 29 июня, 2019 (изменено) · Жалоба Гистеризис на 1 lsb точность не ухудшает (если включается после стабилизации показаний), дергается на единицу или нет, а реальное-то значение одно и то же. А интервал обновления больше секунды это в большинстве случаев крайне неудобно. 10 - много, 4..5 удобно, до 2 терпимо. Но смена всех разрядов все равно раздражающий фактор. Изменено 29 июня, 2019 пользователем rx3apf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 29 июня, 2019 Опубликовано 29 июня, 2019 · Жалоба Гистерезис на 1LSB - математическая несуразность. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
rx3apf 0 29 июня, 2019 Опубликовано 29 июня, 2019 (изменено) · Жалоба Ошибаетесь. Впрочем, поскольку толковать можно по-разному, я имел в виду, что изменение на 1 lsb от значения на экране после включения гистерезиса не должно вызывать изменение показаний. Изменено 29 июня, 2019 пользователем rx3apf Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 29 июня, 2019 Опубликовано 29 июня, 2019 · Жалоба То есть, когда значение 40 изменится на 39, мы его не индицируем? Те-ря-ем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 15 29 июня, 2019 Опубликовано 29 июня, 2019 · Жалоба +1. Сколько не встречал попыток введения гистерезиса - везде получалось криво. Потому что кривая сама идея. Добавлю. Было очень забавно, когда на системе с таким гистерезисом в одну единицу пользователь никак не мог установить значение отображаемого параметра, потому что гистерезис не хотел отображать изменение параметра на единицу! :) Пользователь, условно говоря, крутит резистор, пытаясь установить напряжение на нём 5.00. Доводит до 4.99, замедляется, программа решает, что пора включать гистерезис. Пользователь пытается докрутить до 5.00, но фиг там:) Крутит сильнее, параметр перескакивает на 5.01, потом по инерции сразу дальше. И потом то же самое, только в другую сторону :-) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
k155la3 27 29 июня, 2019 Опубликовано 29 июня, 2019 · Жалоба Если выч.ресурсы есть, может гистограмма ? К томуже можно будет получить инф. о зашумленности сигнала. IMHO Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 29 июня, 2019 Опубликовано 29 июня, 2019 · Жалоба 1 час назад, AHTOXA сказал: Сколько не встречал попыток введения гистерезиса - везде получалось криво. Вот еще пример. На входе i, на выходе adc_press_value. Таймаут adc_press_to где-то увеличивается в мс. Итого: если переменная не изменилась больше чем на 2 lsb, то меняться будет раз в 10 секунд. Если изменилась более чем на 2 lcb, то обновиться мгновенно. Пользуюсь серийно - юзеры довольны. i = (i / 10) * 75006 / 1000000; if((myabs(adc_press_value - i) > 2) || (adc_press_to > 10000)) { adc_press_value = i; adc_press_to = 0; } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 15 29 июня, 2019 Опубликовано 29 июня, 2019 · Жалоба 1 час назад, adnega сказал: Итого: если переменная не изменилась больше чем на 2 lsb, то меняться будет раз в 10 секунд. Если это просто отображение какой-то величины, то это может быть приемлемо. А если это обратная связь на действия пользователя, как в описанном мной случае, то могут возникнуть проблемы. Пользователь уже докрутил до нужной величины, а отображается другая. Пользователь сбит с толку. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться