How to implement a sliding window with a condition

5 visualizaciones (últimos 30 días)
Kwaku Junior
Kwaku Junior el 12 de Abr. de 2022
Comentada: Kwaku Junior el 19 de Abr. de 2022
The code is supposed to show 1 when residual deviates beyond the threshold for x consecutive sample times and 0 when deviates once after y sampling time. The residual is a column matrix 2000 x1 . I tried using a sliding window approach to achieve this.
  2 comentarios
Jan
Jan el 12 de Abr. de 2022
Editada: Jan el 12 de Abr. de 2022
Please post, what you have tried so far and explain, what is not working as wanted. A small example would be useful also to understand, what you want. E.g. what does "show 1" mean? What is "sampling time"?
Kwaku Junior
Kwaku Junior el 12 de Abr. de 2022
i tried using a sliding window to count the faults ( 1) in a specific time period . for example 0 to 400 , then 401 to 800. Then plot a rectangular pulse .
left = 0;
right = 0;
k = 400; %% sample = 5s / 0.0125 interval
windcount = 0;
while ( right<k )
windcount = windcount + fault(right+1);
right = right + 1;
end
while right < size(Threshold)
windcount = windcount + fault(right+1) - fault(left+1);
for i=size(Threshold)
if (fault(i) == 1)
windcount = windcount +1 ;
disp(windcount)
end
end
left = right
right = right +400
end
disp('while')
if windcount > 250
fault2(i) = 1;
else
fault2(i) = 0;
end
disp('Plotting')
plot(Time, fault2)

Iniciar sesión para comentar.

Respuestas (1)

DGM
DGM el 12 de Abr. de 2022
You can probably just use movmin().
R = rand(100,1);
th = 0.5;
w = 2;
exceeds_th = movmin(R,w)>th;
[R exceeds_th]
ans = 100×2
0.3394 0 0.7952 0 0.6381 1.0000 0.4328 0 0.2726 0 0.7042 0 0.7297 1.0000 0.3039 0 0.1256 0 0.1311 0
You can play around with the options for movmin() to adjust how it behaves.
  1 comentario
Kwaku Junior
Kwaku Junior el 19 de Abr. de 2022
Thank You, i tried this but it didnt give me the results i wanted. 'if a fault occurs or goes beyond a certain threshold for a consecutive number of times , show 1 ' this is the result i wanted

Iniciar sesión para comentar.

Categorías

Más información sobre Fortran with MATLAB en Help Center y File Exchange.

Community Treasure Hunt

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

Start Hunting!

Translated by