Find a curve bend

10 views (last 30 days)
Andrew
Andrew on 21 Nov 2012
Hi, I have a time-dependent signal (noise), and I need to find a quantity of curve bends (maxima of this function) which get into some range of signal amplitude. How can I do this? Thanks in advance.

Answers (1)

Image Analyst
Image Analyst on 21 Nov 2012
Edited: Image Analyst on 21 Nov 2012
I think you need to phrase this better, or provide an example because it can be interpreted in a number of ways. What do you mean by "quantity"? Do you mean you want to find the number of maxima in your signal? Like 1 for a Guassian, or infinite for a sine wave or some limited number for a finite chunk of a sine wave? What are "curve bends"? How is that different than the maxima? Like for a sine wave, is that just the top peak of the sine hump, or some finite stretch where you can actually see some of the top of the curve? What does "which get into some range of signal amplitude" mean? For the sine wave example, do you want to look at the parts where the sine wave is in the 0.5 to 0.7 range only? And then look for maxima for just the parts of the sine wave that are in that range only? All of this is very unclear and ambiguous. So here are some snippets that might help in the meantime (before you clarify)
[maxValues, indexsAtMax] = max(yourSignal);
numberOfMaxes = length(maxValues);
extractedIndexesWithinRange = yourSignal > lowThreshold & yourSignal < highThreshold;
thoseValues = yourSignal(extractedIndexesWithinRange);
peakValues = findpeaks(yourSignal); % Requires Signal Processing Toolbox.
peakValues = imregionalmax(yourSignal); % Requires Image Processing Toolbox.
I could go on but it's better to wait for your clarification and example.

Community Treasure Hunt

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

Start Hunting!