Find mean of steps in broken signal

2 visualizaciones (últimos 30 días)
Konvictus177
Konvictus177 el 14 de Ag. de 2023
Comentada: Star Strider el 16 de Ag. de 2023
Hi,
I have a partially broken signal with NaNs and 5 steps as indicated below.
How can I find the mean level of each of the 5 steps?
The signal is attached.
The signal looks like the following:
Thanks.

Respuesta aceptada

Star Strider
Star Strider el 14 de Ag. de 2023
One approach —
LD = load('y.mat');
y = LD.y;
x = 0:numel(y)-1;
Lv = islocalmax(y>25, 'FlatSelection','all');
start = strfind(Lv, [0 1]);
stop = strfind(Lv, [1 0]);
for k = 1:numel(start)
ymean(k,:) = mean(y(start(k) : stop(k)), 'omitnan');
xmean(k,:) = mean(x(start(k) : stop(k)), 'omitnan');
end
Flat_Means = table(xmean, ymean, 'VariableNames',{'X Centre','Y Mean'})
Flat_Means = 9×2 table
X Centre Y Mean ________ ______ 1618 28.811 1651 30.648 1691 26.499 1725 28.549 1789 35.506 1828 33.727 1841 33.103 1876 33.305 1939 39.992
figure
plot(x, y)
hold on
plot(x(Lv), y(Lv), '.r')
hold off
grid
ylim([min(ylim) 70])
text(xmean, ymean, compose('\\mu = %.2f \\rightarrow',ymean), 'Horiz','right', 'Vert','middle', 'Rotation',-80)
.
  4 comentarios
Konvictus177
Konvictus177 el 16 de Ag. de 2023
@Star Strider The updated code works perfect! Thank you very much!
Star Strider
Star Strider el 16 de Ag. de 2023
As always, my pleasure!

Iniciar sesión para comentar.

Más respuestas (0)

Productos


Versión

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by