Easyelectronics.ru

Электроника для всех
Текущее время: 16 окт 2018, 08:57

Часовой пояс: UTC + 5 часов



    • JLCPCB - Прототипы 10 PCBs всего за 2$ (100*100mm, 2-layer)
    • Как мы делаем платы, смотрите на YouTube
    • Крупнейшая китайская фабрика прототипов. 300000+ заказчиков и 10000+ заказов в день!
    • LCSC - Крупнейший китайский онлайн магазин комплектующих.

Начать новую тему Ответить на тему  [ Сообщений: 23 ] 
Автор Сообщение
 Заголовок сообщения: Как из множества отсчетов выбрать достоверный?
СообщениеДобавлено: 23 окт 2017, 13:19 
Старожил
Аватара пользователя

Зарегистрирован: 05 фев 2013, 00:58
Сообщения: 3113
Откуда: Тольятти
Допустим, я произвел ряд измерений на фоне помех и получил значения:

2,1,3,2,3,4,1,2,3,25

Очевидно, что реальная величина находится где-то в районе числа 2 или 3. Но если взять среднюю величину, то получится 4.6, а я хотел бы получить около 2.5, что будет достовернее. Как решается такая задача?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как из множества отсчетов выбрать достоверный?
СообщениеДобавлено: 23 окт 2017, 13:25 
Старожил

Зарегистрирован: 19 мар 2013, 19:37
Сообщения: 2524
Откуда: Санкт-Петербург
По хорошему - надо построить модель возможных шумов/помех и в соответствии с ней разработать фильтр.
Но если по простому - отбрасываете какой-то процент самых больших и самых маленьких измерений, а остальные усредняете. Например, если из ваших 10 измерений отбросить по 2 или 3 сверху и снизу - получите как раз 2.5.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как из множества отсчетов выбрать достоверный?
СообщениеДобавлено: 23 окт 2017, 13:27 
Старожил
Аватара пользователя

Зарегистрирован: 01 ноя 2011, 23:51
Сообщения: 609
iev91 писал(а):
Допустим, я произвел ряд измерений на фоне помех и получил значения:

2,1,3,2,3,4,1,2,3,25

Очевидно, что реальная величина находится где-то в районе числа 2 или 3. Но если взять среднюю величину, то получится 4.6, а я хотел бы получить около 2.5, что будет достовернее. Как решается такая задача?


Я делал так - набрав определенное кол-во отсчетов выбрасывал максимум и минимум остальное усреднял. Можно придумать свою вариацию на эту тему.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как из множества отсчетов выбрать достоверный?
СообщениеДобавлено: 23 окт 2017, 13:27 
Старожил
Аватара пользователя

Зарегистрирован: 05 фев 2013, 00:58
Сообщения: 3113
Откуда: Тольятти
Мне надо всё это делать в боевых условиях, и обстановка может измениться в любую секунду. Модель устареет сразу же после построения.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как из множества отсчетов выбрать достоверный?
СообщениеДобавлено: 23 окт 2017, 13:34 
Старожил
Аватара пользователя

Зарегистрирован: 05 фев 2013, 00:58
Сообщения: 3113
Откуда: Тольятти
Значит, сначала надо их отсортировать? получаем

1,1,2,2,2,3,3,3,4,25

отбрасываем по 2 сверху и снизу

2,2,2,3,3,3

среднее 2.5. Ну, вроде бы оно.

aamonster, kos, спасибо за помощь.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как из множества отсчетов выбрать достоверный?
СообщениеДобавлено: 23 окт 2017, 13:54 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 4967
"Я делал так - набрав определенное кол-во отсчетов выбрасывал максимум и минимум остальное усреднял."
Поправка:
набрав определенное кол-во отсчетов выбрасывал N экстремумов от среднего по массиву. Остальное усреднял.
;)
Пики могут быть любой полярности. Как и их количество. Алгоритм можно оптимизировать или "тупо" по N=const, или по дельта<% ... но тогда можно выкатится в медианный фильтр.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как из множества отсчетов выбрать достоверный?
СообщениеДобавлено: 23 окт 2017, 14:03 
Старожил
Аватара пользователя

