Ich mache etwas Mathe auf Gyroskop und Beschleunigungsmesser Daten kombiniert und ich möchte die resultierenden Daten Tiefpassfilter. Könnte also jemand einen generischen Code für einen Tiefpassfilter posten?Wie implementiere ich einen LowPass Filter?
Antwort
A 1. Ordnung IIR-Tiefpassfilter kann die folgende Form haben:
output_value = rate * input_value + (1.0 - rate) * previous_output_value;
was ziemlich viel ist, was drin ist Apples AccelerometerGraph Beispiel. Sie wählen den Rate-Parameter abhängig davon, welche Frequenz (sehr, sehr grob, pro Sekunde), die Sie abschwächen möchten oder beginnen zu dämpfen, um eine gleichmäßigere Ausgabe und die Sample-Rate der Eingangsdaten zu erhalten.
Ein Tiefpassfilter glättet einfach die Ergebnisse, um die hohen Frequenzen zu entfernen. Der einfachste Tiefpassfilter ist ein Box-Filter, der durch Mittelwertbildung von n Samples gebildet wird.
Für durchschnittlich 2 Proben zusammen ist dies so einfach wie zu tun:
sample[n] (sample[n] + sample[n + 1])/2;
Wenn Apples AccelerometerGraph Beispiel zu komplex für Sie zu verstehen ist, habe ich ein einfacheres Beschleunigungsmesser Beispiel für meine Klasse, die Sie herunterladen können here. Dies implementiert einen einfachen Tiefpass- und Hochpassfilter für rohe Beschleunigungsmesserwerte und protokolliert dann die Ergebnisse auf dem Bildschirm.
Als hotpaw2 und Goz beschreiben, verwendet diese einen sehr einfachen gewichteten gleitenden Durchschnitt für die Berechnung Filter:
UIAccelerationValue lowPassFilteredXAcceleration = (currentXAcceleration * kLowPassFilteringFactor) + (previousLowPassFilteredXAcceleration * (1.0 - kLowPassFilteringFactor));
- 1. Wie implementiere ich einen Sprachwechsler?
- 2. Wie implementiere ich einen Nullkoaleszenzoperator in SQLAlchemy?
- 3. Wie implementiere ich einen praktischen Fiber Scheduler?
- 4. Wie implementiere ich einen personalisierten Event-Stream?
- 5. Wie implementiere ich einen Comparator mit Generics?
- 6. Wie implementiere ich einen SMS-Dienst?
- 7. Wie implementiere ich dynamische Filter (verknüpfte Auswahlbox) mit Sonata?
- 8. Wie implementiere ich JDatePicker
- 9. Wie implementiere ich einen & mut-Iterator für einen binären Suchbaum?
- 10. Wie implementiere ich jquery.sound.js?
- 11. Wie implementiere ich IValidatableObject?
- 12. Wie implementiere ich `prepareForReuse`?
- 13. Wie implementiere ich IEnumerable?
- 14. Wie implementiere ich eine Delegiertenfabrik?
- 15. Wie implementiere ich bedingtes CSS?
- 16. Wie implementiere ich einen benutzerdefinierten Pinsel in WPF?
- 17. Wie implementiere ich einen Audit Interceptor mit iBATIS?
- 18. Wie implementiere ich einen Login-Bildschirm in GWT?
- 19. Wie implementiere ich seekg() für einen benutzerdefinierten istream/streambuf?
- 20. Wie implementiere ich einen Web-Crawler, der Werbeblöcke streift?
- 21. Wie implementiere ich einen Punch Autoprefixer Pre-Processor?
- 22. Wie implementiere ich einen passenden Algorithmus mit Prädikaten?
- 23. Wie implementiere ich einen zuverlässigen Web Page Counter?
- 24. Wie implementiere ich einen grundlegenden Knoten Stream.Readable Beispiel?
- 25. Wie implementiere ich einen Adapter für meine Listview in Fragment
- 26. Wie implementiere ich einen OpenID-Server in Rails?
- 27. Wie implementiere ich einen Enumerator mit IsFirst- und IsLast-Funktionen?
- 28. In IE, wie entferne ich einen Filter?
- 29. Wie wende ich einen benutzerdefinierten Filter an?
- 30. Wie kann ich einen Filter testen?
wollen Sie den Code-Koeffizienten zu erzeugen, oder einfach nur die Filterung durchführen? sollte es ein IIR- oder ein FIR-Filter sein? – Guy
Nun, ich würde gerne einen Filter ähnlich wie Apple verwendet, um die Beschleunigungsmesser Daten zu filtern. Nur ihr Code funktioniert nicht für mich. – cgossain
in welcher Weise funktioniert es nicht? – Guy