Имеются сигналы с энкодера подвижки вращения, смещенные на некоторую величину друг относительно друга (сигналы А и Б).
Для определения величины и направления перемещения требуется посчитать количество прямоугольников (направление вращения определяется какой из прямоугольников сначала - синий или красный).
По приложенным картинкам видно, что при перемещении, например по часовой стрелке, вал двигателя может кратковременно вращаться в обратную сторону.
Однако за счет неидеального равномерного движения подвижки наблюдается "дребезг" сигнала.
Как реализовать алгоритм, который определит величину и направление перемещения подвижки перемещения, полностью исключая ложные срабатывания за счет "дребезга" сигнала?
При этом, опять же скорость неравномерна и за счет этого прямоугольники могут быть разных размеров, как приведено на приложенных изображениях.
П.С.: изначально все сделано в матлабе, но пойдут решения и в С++ и в C#.