Есть ли способ определить начало и конец последовательности импульсов?

#matlab #signals #simulink #digital #pulse

Вопрос:

Я изо всех сил пытаюсь найти разумный способ определения начала и конца последовательности импульсов в MATLAB/Simulink. Я работаю с реальными цифровыми сигналами с неизвестной и переменной периодичностью. Может ли кто-нибудь предложить мне разумный способ выполнить эту операцию и получить приличное приближение красного сигнала на рисунке? Большое спасибо!

Правка : Я забыл указать, что операция должна выполняться онлайн.

введите описание изображения здесь

Комментарии:

1. как насчет разницы, с помощью этого вы получите пики вверх и вниз, затем найдите pediod в виде элементов между 2 импульсами вверх, подсчитайте, сколько у вас периодов, и последнее умножьте общее время = nPeriods*periodDuration

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

3. Если последовательность импульсов где-то близка к идеальной, как теоретическое изображение, вы можете просто отслеживать амплитуду. Превышение порога в первый раз: начало сигнала. Затем просто посчитайте, чтобы увидеть, закончилась ли серия импульсов (не более точек выше порога) или продолжается (амплитуда ниже порога, а затем снова выше)

4. Ваша пульсовая серия имеет регулярную/фиксированную длину? Многие методы последовательной связи будут удерживать линию на высоком уровне, пока они не будут готовы отправить сигнал, когда сигнал снизится за 1 цикл до отправки данных.