pulsewidth not working with higher sampling rates?
6 views (last 30 days)
Show older comments
I have a waveform like this:
And I would like to know the width of this spike at half height, a nice function to do so is pulsewidth (thank you Daniel M!!). Since the waveform is originally sampled at 200 kHz, I tried running pulsewidth using this code:
figure
pulsewidth(x,2e5);
This is the output:

There is no pulse width identified.
Now I resample the waveform at 50 kHz and run pulsewidth again using the following code:
x = resample(x,5e4,2e5);
figure
pulsewidth(x,5e4);
And here is my pulsewidth clearly identified:

Anyone know why this would not work at 200 kHz; but work at 50 kHz?
BTW I've also tried using a time-stamped vector for input instead Fs; but get the same exact output. Also tried adding the statelevels for max and min values on this trace.
Thank you in advance!!
Eric
3 Comments
Daniel M
on 6 Nov 2019
Yes, probably because of the edge effects. Try to deal with those. My proposed solution also seems like it would be robust to the edge effects, but I can't test that.
Answers (0)
See Also
Products
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!