Je fais des calculs sur les données du gyroscope et de l'accéléromètre combinées et j'aimerais filtrer les données résultantes. Quelqu'un pourrait-il poster un code générique pour un filtre passe-bas?Comment implémenter un filtre LowPass?
Répondre
Un 1er filtre passe-bas pour IIR peut être de la forme:
output_value = rate * input_value + (1.0 - rate) * previous_output_value;
qui est à peu près ce qui est à l'intérieur Exemple d'AccelerometerGraph d'Apple. Vous sélectionnez le paramètre de fréquence en fonction de la fréquence (très très secouée par seconde) que vous souhaitez réduire ou commencer à atténuer pour obtenir une sortie plus douce et la fréquence d'échantillonnage des données d'entrée.
Un filtre passe-bas est simplement un lissage des résultats pour supprimer les hautes fréquences. Le filtre passe-bas le plus simple est un filtre de boîte qui est fait en faisant la moyenne de n échantillons ensemble.
Pour une moyenne de 2 échantillons ensemble c'est aussi simple que faire:
sample[n] (sample[n] + sample[n + 1])/2;
Si l'exemple AccelerometerGraph d'Apple est trop complexe pour que vous compreniez, j'ai créé un exemple accéléromètre plus simple pour ma classe que vous pouvez télécharger here. Cela implémente un simple filtre passe-bas et passe-haut pour les valeurs d'accéléromètre brutes, puis enregistre les résultats à l'écran.
Comme hotpaw2 et Goz décrit, celui-ci utilise une moyenne mobile pondérée très simple pour le calcul du filtre:
UIAccelerationValue lowPassFilteredXAcceleration = (currentXAcceleration * kLowPassFilteringFactor) + (previousLowPassFilteredXAcceleration * (1.0 - kLowPassFilteringFactor));
- 1. Comment implémenter un filtre Bloom en PHP?
- 2. Comment implémenter un filtre factice pour exclure un fichier d'un filtre?
- 3. Comment implémenter un filtre passe-bas en utilisant java
- 4. comment implémenter un singleton - dans weblogic
- 5. Comment implémenter un filtre FFT 1D pour chaque ligne de données horizontale de l'image
- 6. Où implémenter le filtre de sécurité pour les groupes dynamiques
- 7. Implémenter Itunes comme filtre "Tout" dans l'interface de détail principale
- 8. Comment implémenter un événement annulable?
- 9. Comment implémenter un TreeField interrogeable?
- 10. Comment implémenter un protocole personnalisé
- 11. Comment implémenter un protocole réseau?
- 12. Comment implémenter un tel algorithme?
- 13. Comment implémenter un UIScrollView cyclique?
- 14. filtre un tableau
- 15. Comment implémenter un Badge pour un UIBarButtonItem?
- 16. Comment faire fonctionner un filtre de servlet?
- 17. Comment écrire un filtre anti-spam
- 18. Comment faire un filtre ListView sur Android
- 19. Comment créer un filtre pour Microsoft Excel?
- 20. Comment créer un filtre de liste
- 21. Comment créer un filtre DataTable C#
- 22. Comment écrire un filtre personnalisé HAML?
- 23. Comment écrire un filtre de processus décent?
- 24. Comment implémenter Django comme une requête de filtre 'contains' avec Google App Engine?
- 25. Comment convertir un filtre passe-bas à un filtre passe-bande
- 26. Comment remplacer le filtre dans ArrayAdapter d'android?
- 27. Comment implémenter l'opérateur [] pour un tableau dynamique?
- 28. Comment implémenter un comparateur utilisant des génériques?
- 29. Comment implémenter un singleton en C#?
- 30. Comment implémenter un programme d'installation Web?
voulez-vous le code pour générer des coefficients ou tout simplement effectuer le filtrage? devrait-il être un IIR ou un filtre FIR? – Guy
Eh bien, je voudrais un filtre similaire à ce qu'Apple utilise pour filtrer les données de l'accéléromètre. Seul leur code ne fonctionne pas pour moi. – cgossain
de quelle manière cela ne fonctionne-t-il pas? – Guy