how to retain the pulses of a specific duration and delete the rest ?

1 次查看(过去 30 天)
i have a vetor which has pulses of different durations. I want to capture the pulses with a specific duration and delete the rest. Also the captured pulses should be displayed in the same time interval as in the original vector .kindly help me with a matlab code.

回答(1 个)

Kushagr Gupta
Kushagr Gupta 2016-11-7
I understand that you wish to detect pulse widths along with their time-stamps and threshold the signal based on width.
The function 'pulsewidth' can be very useful in this regard as it outputs the widths and time information as well. Documentation for the same can be found at :
Once the widths and start-time of each pulse is known it can be used to capture wanted pulses. Following code snippet shows how 'pulsewidth' can be used:
>>A = rand(100,1);
>>B = A > 0.5; % creating a random signal of 1's and 0's
>>[wid, P_start, P_end, midL] = pulsewidth(double(B));
>>PulseInd=P_start+0.5 % index where a pulse begins
Thus "PulseInd" contains the index where a pulse begins and "wid" contains the width of that particular pulse. Using this information the signal can be thresholded and desired result obtained.

标签

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by