Saturday 6 May 2017

Moving Average Filter In Matlab

Frequenzgang des laufenden Mittelfilters Der Frequenzgang eines LTI-Systems ist die DTFT der Impulsantwort, die Impulsantwort eines L-Sample-gleitenden Mittelwerts Da der gleitende Mittelwert FIR ist, reduziert sich der Frequenzgang auf die endliche Summe We Kann die sehr nützliche Identität verwenden, um den Frequenzgang zu schreiben, wo wir ae minus jomega haben lassen. 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 werden und welche gedämpft werden. Unten ist ein Diagramm 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. Man beachte, daß der Frequenzgang in allen drei Fällen eine Tiefpaßcharakteristik aufweist. Eine konstante Komponente (Nullfrequenz) im Eingang durchläuft das Filter ungedämpft. Bestimmte höhere Frequenzen, wie z. B. pi / 2, werden durch das Filter vollständig eliminiert. Wenn es aber die Absicht war, ein Tiefpassfilter zu entwerfen, dann haben wir das nicht sehr gut gemacht. Einige der höheren Frequenzen werden nur um einen Faktor von etwa 1/10 (für den 16-Punkte-gleitenden Durchschnitt) oder 1/3 (für den vier-Punkte-gleitenden Durchschnitt) gedämpft. Wir können viel besser als das. Der oben genannte Plot wurde durch den folgenden Matlab-Code erzeugt: omega 0: pi / 400: pi H4 (1/4) (1-exp (-iomega4)) ./ (1-exp (-Iomega)) H8 (1/8 ) (1-exp (-iomega)) - (1-exp (-iomega)) - Geispiel (Omega , Abs. (H4) abs (H8) abs (H16) - Achse (0, pi, 0, 1) Copyright-Kopie 2000- - Universität von Kalifornien, BerkeleyMit MATLAB, wie kann ich den dreitägigen gleitenden Durchschnitt einer bestimmten Spalte finden 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: Angesichts der folgenden Matrix a und Maske: Ich habe versucht Umsetzung der conv Befehl, aber ich erhalte einen Fehler. Hier ist der Befehl conv, den ich versucht habe, auf der 2. Spalte der Matrix a zu verwenden: Die Ausgabe, die ich wünsche, wird in der folgenden Matrix gegeben: Wenn Sie irgendwelche Vorschläge haben, würde ich es sehr schätzen. Vielen Dank für die Spalte 2 der Matrix a, ich bin die Berechnung der 3-Tage gleitenden Durchschnitt wie folgt und platziert das Ergebnis in Spalte 4 der Matrix a (Ich umbenannt Matrix a als 39desiredOutput39 nur für Abbildung). Der 3-tägige Durchschnitt von 17, 14, 11 ist 14 der dreitägige Durchschnitt von 14, 11, 8 ist 11 der 3-tägige 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 dreitägigen gleitenden Durchschnitt am unteren Ende beginnt. Die 39valid39 Ausgabe wird nicht angezeigt, bis mindestens 17, 14 und 11. Hoffentlich macht dies Sinn ndash Aaron 12 12 13 am 1:28 Im Allgemeinen würde es helfen, wenn Sie den Fehler anzeigen würde. In diesem Fall tun Sie zwei Dinge falsch: Zuerst muss Ihre Faltung durch drei (oder die Länge der gleitenden Durchschnitt) geteilt werden Zweitens beachten Sie die Größe von c. Sie können nicht einfach passen c in eine. Der typische Weg, um einen gleitenden Durchschnitt wäre, um die gleiche: aber das sieht nicht wie Sie wollen. Stattdessen sind Sie gezwungen, ein paar Zeilen zu verwenden: Was sind die Nachteile der gleitenden durchschnittlichen Filter, wenn es mit Zeitreihen-Daten Es gibt ein bisschen ein verwirrendes in der Terminologie in der Signalverarbeitung. Gleitende Durchschnittsfilter sind Filter, die eine Reihe von gewichteten Mitteln des Eingangssignals berechnen. Zusätzlich zu Balaacutezs Kotoszrsquo Kommentar, ist es wichtig, dass die Gewichte nicht gleich sind, d. h. Sie berechnen das laufende arithmetische Mittel des Eingangssignals. Dieser Filtertyp wird üblicherweise als laufender Mittelwert bezeichnet. Sie sollten nicht verwenden, weil sie einige Frequenzen in Ihrem Spektrum zu beseitigen und andere sind umgekehrt. Das ist schlecht, wenn man sich für ein bestimmtes Frequenzband interessiert, das entweder eliminiert (keine Antwort) oder umgekehrt (Zeichenwechsel und damit Kausalität) ist (siehe auch MATLAB Rezepte für Geowissenschaften, Springer 2010). Heres ein MATLAB Beispiel, um den Effekt der laufenden Mittel zu sehen. Beispielsweise beseitigt das Anlegen des Filters an ein Signal mit einer Periode von etwa 1 / 0,09082 vollständig dieses Signal. Da ferner die Größe des Frequenzgangs der Absolutwert des komplexen Frequenzgangs ist, ist die Betragsantwort tatsächlich zwischen 0,3633 und zwischen 0,4546 und der Nyquist-Frequenz negativ. Alle Signalanteile mit Frequenzen innerhalb dieser Intervalle werden auf der t-Achse gespiegelt. Als ein Beispiel versuchen wir eine Sinuswelle mit einer Periode von 7.0000, z. B. Eine Frequenz von ungefähr 0,1499, die innerhalb des ersten Intervalls mit einer negativen Amplitudenantwort ist: t (1: 100) × 10²sin (2pit / 7) b10 Eins (1,11) / 11m10 Länge (b10) y10 Filter (b10, (M10-1) / 2: end - (m10-1) / 2,1) y10 (end1: endm10-1,1) Nullen (m10-1,1) grafische Darstellung (t, Hierbei ist die Amplitudenantwort des Filters, die die Nullen und die Begrenzung zeigt: h, w freqz (b10,1,512) f 1w / (2pi) Größe abs (h) Diagramm (f, Größe) Die Sinuswelle Mit einer Periode von 7 eine Amplitudenreduktion von z Um 80 aber auch geändertes Zeichen, wie Sie von der Handlung sehen können. Die Beseitigung bestimmter Frequenzen und das Spiegeln des Signals haben wichtige Bedeutung bei der Interpretation der Kausalität in den Geowissenschaften. Diese Filter, obwohl sie standardmäßig in Tabellenkalkulationsprogrammen zum Glätten angeboten werden, sollten daher vollständig vermieden werden. Als Alternative sollten Filter mit einem spezifischen Frequenzgang verwendet werden, wie z. B. ein Butterworth-Tiefpassfilter. Haben Sie eine Frage, die Sie schnell beantwortet haben müssen


No comments:

Post a Comment