VC10LPFilter
V = Variabili
C = Funzioni di Calcolo
La funzione VC10LPFilter implementa un filtro digitale passa basso del primo ordine (per la precisione un filtro RC) per dati di dimensione WORD.
IMPLEMENTAZIONE
VC10LPFilter (Tsample, Tau, FilterIn, FilterOut)
Parametri:
IN/OUT | TIPO VARIABILE | NOME DI ESEMPIO | DIM | |
---|---|---|---|---|
IN | SYSTEM | swTsample | W | Tempo di campionamento filtro (msec) [0÷32767]. |
IN | SYSTEM | swTau | W | Costante di tempo del filtro(ms) [0÷32767] |
IN | GLOBAL | gwFilterIn | W | Valore della variabile da filtrare(UM) [-32768÷32767] |
OUT | GLOBAL | gwFilterOut | W | Valore della variabile filtrata (UM) [-32768÷32767] |
Descrizione
La funzione VC10LPFilter implementa un filtro passa basso digitale del primo ordine la cui costante di tempo (Tau) è definita nei parametri passati alla funzione stesso. Supponendo di partire da un valore della variabile di ingresso pari a zero, l'uscita del filtro assume un valore pari al 63% dell'ingresso dopo il tempo Tau. Allo stesso modo la frequenza di taglio del filtro è
Esempio
;--------------------------------------------- ; Project : REG_012 ; Module Name : ReadTemp ; Author : ; Description : Read temperature & filter ;--------------------------------------------- MAIN: CALL ReadTemp swTsample = 100 ;100 ms tempo campionamento filtro swTau = 5000 ;5 sec costante di tempo filtro VC10LPFilter (swTsample, swTau, gwFilterIn, gwFilterOut) WAIT 1 JUMP MAIN
Note
-
La funzione contiene un timer che scandisce il tempo di campionamento del filtro. E' importante quindi che la funzione venga posto del software che viene eseguito ad ogni ciclo task.