Bienvenue !
Bienvenue les fans de PIC ! (aux fans du langage Pascal aussi !) Technique
Autres trucs
Recherche
Téléchargements
Les 5 derniers Ajouts
Les 5 plus téléchargés
Google
|
Astuces - Implémenter un filtre passe bas pour les ADC ou toute autre valeur
A fin d'éliminer le bruit ou limiter la réponse à des phénomènes perturbateurs, les acquisitions venant de l'ADC peuvent être traitées par un FPB (Filtre Passe-Bas), qui peut être implémenté sous la forme d'un filtre exponentiel de premier ordre (un pôle) : Pour contourner ce problème, on peut utiliser un accumulateur mis ç l'échelle, disns : une accumulateur de 32 bits pour des valeurs d'entrée de 16 bits. Exemple: Nous pouvons utiliser des valeurs multipliées par P32 = 65536; c'est optimal car 65536 = (1 shl 16). La formule devient alors : AccValue32 := (AccValue32 * (N - 1) + NewValue32 * P32) div N; Value16 := AccValue32 div P; Avec N = 16, P32 = 65536 et une nouvelle valeur en entrée sur 16 bits New16, il vient : AccValue32 := (AccValue32 * 15 + (longword(New16) shl 16) shr 4; Value16 := hiword(AccValue32); // La valeur filtrée en sortie sur 16 bits est simplement le wot supérieur de l'accumulateur. A l'initialisation (ou à la prepière valeur), on fait : AccValue32 := longword(New16) shl 16; Value16 := New16; Il est aisé pour le compilateur d'optimiser la formule avec des décalages et il n'y a plus de phénomènes de plancher ou de plafonnement. Date de création : 2010.08.13 3:44 PM
| Connexion...
[ Devenir membre ] Membre en ligne : Anonymes en ligne : 7 Total visites: 396207 Record connectés :
Cumulé : 53Le 17/05/2013 @ 16:28 Webmaster - Infos
Ip : 23.20.196.179 Recherche
Nouvelles des Amis
D'où venez-vous ?
|



Bienvenue les fans de PIC !
Comment supporter PMP

Membre en ligne :
Anonymes en ligne : 7
Total visites: 396207
Cumulé : 53
Haut 

