Noise Filtering By N Punkt Gleitender Durchschnitt


Dokumentation Dieses Beispiel zeigt, wie man gleitende durchschnittliche Filter und Resampling verwendet, um den Effekt von periodischen Komponenten der Tageszeit auf stündliche Temperaturmessungen zu isolieren sowie unerwünschte Leitungsrauschen von einer offenen Spannungsmessung zu entfernen. Das Beispiel zeigt auch, wie man die Pegel eines Taktsignals glättet, während die Kanten mit einem Medianfilter erhalten bleiben. Das Beispiel zeigt auch, wie man einen Hampelfilter benutzt, um große Ausreißer zu entfernen. Motivation Glättung ist, wie wir wichtige Muster in unseren Daten entdecken, während wir Dinge entfernen, die unwichtig sind (d. h. Lärm). Wir verwenden Filterung, um diese Glättung durchzuführen. Das Ziel der Glättung ist es, langsame Wertänderungen zu erzeugen, so dass es einfacher ist, Trends in unseren Daten zu sehen. Manchmal, wenn Sie Eingabedaten untersuchen, können Sie die Daten glätten, um einen Trend im Signal zu sehen. In unserem Beispiel haben wir einen Satz von Temperaturmessungen in Celsius, die jede Stunde am Logan Airport für den ganzen Monat Januar 2011 genommen werden. Beachten Sie, dass wir visuell sehen können, dass die Tageszeit auf die Temperaturablesung hat. Wenn Sie sich nur für die tägliche Temperaturvariation über den Monat interessieren, tragen die stündlichen Schwankungen nur zu Lärm, was die täglichen Variationen schwer zu erkennen vermag. Um die Wirkung der Tageszeit zu beseitigen, möchten wir gern unsere Daten mit einem gleitenden Durchschnittsfilter verarbeiten. Ein beweglicher Durchschnittsfilter In seiner einfachsten Form nimmt ein gleitender Durchschnittsfilter der Länge N den Durchschnitt aller N aufeinanderfolgenden Abtastwerte der Wellenform an. Um einen gleitenden Durchschnittsfilter an jeden Datenpunkt anzuwenden, konstruieren wir unsere Koeffizienten unseres Filters, so dass jeder Punkt gleich gewichtet ist und 124 zum Gesamtdurchschnitt beiträgt. Dies gibt uns die durchschnittliche Temperatur über jeden 24 Stunden Zeitraum. Filterverzögerung Beachten Sie, dass der gefilterte Ausgang um etwa zwölf Stunden verzögert wird. Dies ist aufgrund der Tatsache, dass unsere gleitenden durchschnittlichen Filter hat eine Verzögerung. Jeder symmetrische Filter der Länge N hat eine Verzögerung von (N-1) 2 Proben. Wir können diese Verzögerung manuell berücksichtigen. Extrahieren von durchschnittlichen Unterschieden Alternativ können wir auch den gleitenden Durchschnittsfilter verwenden, um eine bessere Schätzung zu erhalten, wie die Tageszeit die Gesamttemperatur beeinflusst. Um dies zu tun, subtrahieren Sie zuerst die geglätteten Daten aus den stündlichen Temperaturmessungen. Dann segmentieren Sie die differenzierten Daten in Tage und nehmen den Durchschnitt über alle 31 Tage im Monat. Extrahieren von Peak-Hüllkurven Manchmal möchten wir auch gern eine abweichende Schätzung haben, wie sich die Höhen und Tiefen unseres Temperatursignals täglich ändern. Um dies zu tun, können wir die Hüllkurvenfunktion verwenden, um extreme Höhen und Tiefen zu verbinden, die über eine Teilmenge des 24-Stunden-Zeitraums erkannt werden. In diesem Beispiel stellen wir sicher, dass es mindestens 16 Stunden zwischen jedem extrem hohen und extrem niedrigen gibt. Wir können auch ein Gefühl dafür, wie die Höhen und Tiefen sind Trends, indem sie den Durchschnitt zwischen den beiden Extremen. Weighted Moving Average Filter Andere Arten von gleitenden durchschnittlichen Filtern nicht Gewicht jeder Probe gleichmäßig. Ein weiterer gemeinsamer Filter folgt der Binomialexpansion von (12,12) n Diese Art von Filter nähert sich einer Normalkurve für große Werte von n an. Es ist nützlich für das Herausfiltern von Hochfrequenzrauschen für kleine n. Um die Koeffizienten für den Binomialfilter zu finden, fliegen Sie 12 12 mit sich selbst und dann iterativ die Ausgabe mit 12 12 eine vorgeschriebene Anzahl von Malen. Verwenden Sie in diesem Beispiel fünf vollständige Iterationen. Ein weiterer Filter, der dem Gaußschen Expansionsfilter etwas ähnelt, ist der exponentielle gleitende Mittelfilter. Diese Art von gewichteten gleitenden durchschnittlichen Filter ist einfach zu konstruieren und erfordert keine große Fenstergröße. Sie setzen einen exponentiell gewichteten gleitenden Durchschnittsfilter um einen Alpha-Parameter zwischen Null und Eins ein. Ein höherer Wert von Alpha wird weniger Glättung haben. Vergrößere die Lesungen für einen Tag. Wählen Sie Ihr LandMoving Average Filter (MA Filter) Loading. Der gleitende Durchschnittsfilter ist ein einfacher Low Pass FIR (Finite Impulse Response) Filter, der üblicherweise zum Glätten eines Arrays von abgetastetem Datensignal verwendet wird. Es nimmt M Abtastwerte der Eingabe zu einer Zeit und nehmen den Durchschnitt dieser M-Samples und erzeugt einen einzelnen Ausgangspunkt. Es ist eine sehr einfache LPF (Low Pass Filter) Struktur, die für Wissenschaftler und Ingenieure praktisch ist, um unerwünschte geräuschvolle Komponenten aus den beabsichtigten Daten zu filtern. Wenn die Filterlänge zunimmt (der Parameter M), erhöht sich die Glätte des Ausgangs, während die scharfen Übergänge in den Daten zunehmend stumpf werden. Dies impliziert, dass dieser Filter eine ausgezeichnete Zeitbereichsantwort hat, aber eine schlechte Frequenzantwort. Der MA-Filter führt drei wichtige Funktionen aus: 1) Es nimmt M Eingangspunkte, berechnet den Mittelwert dieser M-Punkte und erzeugt einen einzelnen Ausgangspunkt 2) Aufgrund der Berechnungsberechnungen. Der Filter führt eine bestimmte Verzögerung ein 3) Der Filter fungiert als Tiefpassfilter (mit schlechter Frequenzbereichsantwort und einer guten Zeitbereichsantwort). Matlab-Code: Nach dem Matlab-Code simuliert die Zeitbereichsantwort eines M-Punkt-Moving Average-Filters und zeichnet auch den Frequenzgang für verschiedene Filterlängen auf. Zeit Domain Response: Auf dem ersten Plot haben wir die Eingabe, die in den gleitenden Mittelfilter geht. Der Eingang ist laut und unser Ziel ist es, den Lärm zu reduzieren. Die nächste Abbildung ist die Ausgangsreaktion eines 3-Punkt-Moving Average-Filters. Es kann aus der Figur abgeleitet werden, dass der 3-Punkt-Moving Average-Filter nicht viel beim Ausfiltern des Rauschens getan hat. Wir erhöhen die Filterhähne auf 51 Punkte und wir können sehen, dass das Rauschen in der Ausgabe viel reduziert hat, was in der nächsten Abbildung dargestellt ist. Wir erhöhen die Hähne weiter auf 101 und 501 und wir können beobachten, dass - obwohl das Rauschen fast null ist, die Übergänge drastisch abgestumpft werden (beobachten Sie die Steigung auf beiden Seiten des Signals und vergleichen Sie sie mit dem idealen Ziegelwandübergang in Unsere Eingabe). Frequenzgang: Aus dem Frequenzgang kann behauptet werden, dass der Roll-off sehr langsam ist und die Stoppbanddämpfung nicht gut ist. Angesichts dieser Stoppbanddämpfung kann eindeutig der gleitende Durchschnittsfilter kein Frequenzband von einem anderen trennen. Da wir wissen, dass eine gute Leistung im Zeitbereich zu schlechter Leistung im Frequenzbereich führt und umgekehrt. Kurz gesagt, der gleitende Durchschnitt ist ein außergewöhnlich guter Glättungsfilter (die Aktion im Zeitbereich), aber ein außergewöhnlich schlechtes Tiefpaßfilter (die Handlung im Frequenzbereich) Externe Links: Empfohlene Bücher: Primäres SidebarThe Moving Average als Filter Der gleitende Durchschnitt wird oft zum Glätten von Daten in Gegenwart von Rauschen verwendet. Der einfache gleitende Durchschnitt wird nicht immer als der Finite Impulse Response (FIR) Filter erkannt, der es ist, während er tatsächlich einer der häufigsten Filter in der Signalverarbeitung ist. Wenn man sie als Filter behandelt, kann man sie beispielsweise mit Fenster-Sinc-Filtern vergleichen (siehe die Artikel über Tiefpass-Hochpass - und Bandpass - und Bandsperrfilter für Beispiele dafür). Der Hauptunterschied zu diesen Filtern besteht darin, dass der gleitende Durchschnitt für Signale geeignet ist, für die die nützlichen Informationen im Zeitbereich enthalten sind. Von denen Glättungsmessungen durch Mittelung ein Beispiel sind. Window-Sinc-Filter sind dagegen starke Darsteller im Frequenzbereich. Mit Ausgleich in der Audioverarbeitung als typisches Beispiel. Es gibt einen detaillierteren Vergleich der beiden Arten von Filtern in Time Domain vs. Frequency Domain Performance von Filtern. Wenn Sie Daten haben, für die sowohl die Zeit als auch der Frequenzbereich wichtig sind, dann möchten Sie vielleicht einen Blick auf Variationen über den Moving Average haben. Die eine Anzahl von gewichteten Versionen des gleitenden Durchschnittes darstellt, die besser sind. Der gleitende Durchschnitt der Länge (N) kann so geschrieben werden, wie es typischerweise implementiert ist, wobei die aktuelle Ausgabeprobe als der Durchschnitt der vorherigen (N) Abtastwerte vorliegt. Als Filter erscheint der gleitende Durchschnitt eine Faltung der Eingangsfolge (xn) mit einem rechteckigen Puls der Länge (N) und der Höhe (1N) (um den Bereich des Pulses und damit die Verstärkung des Filters zu bilden , eins ). In der Praxis ist es am besten, (N) ungerade zu nehmen. Obwohl ein gleitender Durchschnitt auch unter Verwendung einer geraden Anzahl von Abtastwerten berechnet werden kann, hat die Verwendung eines ungeraden Wertes für (N) den Vorteil, daß die Verzögerung des Filters eine ganzzahlige Anzahl von Abtastwerten ist, da die Verzögerung eines Filters mit (N) Proben sind genau ((N-1) 2). Der gleitende Durchschnitt kann dann exakt mit den Originaldaten ausgerichtet werden, indem er durch eine ganzzahlige Anzahl von Samples verschoben wird. Zeitdomäne Da der gleitende Durchschnitt eine Faltung mit einem rechteckigen Puls ist, ist sein Frequenzgang eine Sinc-Funktion. Das macht es so etwas wie das Dual des Fenster-Sinc-Filters, denn das ist eine Faltung mit einem Sinc-Puls, der zu einem rechtwinkligen Frequenzgang führt. Es ist dieser Sinc-Frequenzgang, der den gleitenden Durchschnitt zu einem schlechten Performer im Frequenzbereich macht. Allerdings führt es im Zeitbereich sehr gut aus. Daher ist es perfekt, um Daten zu sperren, um Rauschen zu entfernen, während gleichzeitig noch eine schnelle Schrittantwort beibehalten wird (Abbildung 1). Für die typische additive White Gaussian Noise (AWGN), die oft angenommen wird, hat die Mittelung (N) Samples die Wirkung, das SNR um einen Faktor (sqrt N) zu erhöhen. Da das Rauschen für die einzelnen Proben unkorreliert ist, gibt es keinen Grund, jede Probe anders zu behandeln. Daher wird der gleitende Durchschnitt, der jeder Probe das gleiche Gewicht gibt, die maximale Menge an Rauschen für eine gegebene Schrittantwortschärfe loswerden. Implementierung Da es sich um einen FIR-Filter handelt, kann der gleitende Durchschnitt durch Faltung umgesetzt werden. Es wird dann die gleiche Effizienz (oder das Fehlen davon) wie jeder andere FIR-Filter haben. Allerdings kann es auch rekursiv realisiert werden. Es folgt unmittelbar aus der Definition, dass diese Formel das Ergebnis der Ausdrücke für (yn) und (yn1) ist, dh wo wir bemerken, dass die Änderung zwischen (yn1) und (yn) ist, dass ein zusätzlicher Term (xn1N) erscheint Das Ende, während der Begriff (xn-N1N) von Anfang an entfernt wird. In praktischen Anwendungen ist es oft möglich, die Division durch (N) für jeden Term zu verlassen, indem die resultierende Verstärkung von (N) an einer anderen Stelle kompensiert wird. Diese rekursive Umsetzung wird viel schneller als die Faltung sein. Jeder neue Wert von (y) kann mit nur zwei Additionen berechnet werden, anstelle der (N) Additionen, die für eine einfache Implementierung der Definition notwendig wären. Eine Sache, mit einer rekursiven Umsetzung zu suchen, ist, dass Rundungsfehler sich ansammeln werden. Dies kann oder auch kein Problem für Ihre Anwendung sein, aber es bedeutet auch, dass diese rekursive Implementierung tatsächlich besser funktionieren wird mit einer Integer-Implementierung als mit Gleitkommazahlen. Das ist ganz ungewöhnlich, da eine Gleitkomma-Implementierung in der Regel einfacher ist. Die Schlussfolgerung von all dem muss sein, dass Sie nie unterschätzen die Nützlichkeit der einfachen gleitenden durchschnittlichen Filter in Signalverarbeitung Anwendungen. Filter Design Tool Dieser Artikel wird mit einem Filter Design Tool ergänzt. Experimentiere mit verschiedenen Werten für (N) und visualisiere die resultierenden Filter. Versuche es jetzt Ich muss einen gleitenden Mittelfilter mit einer Grenzfrequenz von 7,8 Hz entwerfen. Ich habe gleitende durchschnittliche Filter vor, aber so weit wie Im bewusst, der einzige Parameter, der eingezogen werden kann, ist die Anzahl der Punkte gemittelt werden. Wie kann sich das auf eine Grenzfrequenz beziehen. Die Umkehrung von 7,8 Hz beträgt 130 ms und arbeitet mit Daten, die bei 1000 Hz abgetastet werden. Bedeutet dies, dass ich sollte eine gleitende durchschnittliche Filter-Fenster Größe von 130 Proben, oder gibt es etwas anderes, dass ich hier fehlt gefragt Juli 18 13 um 9:52 Der gleitende durchschnittliche Filter ist der Filter in der Zeitzone zu entfernen verwendet Das Rauschen hinzugefügt und auch für die Glättung Zweck, aber wenn Sie den gleichen gleitenden Durchschnitt Filter im Frequenzbereich für Frequenz Trennung dann Leistung wird am schlimmsten sein. So in diesem Fall verwenden Frequenzbereich Filter ndash user19373 Feb 16 16 at 5:53 Der gleitende durchschnittliche Filter (manchmal umgangssprachlich als Boxcar Filter) hat eine rechteckige Impulsantwort: Oder anders gesagt: Denken Sie daran, dass eine diskrete Zeit-System Frequenzgang Ist gleich der diskreten Zeit-Fourier-Transformation seiner Impulsantwort, wir können es wie folgt berechnen: Was am meisten interessiert war für Ihren Fall ist die Größenreaktion des Filters, H (Omega). Mit einem paar einfachen Manipulationen können wir das in einer leichter zu verstehenden Form bekommen: Das kann nicht leichter verstehen. Allerdings wegen Eulers Identität. Erinnere dich daran: Deshalb können wir das obige schreiben wie: Wie ich schon sagte, was du wirklich besorgt hast, ist die Größe des Frequenzganges. So können wir die Größenordnung der oben genannten nehmen, um es weiter zu vereinfachen: Anmerkung: Wir sind in der Lage, die exponentiellen Begriffe auszuschließen, weil sie nicht die Größe des Ergebnisses e 1 für alle Werte von Omega beeinflussen. Da xy xy für irgendwelche zwei endlichen komplexen Zahlen x und y ist, können wir schließen, dass das Vorhandensein der exponentiellen Terme die Gesamtgrößenreaktion nicht beeinflussen (stattdessen beeinflussen sie die Systemphasenreaktion). Die resultierende Funktion innerhalb der Größenklammern ist eine Form eines Dirichlet-Kernels. Es wird manchmal eine periodische Sinc-Funktion genannt, weil es der Sinc-Funktion etwas im Aussehen ähnelt, aber stattdessen periodisch ist. Wie auch immer, da die Definition der Cutoff-Frequenz etwas unterdimensioniert ist (-3 dB Punkt -6 dB Punkt erste Sidelobe null), können Sie die obige Gleichung verwenden, um zu lösen, was auch immer Sie brauchen. 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. Setzen Sie Omega gleich der Cutoff-Frequenz. Um eine kontinuierliche Frequenz auf die diskrete Zeit-Domain zuzuordnen, denken Sie daran, dass Omega 2pi frac, wo fs ist Ihre Sample-Rate. Finden Sie den Wert von N, der Ihnen die beste Übereinstimmung zwischen der linken und rechten Seite der Gleichung gibt. Das sollte die Länge deines gleitenden Durchschnitts sein. Wenn N die Länge des gleitenden Durchschnitts ist, dann ist eine ungefähre Grenzfrequenz F (gültig für N gt 2) in normalisierter Frequenz Fffs: Die Umkehrung dieser ist Diese Formel ist asymptotisch korrekt für großes N und hat etwa 2 Fehler Für N2 und weniger als 0,5 für N4. P. S. Nach zwei Jahren, hier endlich was war der Ansatz verfolgt. Das Ergebnis beruhte auf der Annäherung des MA-Amplitudenspektrums um f0 als Parabel (2. Ordnung Serie) nach MA (Omega) ca. 1 (frac-arc) 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-arc) Omega2 erhält. Die Lösung von MA (Omega) - Hand 0 gibt die obigen Ergebnisse an, wobei 2pi F Omega. Alle oben genannten bezieht sich auf die -3dB abgeschnitten Frequenz, das Thema dieser Post. Manchmal ist es aber interessant, ein Dämpfungsprofil im Stopband zu erhalten, das mit dem eines 1. Ordnung IIR Tiefpassfilters (einpoliges LPF) mit einer gegebenen -3dB-Cutoff-Frequenz vergleichbar ist (ein solches LPF heißt auch Leck-Integrator, Mit einem Pol nicht genau bei DC aber in der Nähe davon). In der Tat haben sowohl die MA als auch die 1. Ordnung IIR LPF -20dBdecade-Steigung im Stop-Band (man braucht ein größeres N als das in der Figur verwendete, N32, um dies zu sehen), aber während MA spektrale Nullen bei FkN und a hat 1f evelope, der IIR filter hat nur ein 1f profil. Wenn man einen MA-Filter mit ähnlichen Rauschfilter-Fähigkeiten wie dieses IIR-Filter erhalten möchte und die 3dB-Cut-Off-Frequenzen gleich ist, beim Vergleich der beiden Spektren, würde er erkennen, dass die Stopband-Welligkeit des MA-Filters endet 3dB unterhalb der des IIR-Filters. Um die gleiche Stoppband-Welligkeit (d. h. gleiche Rauschleistungsdämpfung) als das IIR-Filter zu erhalten, können die Formeln wie folgt modifiziert werden: Ich habe das Mathematica-Skript zurückgelegt, wo ich den Cut-Off für mehrere Filter, einschließlich der MA-Datei, berechnet habe. Das Ergebnis beruhte 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 die Kreuzung mit 1sqrt von dort ableiten. Ndash Massimo Jan 17 16 at 2:08

Comments

Popular Posts