Зарегистрирован: 24 июл 2012, 13:54
Сообщения: 774
Нужно изучить природу шума и построить соответствующий фильтр. Классический фильтр для подавления единичных выбросов называется "медианный" фильтр. Предложенный вариант с отбрасыванием крайних и усреднением оставшихся есть соединение концепций медианной фильтрации и поиска среднего. Из простейших классических концептов не рассмотренным остался экспоненциальный фильтр, когда текущий сигнал вычисляется как x(z) = x(z-1) + K*(g(z) - x(z)), где x - это отфильтрованное значение, g -входной сигнал, а z - дискретное время. (этот фильтр как бы сглаживает входной сигнал).

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


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как из множества отсчетов выбрать достоверный?
СообщениеДобавлено: 23 окт 2017, 14:13 
Старожил
Аватара пользователя

Зарегистрирован: 01 ноя 2011, 23:51
Сообщения: 609
u37 писал(а):
"Я делал так - набрав определенное кол-во отсчетов выбрасывал максимум и минимум остальное усреднял."
Поправка:
набрав определенное кол-во отсчетов выбрасывал N экстремумов от среднего по массиву. Остальное усреднял.
;)
Пики могут быть любой полярности. Как и их количество. Алгоритм можно оптимизировать или "тупо" по N=const, или по дельта<% ... но тогда можно выкатится в медианный фильтр.


Ну вообщем то да.. :) Но так красиво я не смог сказать :)


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как из множества отсчетов выбрать достоверный?
СообщениеДобавлено: 23 окт 2017, 16:47 
Старожил

Зарегистрирован: 10 июн 2011, 23:01
Сообщения: 2973
можно и после медианного фильтра считать среднее,
но обычно считают среднеквадратичное отклонение и потом выкидывают отчёты вылезающие за 3, например, сигмы.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как из множества отсчетов выбрать достоверный?
СообщениеДобавлено: 23 окт 2017, 16:59 
Старожил
Аватара пользователя

Зарегистрирован: 28 дек 2016, 00:04
Сообщения: 251
Откуда: Россия, Москва
Хотел бы сделать небольшое дополнение. Если вы отсортируете значение и возьмете ровно (N/2)-ое то получите всеми понимаемое значение, называемое медианой или 50%-ый процентиль. Если отрежите 5% самых больших и возьмете максимальный элемент из оставшихся, также получите всеми понимаемое значение - 95%-ый процентиль. Процентиль говорит очень простую вещь - "N% замеров имеют значение X или меньше". Обычной практикой является вычислять 2-3 процентиля, например 90-ый, 95 и 99-ый.

Когда вы отрезаете с обоих сторон и считаете среднее, то получаете что-то, что никто кроме вас не понимает и мало кому о чем-то говорит. Вообще взятие среднего от каких-либо данных обычно очень плохая идея. Если вы будете показывать хотя бы среднее и максимум, это даст куда более полную картину.

_________________
https://eax.me/


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как из множества отсчетов выбрать достоверный?
СообщениеДобавлено: 23 окт 2017, 17:08 
Старожил
Аватара пользователя

Зарегистрирован: 05 фев 2013, 00:58
Сообщения: 3113
Откуда: Тольятти
Меня не интересуют крайние значения, они будут свидетельствовать о мощной помехе. Датчик будет срабатывать при отклонении величины в любую сторону, и мне надо исключить ложные срабатывания любой ценой. Поэтому хотелось бы из имеющегося массива выбрать наиболее достоверные значения.

Я намеренно привел пример, в котором одно значение выбилось сильно. Любое усреднение даст величину, сильно отличающуюся от значения, вокруг которого кучкуется основное большинство замеров.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как из множества отсчетов выбрать достоверный?
СообщениеДобавлено: 23 окт 2017, 17:30 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 4967
У медианного фильтра есть эффект удержания сигнала при его пропадании. Иногда это хорошо, а иногда нет. ;)
Например, пихаешь в розетку - видишь 220. Вынул щупы, а на приборе еще некоторое время висит 220, и потом резкий сброс.
Так что ... медиана не панацея.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как из множества отсчетов выбрать достоверный?
СообщениеДобавлено: 23 окт 2017, 17:36 
Старожил
Аватара пользователя

