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

 
 
> Определение всплесков сигнала, на stm32f405
king2
сообщение Apr 28 2017, 15:43
Сообщение #1


Местный
***

Группа: Свой
Сообщений: 255
Регистрация: 17-08-06
Из: Москва
Пользователь №: 19 646



Имеется stm32f405, который 5000 раз в секунду получает из внешнего мира 2 штуки unsigned short, это значения на первом и втором канале соответственно, отражающие аналоговый сигнал. Наверное, самая близкая аналогия может быть такая - во внешнем физическом мире рядом с датчиками пролетает предмет, наличие которого и фиксируется этими самыми датчиками + АЦП. Предмет может "пролететь" ближе или дальше, то есть одинаковость сигналов обоих каналов не гарантируется, хотя длительность импульсов будет зависеть только от скорости, так что в первом приближении может быть признана более-менее одинаковой (ну, то есть в два раза, например, она отличаться уже не может, а в 1.5 - может). Сигнал зашумлен, но полезный сигнал - выше шума. Значение покоя не гарантировано и медленно дрейфует (как минимум на пару порядков медленнее, чем сам сигнал).

На осциллографе это выглядит как "горб" на осциллограмме, ширина которого может быть от 10мс до 1 секунды, время "разницы" между горбами двух каналов - от 2мс.
Если посмотреть на оба сигнала - видим более-менее похожие, но сдвинутые относительно друг друга "горбы" (на самом деле впадины, но, думаю, это некритично).

Собственно, нужно как-то обработать эти сигналы, вытащить оттуда позицию "горбов", сопоставить их центры и понять, в какую сторону с какой скоростью "пролетел предмет".

Сделать "по-тупому", то есть вычислить уровень покоя скользящим средним и смотреть отклонение, сравнивая его с каким-то значением threshold я не могу, потому что один "горб" может быть меньше другого, например, или немного несимметричным, а у меня разница между каналами может быть 10 отсчетов и легко спутать направление. То есть надо как-то по другому находить центр горба, а не просто разница между переходами через границу делить на два. Ну, и шумы там могут быть, которые обеспечат мне пару десятков переходов туда-сюда при том, что медиана функции идет в одну сторону.

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

p.s. "Предметов" может быть много, например, 5 штук в секунду, и 100 всего, то есть одновременно в буфере может присутствовать много "горбов", и при этом там может и не быть начального горба, то есть корреляция вроде бы не подходит.
p.p.s. Датчики, АЦП и архитектура системы дана свыше, и меняться не может sad.gif

Спасибо заранее!
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 23rd June 2025 - 04:07
Рейтинг@Mail.ru


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