Skip to main content

Moving Average Filter Design


Frequenzgang des laufenden Mittelfilters Der Frequenzgang eines LTI-Systems ist der DTFT der Impulsantwort, Die Impulsantwort eines L-Sample-Gleitdurchschnitts ist Da der gleitende Mittelwertfilter FIR ist, reduziert sich der Frequenzgang auf die endliche Summe Wir Kann die sehr nützliche Identität verwenden, um den Frequenzgang zu schreiben, wo wir ae minus jomega gelassen haben. N 0 und M L minus 1. Wir können an der Größe dieser Funktion interessiert sein, um zu bestimmen, welche Frequenzen durch den Filter ungedämpft und die abgeschwächt werden. Unten ist eine Darstellung der Größe dieser Funktion für L 4 (rot), 8 (grün) und 16 (blau). Die horizontale Achse reicht von null bis pi Radiant pro Probe. Beachten Sie, dass in allen drei Fällen der Frequenzgang eine Tiefpasscharakteristik aufweist. Eine konstante Komponente (Nullfrequenz) im Eingang geht durch den Filter ungedämpft. Bestimmte höhere Frequenzen wie pi 2 werden durch den Filter vollständig eliminiert. Allerdings, wenn die Absicht war, einen Tiefpassfilter zu entwerfen, dann haben wir nicht sehr gut gemacht. Einige der höheren Frequenzen werden nur um einen Faktor von etwa 110 (für den 16 Punkt gleitenden Durchschnitt) oder 13 (für den vier Punkt gleitenden Durchschnitt) gedämpft. Wir können viel besser machen. Die obige Auftragung wurde durch den folgenden Matlab-Code erstellt: Omega 0: pi400: pi H4 (14) (1-exp (-iomega4)) (1-exp (-iomega)) H8 (18) (1-exp (- (1-exp (-iomega)) (1-exp (-iomega)) (1-exp (-iomega)) (1-exp (-iomega)) (1-exp (-Iomega) H16)) Achse (0, pi, 0, 1) Copyright Kopie 2000- - Universität von Kalifornien, Berkeley Ich muss einen gleitenden Durchschnittsfilter 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 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: 08The 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. Probieren Sie es jetzt

Comments