Finding multiple x-intercepts for a dataset

3 views (last 30 days)
I have a 2-D dataset that crosses the x-axis multiple times.
I would like help making a function that will return all the x values at which y = 0.
Any help for a day 1 newbie would be much appreciated!
Possibly helpful background: I'm analyzing sound spectra. I would like to find the peaks of the signal by finding where the 1st derivative crosses the x-axis.

Accepted Answer

William Rose
William Rose on 28 Jun 2021
Matlab has a very nice peak finding function, findpeaks(), help here: It has nice options, including threshold, minimum peak prominence, minimum horizontal (i.e. time or frequency, in your case) separation, etc.
  3 Comments
Jacob Hohsfield
Jacob Hohsfield on 28 Jun 2021
I think this is what I need. Thank you!

Sign in to comment.

More Answers (1)

William Rose
William Rose on 28 Jun 2021
You said you have a 2D dataset. If you mean the spectrogram, the time dependent Fourier transform, then findpeaks() is not the right answer since it is for 1D signals.

Products


Release

R2021a

Community Treasure Hunt

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

Start Hunting!