Sunday 12 February 2017

Gleitender Durchschnitt Lpf

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 basiert auf der Annäherung des MA-Amplitudenspektrums um f0 als Parabel (2. Ordnung) nach MA (Omega) ca. 1 (frac - frac) Omega2, die genauer 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 Stopbandwelligkeit 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 um 2: 08Der Wissenschaftler und Ingenieure Leitfaden für digitale Signalverarbeitung Von Steven W. Smith, Ph. D. Kapitel 19: Rekursive Filter Es gibt drei Arten von Phasenreaktionen, die ein Filter haben kann: Nullphase. Linearer Phase. Und nichtlineare Phase. Ein Beispiel für jedes von diesen ist in Abbildung 19-7 gezeigt. Wie in (a) gezeigt, ist das Nullphasenfilter durch eine Impulsantwort charakterisiert, die um den Nullpunkt symmetrisch ist. Die tatsächliche Form spielt keine Rolle, nur daß die negativ numerierten Abtastwerte ein Spiegelbild der positiv numerierten Abtastwerte sind. Wenn die Fourier-Transformation von dieser symmetrischen Wellenform genommen wird, ist die Phase vollständig null, wie in (b) gezeigt. Der Nachteil des Nullphasenfilters besteht darin, daß er die Verwendung von negativen Indizes erfordert, was für die Arbeit unpraktisch sein kann. Das lineare Phasenfilter ist ein Weg um dieses. Die Impulsantwort in (d) ist mit der in (a) gezeigten identisch, außer sie wurde verschoben, um nur positiv numerierte Proben zu verwenden. Die Impulsantwort ist immer noch symmetrisch zwischen links und rechts, die Lage der Symmetrie ist jedoch von Null verschoben worden. Diese Verschiebung führt dazu, daß die Phase (e) eine gerade Linie ist. Abrechnung des Namens: lineare Phase. Die Steigung dieser Geraden ist direkt proportional zum Betrag der Verschiebung. Da die Verschiebung der Impulsantwort nichts anderes bewirkt als eine identische Verschiebung des Ausgangssignals, ist das lineare Phasenfilter dem Nullphasenfilter für die meisten Zwecke äquivalent. Abbildung (g) zeigt eine Impulsantwort, die nicht symmetrisch zwischen links und rechts ist. Entsprechend ist die Phase (h) keine Gerade. Mit anderen Worten, es hat eine nichtlineare Phase. Nicht verwirren die Begriffe: nichtlineare und lineare Phase mit dem Konzept der System-Linearität diskutiert in Kapitel 5. Obwohl beide das Wort linear. Sie sind nicht verwandt. Warum ist mir egal, ob die Phase linear ist oder nicht Die Abbildungen (c), (f) und (i) zeigen die Antwort. Dies sind die Impulsantworten jedes der drei Filter. Die Impulsantwort ist nichts weiter als eine positiv gehende Schrittantwort, gefolgt von einer negativ gehenden Schrittantwort. Die Impulsantwort wird hier verwendet, weil sie anzeigt, was mit den ansteigenden und fallenden Flanken in einem Signal geschieht. Hier ist der wichtige Teil: Null - und lineare Phasenfilter haben linke und rechte Kanten, die gleich aussehen. Während nichtlineare Phasenfilter linke und rechte Kanten haben, die anders aussehen. Viele Anwendungen können nicht tolerieren, die linken und rechten Kanten anders aussehen. Ein Beispiel ist die Anzeige eines Oszilloskops, wobei diese Differenz als Merkmal des zu messenden Signals fehlinterpretiert werden könnte. Ein anderes Beispiel ist die Videoverarbeitung. Können Sie sich vorstellen, schalten Sie Ihren Fernseher, um das linke Ohr Ihres Lieblings-Schauspieler suchen anders als sein rechtes Ohr finden Es ist einfach, eine FIR (Finite-Impulsantwort) Filter haben eine lineare Phase. Denn die Impulsantwort (Filterkernel) wird direkt im Designprozess spezifiziert. Damit der Filterkernel eine Links-Rechts-Symmetrie hat, ist alles erforderlich. Dies ist bei IIR (rekursiven) Filtern nicht der Fall, da die Rekursionskoeffizienten angegeben sind, nicht aber die Impulsantwort. Die Impulsantwort eines rekursiven Filters ist nicht symmetrisch zwischen links und rechts und hat daher eine nichtlineare Phase. Analoge elektronische Schaltungen haben das gleiche Problem mit dem Phasengang. Stellen Sie sich eine Schaltung aus Widerständen und Kondensatoren auf Ihrem Schreibtisch sitzen. Wenn der Eingang immer Null war, ist der Ausgang auch immer Null gewesen. Wenn ein Impuls an den Eingang angelegt wird, werden die Kondensatoren schnell auf einen Wert geladen und beginnen dann exponentiell durch die Widerstände zu zerfallen. Die Impulsantwort (d. h. das Ausgangssignal) ist eine Kombination dieser verschiedenen abklingenden Exponentiale. Die Impulsantwort kann nicht symmetrisch sein, da der Ausgang vor dem Impuls Null war und der exponentielle Zerfall nie wieder einen Wert von Null erreicht. Analoge Filter-Designer greifen dieses Problem mit dem Bessel-Filter an. Das in Kapitel 3 dargestellt ist. Das Bessel-Filter ist so ausgelegt, dass es eine möglichst lineare Phase aufweist, jedoch weit unter der Leistung von digitalen Filtern liegt. Die Fähigkeit, eine exakte lineare Phase bereitzustellen, ist ein klarer Vorteil von digitalen Filtern. Glücklicherweise gibt es eine einfache Möglichkeit, rekursive Filter zu modifizieren, um eine Nullphase zu erhalten. Abbildung 19-8 zeigt ein Beispiel dafür, wie dies funktioniert. Das zu filternde Eingangssignal ist in (a) dargestellt. Abbildung (b) zeigt das Signal, nachdem es von einem einpoligen Tiefpassfilter gefiltert wurde. Da es sich hierbei um ein nichtlineares Phasenfilter handelt, sehen die linken und rechten Kanten nicht gleich aus, sie sind umgekehrte Versionen voneinander. Wie zuvor beschrieben, wird dieses rekursive Filter implementiert, indem man bei der Probe 0 anfängt und in Richtung der Probe 150 arbeitet, wobei jede Abtastung auf dem Weg berechnet wird. Es sei nun angenommen, daß anstatt sich von der Abtastprobe 0 zur Abtastprobe 150 zu bewegen, bei der Abtastprobe 150 anfängt und sich zu dem Abtastwert 0 bewegt. Mit anderen Worten wird jede Abtastung in dem Ausgangssignal aus den Eingangs - und Ausgangsabtastwerten rechts von der zu bearbeitenden Abtastprobe berechnet auf. Dies bedeutet, daß die Rekursionsgleichung Gl. 19-1, wird geändert in: Fig. (C) zeigt das Ergebnis dieser Rückwärtsfilterung. Dies ist analog zum Durchführen eines analogen Signals durch eine elektronische RC-Schaltung während der Laufzeit rückwärts. Esrvinu eht pu-wercs nac lasrever emit - noituaC Die Filterung in umgekehrter Richtung erzeugt keinen Vorteil für sich, das gefilterte Signal hat noch linke und rechte Kanten, die nicht gleich aussehen. Die Magie geschieht, wenn Vorwärts - und Rückwärtsfilterung kombiniert werden. Die Abbildung (d) ergibt sich aus der Filterung des Signals in Vorwärtsrichtung und dem erneuten Filtern in umgekehrter Richtung. Voila Dies erzeugt ein Nullphasen-Rekursivfilter. Tatsächlich kann jedes rekursive Filter mit dieser bidirektionalen Filtertechnik auf Nullphase umgesetzt werden. Die einzige Strafe für diese verbesserte Leistung ist ein Faktor von zwei in der Ausführungszeit und der Programmkomplexität. Wie finden Sie die Impuls - und Frequenzreaktionen des Gesamtfilters? Die Größe des Frequenzganges ist für jede Richtung gleich, während die Phasen einander entgegengesetzt sind. Wenn die beiden Richtungen kombiniert werden, wird die Größe quadriert. Während die Phase auf Null sinkt. Im Zeitbereich entspricht dies dem Falten der ursprünglichen Impulsantwort mit einer von links nach rechts gekippten Version von sich selbst. Beispielsweise ist die Impulsantwort eines einpoligen Tiefpaßfilters ein einseitiges Exponential. Die Impulsantwort des entsprechenden bidirektionalen Filters ist ein einseitiges Exponential, das nach rechts zerfällt, gefaltet mit einem einseitigen Exponential, das nach links zerfällt. Beim Durchlaufen der Mathematik erweist sich dies als doppelseitiges Exponential, das sowohl nach links als auch nach rechts zerfällt, mit demselben Abklingkonstanten wie der ursprüngliche Filter. Einige Anwendungen haben nur einen Teil des Signals im Computer zu einem bestimmten Zeitpunkt, wie zum Beispiel Systeme, die abwechselnd Input-und Output-Daten auf einer kontinuierlichen Basis. Bidirektionale Filterung kann in diesen Fällen verwendet werden, indem sie mit der im letzten Kapitel beschriebenen Überlappungsmethode kombiniert wird. Wenn Sie zu der Frage kommen, wie lange die Impulsantwort ist, sagen Sie nicht unendlich. Wenn Sie dies tun, müssen Sie jedes Signal-Segment mit einer unendlichen Anzahl von Nullen. Denken Sie daran, dass die Impulsantwort abgeschnitten werden kann, wenn sie unter dem Rundungsrauschpegel, d. H. Etwa 15 bis 20 Zeitkonstanten, abgeklungen ist. Jedes Segment muss mit Nullen auf links und rechts aufgefüllt werden, um die Expansion während der bidirektionalen Filterung zu ermöglichen. Low-Pass-Filter Dies sind in erster Linie Notizen Es wird nicht in jedem Sinne abgeschlossen sein. 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 Folger 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 zum Beispiel Alpha 0,01 ist, werden Signalunterschiede kleiner als 100 für eine Einstellung von 0 (über eine Ganzzahl-Trunkierung) sorgen, so daß sich der Filter niemals 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 von 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 langsamer die Anpassung an neue Werte und desto geringer die effektive Cutoff-Frequenz) (verifizieren) Für einen Tiefpass erster Ordnung: Bei niedrigeren Frequenzen ist die Reaktion fast vollständig flach Diese Frequenz beträgt -3dB (hat begonnen, in einem weichen Bendknee abzunehmen) bei höheren Frequenzen, die es bei 6dboctave (20dBdecade) abfällt. Höherwertige Variationen 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