how to superimpose peak intensities

2 views (last 30 days)
Kun Yan
Kun Yan on 18 Mar 2021
How to superimpose the peak intensities of multiple peaks in the spectrum to obtain an envelope?

Answers (1)

Alamanda Ponappa Poovaya
Alamanda Ponappa Poovaya on 23 Mar 2021
Edited: Alamanda Ponappa Poovaya on 23 Mar 2021
I understand that you want to find an envelope for all the peak values of different curves. Looking at the image you shared, I assume each curve only has one peak value.
First, you can obtain the location and height of all your peaks and store them in an array.
For example:
[peakYCoords(1),peakXCoords(1)] = findpeaks(y,x);
Say all your peak values are in vector peakYCoords and their corresponding locations are in vector peakXCoords, you can use polyfit and polyval functions to fit a curve to these points, which would act as an envelope
Choose the value of n depending on the number of curves. See the documentation for polyfit for more details.
p = polyfit(peakXCoords, peakYCoords, n);
v = polyval(p, t);
plot(t, v)
Another alternative is to use the envelope function

Community Treasure Hunt

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

Start Hunting!