Counting Consecutive Threshold Crossings in a Signal (Counting Oscillations)

4 vues (au cours des 30 derniers jours)
Sad Junkie
Sad Junkie le 10 Oct 2022
Commenté : Sad Junkie le 11 Oct 2022
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?

Réponses (1)

Allen
Allen le 10 Oct 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 commentaire
Sad Junkie
Sad Junkie le 11 Oct 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.

Connectez-vous pour commenter.

Produits


Version

R2020a

Community Treasure Hunt

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

Start Hunting!

Translated by