ViKo 1 1 июля, 2019 Опубликовано 1 июля, 2019 · Жалоба Для меня, единственный случай, когда не нужно выдавать результат на индикацию, это если он совпадает с предыдущим (гистерезис на 1LSB, ага). Чтобы не тратить ресурсы напрасно, особенно, на графическом ЖКИ. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 1 июля, 2019 Опубликовано 1 июля, 2019 · Жалоба 7 часов назад, haker_fox сказал: Более того, ваши показания станут недостоверными Я правильно понимаю, что при измерении получается не одно число, а среднее с некоторым доверительным диапазоном? Причем, если вероятность попадания истинного значения в диапазон увеличиваем, то и сам диапазон увеличивается. Но это справедливо только для сигналов с гауссовским распределением. Или если к некоторому истинному значению добавили систематическую ошибку и аддитивный белый гауссовский шум. Утверждается, что любое показание из диапазона имеет одинаковую вероятность совпадения с истинным значением. Например, было измерение 5.00+-0.1В, а стало 4.99+-0.1В. Если и в первом и во втором случае на индикаторе будет 5.00, то это с одинаковой вероятностью соответствует истинному значению. Может, это и есть путь избежания телепания? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 15 1 июля, 2019 Опубликовано 1 июля, 2019 · Жалоба 11 часов назад, adnega сказал: Теперь будем знать. Я не ожидал от Forger такого, честно. Ну наконец-то, настало прозрение :)))) Я вам больше скажу, он до сих пор не понял, зачем вы ему привели пример с числами с плавающей точкой. У него же "шаблон на C++"! :D Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 1 июля, 2019 Опубликовано 1 июля, 2019 · Жалоба 3 часа назад, ViKo сказал: Согласен с haker_fox-ом. А кого раздражает, что цифры на индикаторе меняются, пусть не смотрит долго. Делал светодиодные часы с датчиками температуры/влажности/давления/радиации. Если там не предпринять особые меры, то в моменты прохода медленно меняющегося сигнала по границе между соседними значениями будет неприятное телепание. Это действительно смотрится некрасиво. Поборол гистерезисом. Второй пример: прибор с ЖК-индикатором, малопотребляющий, всегда в спячке, графический экран обновляет редко и маленькими (1:8) прямоугольными областями. Если возникает телепание, то там в принципе не удается что-то внятное считать. Поборол БИХ-ФНЧ + гистерезис. Есть много задач, где с этим можно не париться, но есть задачи, где без борьбы с телепанием, ну, никак не обойтись. Видимо, у ТС одна из таких. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 1 июля, 2019 Опубликовано 1 июля, 2019 · Жалоба 9 минут назад, adnega сказал: Делал светодиодные часы с датчиками температуры/влажности/давления/радиации. Если там не предпринять особые меры, то в моменты прохода медленно меняющегося сигнала по границе между соседними значениями будет неприятное телепание. Это действительно смотрится некрасиво. Поборол гистерезисом. Как часто обновляли измерения температуры/влажности/давления/радиации на индикаторе, что они телепалися туда-сюда? Зачем так часто? :-) 13 минут назад, adnega сказал: Поборол БИХ-ФНЧ + гистерезис А это проблема не индикации, а шумного сигнала и измерителя. Идеальный измеритель не должен скакать более, чем на разряд, при измерении постоянного сигнала. А если скачет больше, такие разряды и показывать незачем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 1 июля, 2019 Опубликовано 1 июля, 2019 · Жалоба 15 minutes ago, adnega said: будет неприятное телепание. Это действительно смотрится некрасиво. Поборол гистерезисом. Гистерезис у вас не что иное как инерционность. С тем же успехом вы бы могли просто реже обновлять данные на индикаторе. Гистерезис, как видно на графиках, не уменьшает шум. У TC проблема в том, что он не знает ничего ни о шуме ни о сигнале. Он уже сделал все что мог усреднив по 1000 отсчетам. Теперь у него оставшийся шум и сигнал в одной полосе. И дальше непонятно то ли он глядя на индикатор хочет понять поведение сигнала выделив его из шума чисто визуально и ему мешает это сделать переключения старших разрядов, то ли он хочет замаскировать шум от наблюдателя выдав 3 разряда как значащие. Эт две разные задачи. Я бы предложил метод пикового детектора, причем знак детектора выбирать в зависимости от того какие показания: нижние или верхние для наблюдателя хуже. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 1 июля, 2019 Опубликовано 1 июля, 2019 · Жалоба 7 минут назад, AHTOXA сказал: зачем вы ему привели пример с числами с плавающей точкой. У него же "шаблон на C++"! :D Одно время работал с коллегой, который сейчас какой-то руководитель в Яндексе, а ранее в команде ВУЗа занял какое-то место на мировой олимпиаде по программированию. Он любил С++, шаблоны и задавать интересные задачки. Как-то раз задал задачку про числа с плавающей точкой. Мол, есть большой массив вещественных чисел, как будешь складывать? Я предложил в идеальном случае сначала все отсортировать, а потом сложить от маленьких чисел к большим - так ошибка будет минимальной. Вспомнилось сразу... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 22 1 июля, 2019 Опубликовано 1 июля, 2019 · Жалоба 31 minutes ago, AHTOXA said: Я вам больше скажу, он до сих пор не понял К двоим местным "братцам" я уже привык и не обращаю внимания на их наивные намеки, перешептывания, обнимашки и др. шалости ясельной группы. Но от вас вообще не ожидал такого - за глаза закидать какашками, даже не видя кода, судить о знаниях лишь по каким-то косвенным признакам ... Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 1 июля, 2019 Опубликовано 1 июля, 2019 · Жалоба 9 минут назад, ViKo сказал: Как часто обновляли измерения температуры/влажности/давления/радиации на индикаторе, что они телепалися туда-сюда? Зачем так часто? :-) 100 Гц. Так устроен движок, что отрисовывает экран 100 раз в секунду. Если меньше, то бегущие строки уже бегут рывками. 9 минут назад, ViKo сказал: если скачет больше, такие разряды и показывать незачем. И я про это говорю. Просто у меня телепание в младших разрядах не касается старших на сколько-то lsb - т.е. гистерезис. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 22 1 июля, 2019 Опубликовано 1 июля, 2019 · Жалоба 6 minutes ago, adnega said: Вспомнилось сразу... Специально для "потомственных танкистов": я в курсе подобных "особенностей" плавучки. Теперь дошло? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AHTOXA 15 1 июля, 2019 Опубликовано 1 июля, 2019 · Жалоба 8 минут назад, Forger сказал: Но от вас вообще не ожидал такого - за глаза закидать какашками, даже не видя кода, судить о знаниях лишь по каким-то косвенным признакам ... Вы меня с кем-то путаете. Я уже давно прямо в глаза вам говорю, что вы, скажем, так себе специалист. 7 минут назад, adnega сказал: 100 Гц. Так устроен движок, что отрисовывает экран 100 раз в секунду. Если меньше, то бегущие строки уже бегут рывками. Совершенно не обязательно частота перерисовки экрана должна быть равна частоте обновления параметра. 5 минут назад, Forger сказал: Специально для "потомственных танкистов": я в курсе подобных "особенностей" плавучки. Теперь дошло? Ну так расскажите нам, как ваш "шаблон на C++" для скользящего среднего работает с плавучкой, выполняя для каждого нового отсчёта "только одно сложение, одно вычитание и одно деление". 21 минуту назад, AlexandrY сказал: Гистерезис у вас не что иное как инерционность. С тем же успехом вы бы могли просто реже обновлять данные на индикаторе. Не совсем так. При изменении параметра больше чем на величину гистерезиса обновление произойдёт быстрее. Но в целом я согласен с вами, гистерезис в общем случае не решает проблем. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Forger 22 1 июля, 2019 Опубликовано 1 июля, 2019 · Жалоба 11 minutes ago, AHTOXA said: Я уже давно прямо в глаза вам говорю, что вы, скажем, так себе специалист. Вот теперь в глаза. Когда заканчиваются аргументы, в действие идут подобные грязные методы. Но кидать какашки в ответку уже буду. Не хочу уподобляться. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
ViKo 1 1 июля, 2019 Опубликовано 1 июля, 2019 · Жалоба 12 минут назад, AHTOXA сказал: Совершенно не обязательно частота перерисовки экрана должна быть равна частоте обновления параметра. Именно. Можно было гонять 1000 раз по бегущей строке один и тот же результат измерений. Это же температура, дай бог, если она она за 10 с меняется на 1LSB. А если даже и сильнее, раз в 2 с хватило бы за глаза. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
adnega 11 1 июля, 2019 Опубликовано 1 июля, 2019 · Жалоба 17 минут назад, ViKo сказал: Именно. Можно было гонять 1000 раз по бегущей строке один и тот же результат измерений. Это же температура, дай бог, если она она за 10 с меняется на 1LSB. А если даже и сильнее, раз в 2 с хватило бы за глаза. Так и делаю ;) Постил на третьей странице. На входе 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; } Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
AlexandrY 3 1 июля, 2019 Опубликовано 1 июля, 2019 · Жалоба 49 minutes ago, adnega said: 100 Гц. Так устроен движок, что отрисовывает экран 100 раз в секунду. Если меньше, то бегущие строки уже бегут рывками. Вот так будет если выводить 100 раз в сек - Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться