Ho un segnale digitale, come posso contare i cambi di stato? E i passaggi da 0 a 1 (accensioni)?

Un'operazione che può risultare utile lavorando con dei segnali digitali è contare il numero di cambi di stato da 0 a 1 e da 1 a 0.

Si consideri un segnale digitale, come primo passaggio è necessario 

  • creare un segnale virtuale che rappresenti lo stesso segnale sfasato di un'unità, per fare riferimento al valore precedente

Il segnale virtuale va creato utilizzando la formula

  • kf(ago(x0),2) 

 E' quindi possibile 

  • creare un segnale virtuale che filtri il segnale originale, restituendo solo i cambi di stato 

Importando i due segnali come variabili nel virtuale avremo il segnale originale come x0 e il segnale sfasato come y0, la formula per isolare i cambi di stato è

  • x0+y0==1 ? 1 : undefined 

Per concludere

  • impostare il segnale come contatore differenziale in quanto i valori ricevuti di volta in volta rappresentano gli incrementi e non il totale accumulato 

Per visualizzare il numero di cambi di stato giornalieri è sufficiente impostare la granularità giornaliera sul segnale.

Se si vuole invece considerare solo il numero di cambi di stato da 0 a 1, ovvero le accensioni, procedere allo stesso modo, utilizzando nel segnale virtuale finale la formula

  • x0+y0==1 and x0>y0 ? 1 : undefined 

Allo stesso modo per considerare solo gli spegnimenti, ovvero i passaggi da 1 a 0, la formula sarà

  • x0+y0==1 and x0<y0 ? 1 : undefined 
Altre domande? Invia una richiesta

0 Commenti

Accedi per aggiungere un commento.