Monday 23 January 2017

Exponentielle Mobile Moyenne Arduino

Je travaille sur un robot mobile contrôlé via une liaison sans fil de 2,4 GHz. Le récepteur est connecté à l'Arduino Uno qui sert à bord comme le contrôleur principal. Le canal d'entrée le plus critique (et principal) provenant du récepteur produit un signal très bruyant, ce qui entraîne de nombreux changements mineurs dans la sortie des actionneurs, même si ceux-ci ne sont pas nécessaires. Je recherche des bibliothèques qui peuvent effectuer un lissage efficace. Existe-t-il des bibliothèques de lissage de signal disponibles pour l'Arduino (Uno) demandé Feb 16 14 at 13:57 Je pense que je vois beaucoup de pointes de bruit d'un seul échantillon dans votre signal bruyant. Le filtre médian fait mieux pour se débarrasser des pics de bruit d'un seul échantillon que n'importe quel filtre linéaire. (Il est meilleur que n'importe quel filtre passe-bas, moyenne mobile, moyenne mobile pondérée, etc. en termes de temps de réponse et sa capacité à ignorer ces outliers de pic de bruit à un seul échantillon). Il existe, en fait, de nombreuses bibliothèques de lissage de signal pour l'Arduino, dont beaucoup comportent un filtre médian. Bibliothèques de lissage de signal à arduino. cc: bibliothèques de lissage de signal à github: ce serait quelque chose comme ça dans votre robot (La médiane-de-3 nécessite très peu de puissance CPU, et donc rapide): Vous pouvez filtrer ce numérique en utilisant un faible Pass: Changez le 0.99 pour changer la fréquence de coupure (plus proche de 1.0 est la fréquence plus basse). L'expression réelle de cette valeur est exp (-2pif fs) où f est la fréquence de coupure que vous voulez et fs la fréquence à laquelle les données sont échantillonnées. Un autre type de filtre numérique est un filtre d'événement. Il fonctionne bien sur les données qui ont des valeurs aberrantes, p. 9,9,8,10,9,25,9. Un filtre d'événements retourne la valeur la plus fréquente. Statistiquement, c'est le mode. Les moyennes statistiques telles que Moyenne, Mode etc. peuvent être calculées à l'aide de la bibliothèque moyenne Arduino. Un exemple tiré de la page de la bibliothèque Arduino fait référence à: Filtre à moyenne mobile exponentielle double 8211 Accélérer l'EMA Parfois, vous avez un signal bruyant que vous voulez passer à un filtre à passe-bas à un signal moins bruyant. Le filtre Exponential Moving Average (EMA) est un filtre agréable et facile à mettre en œuvre sur votre système embarqué. Pour en savoir plus sur le filtre EMA, cliquez ici. Cependant, parfois l'EMA peut être trop lent. Le compromis entre la suppression du bruit et la vitesse pourrait tout simplement ne pas être assez bon. Soit le signal filtré ne se déplace pas assez vite, soit le signal est trop bruyant. Ce n'est pas une très bonne image de comparaison entre EMA et DEMA. Nous voulions juste une image cool ici. Lisez plus bas pour une comparaison correcte, le DEMA est sous-amorti tandis que l'EMA est suramortie. Une solution à ce problème pourrait être le filtre de la moyenne mobile exponentielle double (DEMA). À un donné, le DEMA a une réponse plus rapide que l'EMA tout en maintenant la même suppression de bruit. Un inconvénient potentiel avec le filtre DEMA est que vous pourriez obtenir un dépassement. En d'autres termes, la DEMA est sous-amortie alors que l'EMA est suramortie. Regardez ce post pour savoir ce que nous entendons par là. L'algorithme est assez simple: la chose la plus délicate ici est le dernier terme où vous prenez l'EMA de l'EMA. Pour ce faire, nous devons avoir deux variables globales au lieu d'une. Mise en œuvre Voici une implémentation rapide du filtre DEMA sur Arduino. Notez que nous utilisons deux variables globales pour le filtrage au lieu d'un. Ligne bleue: signal original, ligne orange: EMA régulière, ligne rouge: DEMA. Comme vous pouvez le voir ici, le DEMA parvient à suivre le signal original sans plus de bruit. Notez également le dépassement à la réponse d'étape. Le chapitre à la base Le DEMA a été testé dans le projet Seesaw avec des résultats positifs après avoir écrit le blogpost final. C'est un scénario où nous avons besoin de la vitesse élevée que le DEMA peut fournir. Il ya aussi quelque chose qui s'appelle la moyenne mobile exponentielle triple (TEMA). Ce filtre utilise les mêmes principes que DEMA, mais les prendre encore plus loin. Articles Liés


No comments:

Post a Comment