Я работаю над проектом, где мы измеряем паяемость компонентов. Измеренный сигнал шумит. Нам нужно обработать сигнал в реальном времени, чтобы мы могли распознать изменение, которое начинается в момент 5000 миллисекунд.
Моя система отбирает реальную стоимость каждые 10 миллисекунд, но ее можно настроить для более медленной выборки.
- Как я могу обнаружить это падение за 5000 миллисекунд?
- Что вы думаете о соотношении сигнал / шум? Должны ли мы сосредоточиться и попытаться получить лучший сигнал?
- Существует проблема, заключающаяся в том, что каждый показатель имеет разные результаты, и иногда падение даже меньше, чем в этом примере.
Ссылка на файлы данных (они не совпадают с файлами, используемыми для графиков, но показывают последний статус системы)
- https://docs.google.com/open?id=0B3wRYK5WB4afV0NEMlZNRHJzVkk
- https://docs.google.com/open?id=0B3wRYK5WB4afZ3lIVzhubl9iV0E
- https://docs.google.com/open?id=0B3wRYK5WB4afUktnMmxfNHJsQmc
- https://docs.google.com/open?id=0B3wRYK5WB4afRmxVYjItQ09PbE0
- https://docs.google.com/open?id=0B3wRYK5WB4afU3RhYUxBQzNzVDQ
Ответы:
Классическая ссылка на эту проблему - « Обнаружение резких изменений - теория и применение » Бассвилля и Никифорова. Вся книга доступна для скачивания в формате PDF .
Я рекомендую вам прочитать главу 2.2 об алгоритме CUSUM (накопительная сумма).
источник
Я обычно называю эту проблему проблемой обнаружения склонов. Если вы вычисляете линейную регрессию для движущегося окна, проиллюстрированное падение будет видно как значительное изменение знака наклона и / или величины. Этот подход предлагает ряд факторов, которые потребуют «настройки»: например, частота дискретизации, размер окна и т. Д. Будут влиять на надежность (помехоустойчивость) детектора знака наклона. Здесь могут быть применены некоторые из приведенных выше комментариев. Любая фильтрация или подавление шума, которые могут быть применены до подгонки линии, улучшат ваши результаты.
источник
Я сделал это, вычислив Т-статистику среднего значения левой части данных и правой части данных. Это предполагает, что вы знаете, где находится точка перехода, чего, конечно, нет.
Итак, что вы делаете, это пробуете несколько сотен точек разбиения вдоль оси времени и находите ту, которая имеет самую значительную Т-статистику.
Вы можете сделать это как что-то вроде бинарного поиска. Попробуйте 10 точек данных, найдите две самые большие, затем попробуйте 10 точек между ними и т. Д. Таким образом, вы можете получить довольно точную точку перехода. Я не претендую на точность. :-)
Дайте нам знать, как это идет!
PS Вы можете вычислять среднее и sd как текущие суммы, что уменьшает сложность вычисления этой функции разбиения для каждой возможности от N ^ 2 до N. Делая это, вы, вероятно, можете позволить себе просто вычислить статистику T в каждой возможной точке разбиения.
источник