# Plotting only highest peaks from multiple signals

23 views (last 30 days)
Lisa Justin on 3 Dec 2019
Commented: Lisa Justin on 9 Dec 2019
Hi,
I need to extract only the peaks of three signals so I have one plot without changing the amplitude of the individual plots.
fs = 2e3;
t = (0:1/fs:1-1/fs)';
A= sin(2*pi*19*t);
C=cos(2*pi*19*t);
peakSig= A+B+C;

Image Analyst on 3 Dec 2019
Lisa, try using max() function to compute the max.
fs = 2e3;
t = (0:1/fs:1-1/fs)';
A= sin(2*pi*19*t);
C=cos(2*pi*19*t);
plot(t, A, 'r-', 'LineWidth', 2);
hold on;
plot(t, B, 'g-', 'LineWidth', 2);
plot(t, C, 'b-', 'LineWidth', 2);
% Get the highest of any signal:
peakSig = max([A, B, C], [], 2);
% Get the lowest of any signal:
valleySig = min([A, B, C], [], 2);
plot(t, peakSig, 'k-', 'LineWidth', 3);
plot(t, valleySig, 'k-', 'LineWidth', 3);
grid on;
% Zoom in so we can actually see what's happening:
xlim([0, 0.04]);
legend('A', 'B', 'C', 'peakSig', 'valleySig');
If you have the valley signal in there also, you'll get this:
##### 2 CommentsShowHide 1 older comment
Lisa Justin on 9 Dec 2019
Thanks Image Analyst. Just what I wanted.
Great.

KALYAN ACHARJYA on 3 Dec 2019
fs = 2e3;
t = (0:1/fs:1-1/fs)';
A= sin(2*pi*19*t);
C=cos(2*pi*19*t);
peakSig= max(A)+max(B)+max(C) % You can find the maximum of A/B/C using max function
Or:
You can use findpeaks function to get the peaks of the individual signal.

ABHILASH SINGH on 3 Dec 2019
Edited: ABHILASH SINGH on 3 Dec 2019
I think you are looking for this.
fs = 2e3;
t = (0:1/fs:1-1/fs)';
A= sin(2*pi*19*t);
C=cos(2*pi*19*t);
peakSig= A+B+C;
plot(t,A,t,B,t,C)
figure
plot(t,envelope(peakSig))
Let me know if you need something different. This is the peakSig vs t
This is the peak of the three signals together