Jump to content

    

Есть ли научное название у данного метода фильтрации?

Recommended Posts

Arlleex

Задача довольно простая, хотя и есть некоторые моменты, над которыми нужно подумать.

В общем, есть дискретный вход, микроконтроллер опрашивает его в цикле тупым поллингом. "Период дискретизации" (скорее, условный темп опроса) довольно мелкий, порядка долей мкс (зависит от того, сколько кода выполняется между соседними опросами). Но этих долей мкс за глаза для моей задачи. Суть в другом: нужно фильтровать сигнал, причем немного хитрым образом. При постоянном лог. 0 на входе, на выходе тоже будет лог. 0; при 1, соответственно, 1. Однако есть нюанс в переходных процессах. Если был зафиксирован положительный импульс длительностью менее 500 мс, это считается "помехой" и выход фильтра продолжает выдавать лог. 0. Но вот если "болтанка" на входе продолжается 500 мс и более (т.е. в результате плохого контакта или стечения обстоятельств источник сигнала стал выдавать его с дребезгом), фильтр выдает лог. 1. Вот такая вот фиговина.

Я понимаю, как это решить алгоритмически несколькими счетными программными таймерами и каким-то количеством переменных-флагов, однако, есть ли у данного алгоритма какое-то научное название? А то, лет этак 15 назад для меня оказалось открытием, что написанный однажды алгоритм отрисовки линии на экране уже давно придумал Брезенхем:biggrin: Просто интересно.

Share this post


Link to post
Share on other sites

_pv

Ну можно, наверное, подумать про медианный фильтр.

Но реализовывать его в "классическом" виде в лоб с буфером на 0.5с при >1МГц сэмплировании и сортировкой, для двоичных значений и подавления дребезга кнопки в здравом уме никто не будет.

Опять же если каждые 100мс лог "1" включается только на 1мкс, а всё остальное время "0", это "1" на выходе?

Share this post


Link to post
Share on other sites

k155la3

Помню слышал такое "ВременнАя селекция импульсных сигналов", по крайней мере похожая тема.

Похоже, но частично, на дребезговый фильтр - переключаемые  "задержка включения" и "задержка отключения" работающие в "триггерном" режиме (дребезг по переднему и заднему фронтам). Те при сработке задержки включения активируется задержка отключения и наоборот.

Share this post


Link to post
Share on other sites

dxp

Простейший БИХ может сработать: out += in*k, где k < 1. k нужно подобрать, исходя из частоты сэмплирования и постоянной времени фильтра. По "физике" это аналог RC фильтра первого порядка (интегрирующая цепочка). Т.к. k < 1, если не хочется лезть в плавучку, вычисления можно свести к fractional арифметике.

Share this post


Link to post
Share on other sites

Arlleex
5 часов назад, dxp сказал:

Простейший БИХ может сработать: out += in*k, где k < 1...

Скорее, исходя из логики работы моего алгоритма, это некий адаптивный фильтр. Потому что классический ФНЧ сделает не то, что нужно, т.к.

9 часов назад, _pv сказал:

Опять же если каждые 100мс лог "1" включается только на 1мкс, а всё остальное время "0", это "1" на выходе?

Да, должна быть 1 на выходе. На самом деле все становится очевиднее для понимания, если я скажу, что этот сигнал - это сигнал неисправности. Т.е. если он "дребезжит" и не устанавливает своего точного значения - это ошибка. Однако в момент переключения он может помотыляться туда-сюда, да и в процессе работы коммутационные процессы рядом могут потрепать его слегка, поэтому на кратковременные активные состояния я реагировать не должен.

Share this post


Link to post
Share on other sites

des00
40 minutes ago, Arlleex said:

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

ИМХО это обычный фильтр антидребезга. 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.