Counting Consecutive Threshold Crossings in a Signal (Counting Oscillations)

1 visualización (últimos 30 días)
I have an oscillating signal in a SIMULINK model and I want to count the number of times it crosses a certain threshold level (positive and negative) consecutively. How can I do that? There is a built-in block for Zero-Crossings Counter but what can I use to solve my problem?

Respuestas (1)

Allen
Allen el 10 de Oct. de 2022
You can accomplish a check against a threshold using the following code or a slight variation to meet other needs.
% Generating a random signal for demonstration purposes
S = 40*rand([1,100])-20;
% Define your threshold
threshold = 0;
count = nnz(diff(sign(S-threshold)));
  1 comentario
Fawad Farooq Ashraf
Fawad Farooq Ashraf el 11 de Oct. de 2022
Thank you for your reply. But unfortunately, I have to do this in real-time for a moving signal (i.e., I'll just have single values of the signal at each time step) and I have to use SIMULINK blocks for the implementation.

Iniciar sesión para comentar.

Categorías

Más información sobre General Applications en Help Center y File Exchange.

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