Wednesday 13 September 2017

Moving Average Filter Faltung


Mit MATLAB, wie finde ich den 3-tägigen gleitenden Durchschnitt einer bestimmten Spalte einer Matrix und füge den gleitenden Durchschnitt zu dieser Matrix an Ich versuche, den 3-tägigen gleitenden Durchschnitt von unten nach oben der Matrix zu berechnen. Ich habe meinen Code bereitgestellt: Angesichts der folgenden Matrix a und Maske: Ich habe versucht, den Conv-Befehl zu implementieren, aber ich bekomme einen Fehler. Hier ist der Conv-Befehl, den ich in der 2. Spalte der Matrix a verwendet habe: Die Ausgabe, die ich wünsche, ist in der folgenden Matrix gegeben: Wenn Sie irgendwelche Vorschläge haben, würde ich es sehr schätzen. Vielen Dank Für Spalte 2 von Matrix a, berechne ich den 3-tägigen gleitenden Durchschnitt wie folgt und platziere das Ergebnis in Spalte 4 der Matrix a (ich benannte Matrix a als 39desiredOutput39 nur zur Illustration). Der 3-Tages-Durchschnitt von 17, 14, 11 ist 14 der 3-Tages-Durchschnitt von 14, 11, 8 ist 11 der 3-Tages-Durchschnitt von 11, 8, 5 ist 8 und der 3-Tage-Durchschnitt von 8, 5, 2 ist 5. Es gibt keinen Wert in den unteren 2 Zeilen für die 4. Spalte, da die Berechnung für den 3-tägigen gleitenden Durchschnitt am Anfang beginnt. Die 39valid39 Ausgabe wird nicht angezeigt, bis mindestens 17, 14 und 11. Hoffentlich ist das sinnlich ndash Aaron Jun 12 13 um 1:28 Im Allgemeinen würde es helfen, wenn du den Fehler zeigen würdest. In diesem Fall machst du zwei Dinge falsch: Zuerst muss deine Faltung durch drei geteilt werden (oder die Länge des gleitenden Durchschnitts) Zweitens bemerke die Größe von c. Du kannst nicht einfach in einen. Die typische Art, einen gleitenden Durchschnitt zu bekommen, wäre, dasselbe zu verwenden: aber das sieht nicht so aus, was du willst. Stattdessen sind Sie gezwungen, ein paar Zeilen zu benutzen: 29. September 2013 Umzugsdurchschnitt durch Faltung Was ist gleitender Durchschnitt und was ist es gut für Wie ist das Bewegen der Mittelung durch die Faltung bewegte Bewegen Durchschnitt ist eine einfache Operation verwendet in der Regel zu unterdrücken Lärm von a Signal: Wir setzen den Wert jedes Punktes auf den Mittelwert der Werte in seiner Nachbarschaft. Nach einer Formel: Hier ist x die Eingabe und y ist das Ausgangssignal, während die Größe des Fensters w ist, soll ungerade sein. Die obige Formel beschreibt eine symmetrische Operation: Die Proben werden von beiden Seiten des tatsächlichen Punktes genommen. Unten ist ein echtes Leben Beispiel. Der Punkt, an dem das Fenster gelegt wird, ist rot. Werte außerhalb von x sollen Nullen sein: Um herumzuspielen und die Effekte des gleitenden Durchschnitts zu sehen, werfen Sie einen Blick auf diese interaktive Demonstration. Wie man es durch Faltung macht Wie Sie vielleicht erkannt haben, ist die Berechnung des einfachen gleitenden Durchschnitts ähnlich der Faltung: In beiden Fällen wird ein Fenster entlang des Signals verschoben und die Elemente im Fenster werden zusammengefasst. Also, versuch es, das Gleiche zu tun, indem du eine Faltung benutzt. Verwenden Sie die folgenden Parameter: Die gewünschte Ausgabe ist: Als erster Ansatz, versuchen wir, was wir bekommen, indem wir das x-Signal durch den folgenden k-Kernel falten: Der Ausgang ist genau dreimal größer als der erwartete. Es kann auch gesehen werden, dass die Ausgangswerte die Zusammenfassung der drei Elemente im Fenster sind. Es ist, weil während der Faltung das Fenster verschoben wird, werden alle Elemente in ihm mit einem multipliziert und dann zusammengefasst: yk 1 cdot x 1 cdot x 1 cdot x Um die gewünschten Werte von y zu erhalten. Die Ausgabe wird durch 3 geteilt: Nach einer Formel, die die Teilung einschließt: Aber wäre es nicht optimal, die Teilung während der Faltung zu machen. Hier kommt die Idee, indem sie die Gleichung neu arrangiert: So werden wir den folgenden k Kernel verwenden: Auf diese Weise werden wir Bekomme die gewünschte Ausgabe: Im Allgemeinen: Wenn wir gleitenden Durchschnitt durch Faltung mit einer Fenstergröße von w machen wollen. Wir verwenden den folgenden k Kernel: Eine einfache Funktion, die den gleitenden Durchschnitt macht: Ein Beispiel ist: Der 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

No comments:

Post a Comment