Detecting Certain Parts of a Specific Signal

5 views (last 30 days)
Hello,
I created a random signal as follows:
clear all; clc;
% Creating signal
x = 0:0.1:pi;
y = 5*sin(x)+10;
j = [];
for i = 1:20
j(i) = 9.9 + (10.1-9.9) .* rand(1,1);
end
v = cat(2, j, y);
y = 2*sin(x)+10;
v = cat(2, v, j);
v = cat(2, v, y);
v = cat(2, v, j);
v = cat(2, v, j);
x = pi:0.1:2*pi;
y = 4*sin(x)+10;
v = cat(2, v, y);
v = cat(2, v, j);
v = cat(2, v, j);
x = 0:0.1:pi;
y = 1.5*sin(x)+10;
v = cat(2, v, y);
v = cat(2, v, j);
v = cat(2, v, j);
% Plotting
plot(v)
I want to detect all of the convex and concave structures (not only the amplitude but also the width) in this signal as in the image below. Can you suggest a method for this?

Answers (1)

Star Strider
Star Strider on 25 May 2023
Start with the findsignal function. It may be necessary to invert the tall peak to find the inverted version of it.

Community Treasure Hunt

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

Start Hunting!