Monday 20 February 2017

Exponential Moving Average Cutoff Frequenz

Ich muss einen gleitenden mittleren Filter mit einer Grenzfrequenz von 7,8 Hz entwerfen. Ich habe gleitende durchschnittliche Filter vor verwendet, aber soweit ich weiß, ist der einzige Parameter, der eingegeben werden kann, die Anzahl der zu durchschnittlichen Punkte. Wie kann sich dies auf eine Grenzfrequenz beziehen Die Inverse von 7,8 Hz beträgt 130 ms und Im arbeiten mit Daten, die bei 1000 Hz abgetastet werden. Bedeutet dies implizieren, dass ich sollte eine gleitende durchschnittliche Filter-Fenstergröße von 130 Proben verwenden, oder gibt es etwas anderes, das ich hier fehlte, ist der Filter, der in der Zeitdomäne zu entfernen verwendet wird Das Rauschen hinzugefügt und auch für Glättung Zweck, aber wenn Sie die gleiche gleitende durchschnittliche Filter im Frequenzbereich für Frequenztrennung dann Leistung wird am schlimmsten. So dass in diesem Fall nutzen Frequenzbereich Filter ndash user19373 Feb 3 16 at 5:53 Der gleitende Durchschnitt Filter (manchmal auch umgangssprachlich als Boxcar-Filter) hat eine rechteckige Impulsantwort: Oder anders ausgedrückt: Denken Sie daran, dass eine diskrete Zeit Frequenz Frequenzgang Gleich der diskreten Zeit-Fourier-Transformation ihrer Impulsantwort ist, können wir sie wie folgt berechnen: Was am meisten für Ihren Fall interessiert ist, ist die Amplitudenreaktion des Filters H (omega). Mit ein paar einfachen Manipulationen, können wir, dass in einer einfacher zu verstehen: Das sieht vielleicht nicht leichter zu verstehen. Allerdings wegen Eulers Identität. Erinnern, dass: Daher können wir schreiben, die oben als: Wie ich schon sagte, was Sie wirklich besorgt ist die Größe der Frequenzgang. So können wir die Größenordnung der oben genannten zu vereinfachen, um es weiter zu vereinfachen: Hinweis: Wir sind in der Lage, die exponentiellen Begriffe aus, weil sie nicht beeinflussen die Größe des Ergebnisses e 1 für alle Werte von Omega. Da xy xy für irgendwelche zwei endlichen komplexen Zahlen x und y ist, können wir schließen, daß die Anwesenheit der exponentiellen Terme die Gesamtgrößenreaktion nicht beeinflußt (sie beeinflussen die Systemphasenreaktion). Die resultierende Funktion innerhalb der Größenklammern ist eine Form eines Dirichlet-Kerns. Sie wird manchmal als periodische sinc-Funktion bezeichnet, weil sie der sinc-Funktion etwas im Aussehen ähnelt, aber stattdessen periodisch ist. Wie auch immer, da die Definition der Cutoff-Frequenz etwas unterspezifiziert ist (-3 dB Punkt -6 dB Punkt erste sidelobe Null), können Sie die obige Gleichung, um für was auch immer Sie brauchen, zu lösen. Im Einzelnen können Sie Folgendes tun: Stellen Sie H (omega) auf den Wert ein, der der Filterantwort entspricht, die Sie bei der Cutoff-Frequenz wünschen. Set Omega gleich der Cutoff-Frequenz. Um eine kontinuierliche Frequenz auf den diskreten Zeitbereich abzubilden, denken Sie daran, dass osga 2pi frac, wobei fs Ihre Abtastrate ist. Finden Sie den Wert von N, der Ihnen die beste Übereinstimmung zwischen der linken und der rechten Seite der Gleichung gibt. Das sollte die Länge des gleitenden Durchschnitts sein. Wenn N die Länge des gleitenden Mittelwerts ist, dann ist eine angenäherte Grenzfrequenz F (gültig für N gt 2) bei der normalisierten Frequenz Fffs: Der Kehrwert dieser Gleichung ist für große N asymptotisch korrekt und hat etwa 2 Fehler Für N2 und weniger als 0,5 für N4. P. S. Nach zwei Jahren, hier schließlich, was war der Ansatz folgte. Das Ergebnis beruht auf der Annäherung des MA-Amplitudenspektrums um f0 als Parabel (2. Ordnung) nach MA (Omega) ca. 1 (frac - frac) Omega2, die in der Nähe des Nulldurchgangs von MA (Omega) Frac durch Multiplikation von Omega mit einem Koeffizienten, der MA (Omega), ca. 10.907523 (frac-frac) Omega2 ergibt. Die Lösung von MA (Omega) - frac 0 liefert die obigen Ergebnisse, wobei 2pi F Omega. Alle der oben genannten bezieht sich auf die -3dB abgeschnitten Frequenz, das Thema dieser Post. Manchmal ist es zwar interessant, ein Dämpfungsprofil im Stoppband zu erhalten, das vergleichbar ist mit dem eines 1. Ordnung IIR-Tiefpaßfilters (Einpol-LPF) mit einer gegebenen -3dB Grenzfrequenz (ein solcher LPF wird auch Leaky-Integrator genannt, Mit einem Pol nicht genau an DC, aber nah an ihm). Tatsächlich haben sowohl der MA als auch der 1. Ordnung IIR LPF -20dBdekade Slope im Stopband (man braucht ein größeres N als das in der Figur verwendete N32, um dies zu sehen), während MA jedoch spektrale Nullpunkte bei FkN und a hat 1f Evelope hat das IIR-Filter nur ein 1f-Profil. Wenn man ein MA-Filter mit ähnlichen Rauschfilterungs-Fähigkeiten wie dieses IIR-Filter erhalten möchte und die gleichgeschnittenen 3dB-Grenzfrequenzen anpaßt, würde er beim Vergleich der beiden Spektren erkennen, daß die Stoppbandwelligkeit des MA-Filters endet 3dB unter dem des IIR-Filters. Um die gleiche Stoppbandwelligkeit (d. h. dieselbe Rauschleistungsdämpfung) wie das IIR-Filter zu erhalten, können die Formeln wie folgt modifiziert werden: Ich fand das Mathematica-Skript zurück, wo ich die Unterbrechung für mehrere Filter einschließlich des MA-Werts berechnete. Das Ergebnis basiert auf der Annäherung des MA-Spektrums um f0 als Parabel nach MA (Omega) Sin (OmegaN2) Sin (Omega2) Omega 2piF MA (F) ca. N16F2 (N-N3) pi2. Und Ableitung der Kreuzung mit 1sqrt von dort. Ndash Massimo Jan 17 16 am 2: 08 Ich habe über den exponentiellen Durchschnitt studiert. Es gibt genügend Erklärungen dazu im Internet, aber sie erklären nicht über die Zeitkonstante. Ich habe einen Kanal mit einem T Sekunden-Zeit-Signal mit Abtastfrequenz fs. Wenn ich durchschnittlich dieses Zeitsignal machen möchte, müssen wir entweder lineare oder exponentielle Methode verwenden. Linear durchschnittliche Methode ist ganz einfach, so gibt es keine Schwierigkeiten für die Anwendung. Allerdings, wenn ich versuchen, exponentielle durchschnittliche Methode anzuwenden, gibt es einige Probleme. Wenn das Zeitsignal schnell variiert, verwenden wir vorzugsweise eine schnelle Zeitkonstante von 125 ms. Auch das Zeitsignal variiert langsam, mit 1000 ms langsame Zeitkonstante ist besser, aber in dieser Situation weiß ich nicht, wie kann ich diese Zeitkonstante mit Zeitsignal anwenden. Gibt es irgendeine Erklärung oder irgendein Beispiel für das Tun exponentieller Durchschnitt mit Zeitkonstante gebetenes Aug 29 13 an 16: 54Low-pass Filter Diese sind hauptsächlich Anmerkungen, die es in keinem Sinn vollständig ist. Es besteht darin, Fragmente nützlicher Informationen zu enthalten. Pseudocode Der exponentiell gewogene gleitende Mittelwert (EWMA) ist der Name für die wahrscheinlich einfachste digitale Zeitbereichs-Realisierung des (ersten) Tiefpasses auf diskreten Daten. Dieser Filter glättet mit einem sich bewegenden lokalen Durchschnitt, was ihn zu einem trägen Nachfolger des Eingangssignals macht. Intuitiv reagiert sie langsam auf die schnellen Änderungen (den hochfrequenten Anteil), während sie immer noch der Gesamttendenz des Signals (dem niederfrequenten Anteil) folgen. Er wird durch eine Variable (siehe x3b1) gewogen, um seine Empfindlichkeit variieren zu können. In Anwendungen, die in regelmäßigen Abständen (z. B. Sound) abtasten, können Sie x3b1 mit dem Frequenzinhalt in Beziehung setzen. In diesen Fällen möchten Sie oft eine gefilterte Ausgangsserie für eine Eingangsserie berechnen, indem Sie eine Liste durchlaufen, die so etwas wie: oder das Äquivalent macht: Die letztere Form kann sich intuitiveinformulieren: Die Änderung des gefilterten Outputs ist proportional zur Menge von Geändert und mit der Filterstärke x3b1 gewogen. Beide können helfen, zu prüfen, wie die Verwendung der zuletzt gefilterten Ausgabe die Trägheit des Systems hervorruft: Ein kleineres x3b1 (größeres 1-x3b1 in dem ehemaligen) (macht auch für größere RC) bedeutet, dass der Ausgang träger anliegt und weniger Rauschen zeigen sollte Cutoff-Frequenz ist niedriger (überprüfen)). Ein größeres x3b1 (kleineres 1-x3b1) (kleineres RC) bedeutet, dass sich der Ausgang schneller einstellen wird (weniger Trägheit), aber empfindlicher gegenüber Rauschen ist (da die Grenzfrequenz höher ist) Wo Sie nur möchten, dass der letzte Wert die Speicherung eines großen Arrays vermeiden kann, indem Sie für jedes neue Sample (oft eine Reihe von Zeiten in einer Reihe, um sicherzustellen, dass wir genug einstellen) folgendes tun. In Fällen von nicht-so-regelmäßiger Probenahme ist x3b1 mehr mit der Geschwindigkeit der Adaption als mit dem Häufigkeitsgehalt verbunden. Sein noch relevantes, aber die Anmerkungen über Frequenzinhalt gelten weniger streng. In der Regel möchten Sie das Arraymemory als Float implementieren - auch wenn Sie Ints zurückgeben - um Probleme durch Rundungsfehler zu vermeiden. Das meiste Problem: Wenn Alphadifferenz (selbst eine schwebende Multiplikation) kleiner als 1 ist, wird sie in einer (truncatng) Form zu einer ganzen Zahl 0. Wenn z. B. alpha 0,01 ist, werden Signalunterschiede kleiner als 100 für eine Einstellung von 0 (über eine ganzzahlige Trunkierung) sorgen, so daß sich der Filter nie auf den tatsächlichen ADC-Wert einstellen würde. EWMA hat das Wort exponentiell in ihr, weil jede neue gefilterte Ausgabe effektiv alle Werte vor ihr und effektiv mit exponentiell abklingende Gewichte verwendet. Siehe die Wikipedia Links für weitere Diskussion. Ein grafisches Beispiel: Ein Screenshot aus arduinoscope - ein bewegter Graph mit den neuesten Proben auf der linken Seite. Das rohe Signal an der Spitze ist ein paar Sekunden wert eines ADC-Sampling von einem schwimmenden Pin, mit einem Finger berührt es hin und wieder. Die anderen sind Lowpassed Versionen davon, mit zunehmender Stärke. Einige Dinge zu beachten: die langsame exponentielle Anpassung an Schritt-ähnliche Antworten (ähnlich wie ein Ladekondensator - schnell intially, dann langsamer und langsamer) die Unterdrückung der einzelnen großen Spikesdeviations. Dass es sicher möglich ist, zu hart zu filtern (obwohl diese Beurteilung stark von der Abtastgeschwindigkeit und den Anpassungsinhaltsfrequenzen abhängt, die Ihr Zielzweck benötigt). Im zweiten Bild kommt die Vollbereichsschwingung auf halbem Weg nicht so sehr wegen der Filterung, sondern auch vor allem, weil die meisten Rohproben um sie herum an beiden Enden des ADCs-Bereichs gesättigt sind. Auf x3b1, x3c4, und die Cutoff-Frequenz Dieser Artikel ist ein Stub x2014 wahrscheinlich ein Stapel von halb-sortierten Notizen, ist nicht gut überprüft, so haben möglicherweise falsche Bits. (Fühlen Sie sich frei zu ignorieren, zu fixieren, oder sagen Sie mir) x3b1 ist der Glättungsfaktor, theoretisch zwischen 0,0 und 1,0, in der Praxis meist lt0,2 und oft lt0.1 oder kleiner, weil über, dass Sie kaum noch Filterung. In DSP basiert es oft auf: x394 t. Regelmäßig schriftlich dt. Das Zeitintervall zwischen den Abtastwerten (Reziprokwert der Abtastrate), eine Wahl der Zeitkonstante x3c4 (tau), alias RC (letzteres scheint eine Referenz auf einen Widerstand-plus-Kondensator-Schaltkreis, der ebenfalls Tiefpaß erzeugt Die der Kondensator lädt Wenn Sie eine RC in der Nähe von dt youll erhalten Alphas höher als 0,5, und auch eine Cutoff-Frequenz, die in der Nähe der Nyquist-Frequenz ist (passiert bei 0.666 (überprüfen)), die herausfiltert so wenig, dass es den Filter macht In der Praxis youll oft wählen Sie eine RC, die mindestens ein paar Vielfache von dt, was bedeutet, dass x3b1 ist in der Größenordnung von 0,1 oder weniger. Wenn die Probenahme erfolgt streng regelmäßig, wie es für Sound und viele andere DSP-Anwendungen , Ist die Cutoff-Frequenz, auch bekannt als Knie-Frequenz, gut definiert, zum Beispiel: Wenn RC0.002sec, ist die Cutoff bei 200Hz, 2000Hz und 20000Hz Abtastung, die für Alpha von 0,7, 0,2 und 0,024 macht (Bei gleicher Abtastgeschwindigkeit: je niedriger Alpha, desto geringer die Anpassung an neue Werte und desto geringer die effektive Cutoff-Frequenz) (verifizieren) Für einen Tiefpass erster Ordnung: Bei niedrigeren Frequenzen ist das Ansprechverhalten nahezu vollständig flach Diese Frequenz ist -3dB (hat begonnen, in einem weichen Bendknee abzunehmen) bei höheren Frequenzen, die es bei 6dboctave sinkt (20dBdecade) Höherwertige Varianten fallen schneller ab und haben ein härteres Knie. Beachten Sie, dass es auch eine Phasenverschiebung gibt, die hinter dem Eingang zurückbleibt. Es hängt von der Frequenz, die es beginnt früher als die Amplitude fallen, und wird -45 Grad bei der Knie-Frequenz (überprüfen). Arduino Beispiel Dieser Artikel ist ein Stub x2014 wahrscheinlich ein Haufen von halb-sortierten Notizen, ist nicht gut überprüft, so kann falsche Bits haben. (Fühlen Sie sich frei zu ignorieren, zu fixieren, oder sagen Sie mir) Dies ist eine Single-Stück-Speicher-Version, denn wenn Sie interessiert sind nur in den (neuesten) Ausgangswert. Semi-sortiert


No comments:

Post a Comment