MATLAB: Peak alignment from matrix of curves

graphsMATLABpeak alignmentpeakssignal processing

Hi, I'm working on a project that needs me to align and average multiple curves into a single curve. Right now I have a 150×4 matrix that gives the graph:
I need to shift the graphs so that all of their peaks line up but I'm not sure how I should do it. Here is also the relevant code:
Stress_min = islocalmin(Stress_smooth, 'MinProminence', prominence);
figure;
plot(time, Stress_smooth, time(Stress_min), Stress_smooth(Stress_min), 'r*')
mins_locs = ceil(time(Stress_min) * 30);
num_min = length(mins_locs)-1;
for i = 1:num_min
Stress_smooth_curves = Stress_smooth(mins_locs(i):mins_locs(i+1));
Stress_curves(1:length(Stress_smooth_curves), i) = Stress_smooth_curves;
end
figure;
plot(Stress_curves);

Best Answer

See if the alignsignals (link) function will provide the result you need. Choose one signal and align the rest of them to it.