Зарегистрирован: 13 дек 2010, 23:15
Сообщения: 1781
Откуда: Киев
Ну так выше уже написали, если реальных сигнал колеблется в пределах некой величины и надо убрать лишь единичные выбросы, то Медианный_фильтр Пример 1 один из наиболее простых алгоритмов. Там по уму конечно рассчитывать надо, но можно и методом научного тыка подобрать окно.
А вот после него можно и усреднять или еще что-то.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как из множества отсчетов выбрать достоверный?
СообщениеДобавлено: 23 окт 2017, 17:50 
Старожил
Аватара пользователя

Зарегистрирован: 22 июл 2017, 11:48
Сообщения: 2359
Достоверный? Тот, который равен ожидаемому. :) шутка. в некотором роде.
Медианный фильтр, фильтр Калмана. Последний вообще часто используется в измерительной технике.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как из множества отсчетов выбрать достоверный?
СообщениеДобавлено: 23 окт 2017, 23:59 
Старожил

Зарегистрирован: 07 фев 2011, 21:00
Сообщения: 457
Откуда: Ханты-Мансийск
вместо изобретения велосипеда, может в книжку по статистике и метрологии заглянуть.


Вложения:
Screenshot_1.png
Screenshot_1.png [ 58.75 Кб | Просмотров: 1972 ]
Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как из множества отсчетов выбрать достоверный?
СообщениеДобавлено: 24 окт 2017, 00:15 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 4967
Вопрос еще не закрыт? ...
Тогда я хочу сказать, что отказался от алгоритмов, описанных выше (а-ля медианный). Выкидывать пики - значит портить сигнал. Вместо этого я применяю фильтрацию с переменной силой. Результат гораздо лучше.
Для тех, кто сомневается - вспоминайте радиоэлектронику. Что будет с сигналом, если из него вырезать сильный всплеск. Всплеск убрали, а как быть с хвостом этого всплеска? Он то остался, и его уже никак не устранить!! Ведь "среднее" от всплеска и его хвоста = 0, но удалив пик мы перегоняем остатки всплеска в полезный сигнал.
Не стоит оно того. Опять же - рецепт не универсальный.
А вообще, "релейные" алгоритмы никак не дружат с точностью. ))
IMHO


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как из множества отсчетов выбрать достоверный?
СообщениеДобавлено: 24 окт 2017, 00:32 
Старожил
Аватара пользователя

Зарегистрирован: 05 фев 2013, 00:58
Сообщения: 3113
Откуда: Тольятти
u37 писал(а):
я применяю фильтрацию с переменной силой. Результат гораздо лучше.

Расскажите, как менять силу.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как из множества отсчетов выбрать достоверный?
СообщениеДобавлено: 24 окт 2017, 00:50 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 4967
Как угодно.


Последний раз редактировалось u37 24 окт 2017, 01:09, всего редактировалось 1 раз.

Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как из множества отсчетов выбрать достоверный?
СообщениеДобавлено: 24 окт 2017, 01:05 
Старожил
Аватара пользователя

Зарегистрирован: 05 фев 2013, 00:58
Сообщения: 3113
Откуда: Тольятти
нууу... так я и сам умею, я просил объяснить методику...


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как из множества отсчетов выбрать достоверный?
СообщениеДобавлено: 24 окт 2017, 01:08 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 4967
Степень_сила фильтрации пропорционально изменению сигнала.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как из множества отсчетов выбрать достоверный?
СообщениеДобавлено: 24 окт 2017, 01:21 
Старожил
Аватара пользователя

Зарегистрирован: 05 фев 2013, 00:58
Сообщения: 3113
Откуда: Тольятти
Проблема в том, что термин "сила фильтрации" не определен.
Динамическое изменение полосы пропускания - правильно я понял? Активный шумодав?
Сильнее сигнал - полоса расширяется? Или наоборот?


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как из множества отсчетов выбрать достоверный?
СообщениеДобавлено: 24 окт 2017, 01:46 
Старожил

Зарегистрирован: 10 окт 2014, 00:48
Сообщения: 4967
Да, чем сильнее изменение, тем более проходит мимо фильтра.


Вернуться к началу
 Профиль  
 
 Заголовок сообщения: Re: Как из множества отсчетов выбрать достоверный?
СообщениеДобавлено: 25 окт 2017, 12:54 
Старожил
Аватара пользователя

Зарегистрирован: 24 июл 2012, 13:54
Сообщения: 774
А можно чуть более подробно о "фильтрации с переменной силой". Если можно, чуть более формально...


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 23 ] 

Часовой пояс: UTC + 5 часов


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  

Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB