реклама на сайте
подробности

 
 
> Вопрос по индикации...
Legotron
сообщение Dec 23 2007, 12:57
Сообщение #1


инопланетянин
***

Группа: Свой
Сообщений: 236
Регистрация: 24-12-06
Из: Питер
Пользователь №: 23 832



Добрый день!

Подскажите пожалуйста, кто имел опыт работы с индикацией параметров на LCD.
Ворос заключается в том, как сгладить движение стрелки(на примере... можно и не тока стрелки)?

Есть 3 условия:
1 - скорость отображения изменения параметра не должна превышать X [ед/с]
2 - скорость обновления показа не должна быть меньше Y [fps]
3 - скорость поступления пар-ра Z [отсч/с]

Есть ли наработки по таким вещам?
Пока я думаю собрать цифровой либо интеполятор либо ресемплер, а потом ФНЧ и поставить. (а может и наоборот smile.gif )
Попутный вопрос, если фильтры делать для них надо коэфф. жестко считать, а если X,Y,Z параметры необходимо менять динамически?
А если пар-р Z случайная величина как быть? Да и Y может гулять...

Заранее спасибо!
Любая литература или совет будет мной очень приветствоваться smile.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
rezident
сообщение Dec 23 2007, 20:12
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Раз вывод через буфер, то синхронизировать нужно с выводом буфера. Поскольку частота поступления данных небольшая 1-2Гц, то ИМХО фильтровать значения не нужно. В крайнем случае можно реализовать плавающее среднее из двух-трех отсчетов.
Go to the top of the page
 
+Quote Post
Legotron
сообщение Dec 23 2007, 20:56
Сообщение #3


инопланетянин
***

Группа: Свой
Сообщений: 236
Регистрация: 24-12-06
Из: Питер
Пользователь №: 23 832



Цитата(rezident @ Dec 23 2007, 23:12) *
Раз вывод через буфер, то синхронизировать нужно с выводом буфера. Поскольку частота поступления данных небольшая 1-2Гц, то ИМХО фильтровать значения не нужно. В крайнем случае можно реализовать плавающее среднее из двух-трех отсчетов.

Если не фильтровать совсем, то получится так: я показываю через 20 мс (к примеру), через 1с значение меняется скачком(тоже возможно) как следствие стрелка переместится скачком, или я неправильно вас понял?
Go to the top of the page
 
+Quote Post
rezident
сообщение Dec 23 2007, 21:26
Сообщение #4


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Legotron @ Dec 24 2007, 01:56) *
Если не фильтровать совсем, то получится так: я показываю через 20 мс (к примеру), через 1с значение меняется скачком(тоже возможно) как следствие стрелка переместится скачком, или я неправильно вас понял?

У человеческого глаза имеется инерционность порядка 100мс. Если выводить изображение чаще, чем 18 раз в секунду (в кинематографе, например, кадр меняется 24 раза/сек), то глаз наблюдателя сам "отфильтрует" движение. Нюансы могут возникнуть лишь, если будет присутствовать стробоскопический эффект от внешних источников света с разностной частотой биений ниже указанной.
Для вашего же случая фильтр "скользящее среднее" ИМХО хорошо подходит. Используя скользящее среднее с периодом равным или чуть меньшим, чем поступление входных данных вы как раз получите плавное движение стрелки с текущему значению. Для этого вы должны иммитировать поступление данных в буфер синхронно с обновлением изображения. Допустим, если у вас период обновления 20мс, а данные поступают через 500мс, то можно использовать буфер с периодом 300-400мс. 400мс/20мс=20. Т.е. буфер фильтра на 20 значений. Каждый раз после обновления экрана, если нового отсчета еще нет, то вы иммитируете его, дописывая в буфер фильтра (плавающего среднего) значение последнего отсчета. Если же новый отсчет поступил, то заменяете последний отсчет его текущим значением и дописываете уже его в буфер фильтра.
Если вам не нравится фильтрация типа "простое слользящее среднее", то можете выбрать сами другой тип цифрового фильтра. http://www.may.nnov.ru/mak/DSP/Contents.shtml
P.S. указанные фильтры являются КИХ-фильтрами. Поэтому для нормальной их работы отсчеты (в вашем случае рефреш экрана) должны быть равномерными.
Go to the top of the page
 
+Quote Post
Legotron
сообщение Dec 23 2007, 21:55
Сообщение #5


инопланетянин
***

Группа: Свой
Сообщений: 236
Регистрация: 24-12-06
Из: Питер
Пользователь №: 23 832



А что посоветуете по поводу подстройки "налету" частоты среза фильтра?
Цитата
P.S. указанные фильтры являются КИХ-фильтрами. Поэтому для нормальной их работы отсчеты (в вашем случае рефреш экрана) должны быть равномерными.

А у БИХ могут быть неравномерными?
Go to the top of the page
 
+Quote Post
rezident
сообщение Dec 23 2007, 22:11
Сообщение #6


Гуру
******

Группа: Свой
Сообщений: 10 920
Регистрация: 5-04-05
Пользователь №: 3 882



Цитата(Legotron @ Dec 24 2007, 02:55) *
А что посоветуете по поводу подстройки "налету" частоты среза фильтра?

Можно глубину буфера фильтра менять. Но изменение не должно быть чаще, чем период заполнения всего буфера.
Цитата(Legotron @ Dec 24 2007, 02:55) *
А у БИХ могут быть неравномерными?
Честно говоря, я не очень хорошо подкован в теории, могу и глупость сморозить laughing.gif
ИМХО, если отсчеты неравномерные, то нужно вводить в конечную функцию фильтра временнУю зависимость входного параметра. Для равномерных отсчетов это как-то попроще, там только относительный номер отсчета играет роль.
Go to the top of the page
 
+Quote Post

Сообщений в этой теме


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 27th July 2025 - 15:43
Рейтинг@Mail.ru


Страница сгенерированна за 0.01443 секунд с 7
ELECTRONIX ©2004-2016