Detecting Certain Parts of a Specific Signal

1 次查看(过去 30 天)
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?

回答(1 个)

Star Strider
Star Strider 2023-5-25
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!

Translated by