Funzione di filtro digitale notch con storage specifico esterno, in modo da poter essere utilizzato in chiamate multiple.
Sintassi |
real filter_notch_st (real val, real omega, real valQ, real storage[2], real period, i32 flagInit) |
---|---|
val |
È il valore (oppure una generica espressione matematica) da filtrare. |
omega |
Valore della omega di taglio del filtro in radianti al secondo (omega = 2 * K_PI * frequenza di taglio (Hz)). Può essere una generica espressione matematica. |
valQ |
Valore del coefficiente Q del filtro (Q deve essere >= 0.75). Può essere una generica espressione matematica. |
storage |
Variabile storage per l'elaborazione matematica della funzione filtro. |
period |
Intervallo di campionamento, se <= 0 si assume si. |
flagInit |
Variabile per la richiesta di inizializzazione del filtro; imponendo un valore diverso da 0 il filtro verrà resettato e la variabile flagInit verrà scritta a 0. La prima volta che viene chiamata la funzione questa variabile deve avere un valore diverso da 0. |
Risultato |
Rende il valore filtrato. |
Validità |
Rule. |
Note |
Limitazione automatica di omega: (omega_max = 0.15 / si * 2 * K_PI) -> ossia non più del 15% del valore omega corrispondente al tempo di battuta delle rule. (es. se Freq = 200Hz -> frequenza di taglio filtro <= 30 Hz) |
I parametri sono come per la filter_notch(), ma in più consente di specificare una variabile storage adibita all'elaborazione matematica della funzione filtro.
In questo modo è possibile utilizzare i filtri anche con chiamate multiple (es. entro dei cicli for).
Esempio di utilizzo:
|