Finding multiple x-intercepts for a dataset
3 views (last 30 days)
Show older comments
Jacob Hohsfield
on 28 Jun 2021
Commented: William Rose
on 28 Jun 2021
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.
0 Comments
Accepted Answer
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
More Answers (1)
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.
See this quesiton and answer: https://www.mathworks.com/matlabcentral/answers/399125-how-can-i-find-the-peaks-of-a-surface-i-e-2-d-data-instead-of-1-d
0 Comments
See Also
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!