5 Punkt Moving Average Filter Matlab


Mit MATLAB, wie kann ich den 3-tägigen gleitenden Durchschnitt einer bestimmten Spalte einer Matrix finden und den gleitenden Durchschnitt an diese Matrix anschließen Ich versuche, den 3-tägigen gleitenden Durchschnitt von unten nach oben der Matrix zu berechnen, die ich mir zur Verfügung gestellt habe Code. Geben Sie die folgende Matrix a und mask. Ich habe versucht, die Umsetzung der Conv-Befehl, aber ich bin ein Fehler Hier ist der Conv-Befehl habe ich versucht, auf der 2. Spalte der Matrix a verwenden. Die Ausgabe, die ich wünsche, ist in der Folgende Matrix. Wenn Sie irgendwelche Vorschläge haben, würde ich es sehr dankbar sein Danke. Für Spalte 2 der Matrix a, ich berechnen die 3-Tage gleitenden Durchschnitt wie folgt und Platzierung des Ergebnisses in Spalte 4 der Matrix ein Ich benannte Matrix a als WantedOutput nur zur Veranschaulichung 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 an der Unterseite beginnt. Die gültige Ausgabe wird erst bei mindestens 17, 14 und 11 angezeigt Hoffentlich ist das sinnvoll Aaron Jun 12 13 bei 1 28. Im Allgemeinen würde es helfen, wenn du den Fehler zeigen würdest. In diesem Fall machst du zwei Dinge falsch. Erst deine Faltung muss durch drei oder die Länge des gleitenden Durchschnitts geteilt werden. Zweitens bemerken Sie die Größe von c Sie können nicht einfach passen c in a Die typische Art, einen gleitenden Durchschnitt zu bekommen wäre, dasselbe zu verwenden. Aber das sieht nicht so aus, wie Sie wollen. Stattdessen sind Sie gezwungen, ein paar Zeilen zu benutzen Antwort des laufenden Durchschnittsfilters. Der Frequenzgang eines LTI-Systems ist der DTFT der Impulsantwort. Die Impulsantwort eines L-Sample-Gleitdurchschnitts ist. Da der gleitende Durchschnittsfilter FIR ist, reduziert sich der Frequenzgang auf die endliche Summe. Wir können die sehr nützliche Identität verwenden, um den Frequenzgang zu schreiben, wo wir uns von NG und ML 1 gelassen haben. Wir können an der Größe dieser Funktion interessiert sein, um festzustellen, welche Frequenzen durch den Filter ungedämpft sind und welche Sind abgeschwächt 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 radians pro Probe. Nichts, dass in allen drei Fällen der Frequenzgang eine Tiefpasscharakteristik A konstant hat Komponente Nullfrequenz im Eingang passiert durch den Filter ungedämpft Bestimmte höhere Frequenzen, wie z. B. 2, werden durch den Filter vollständig eliminiert. Wenn jedoch die Absicht war, einen Tiefpassfilter zu entwerfen, dann haben wir nicht sehr gut getan. Einige der höheren Frequenzen sind Gedämpft nur um einen Faktor von etwa 1 10 für die 16 Punkt gleitenden Durchschnitt oder 1 3 für die vier Punkte gleitenden Durchschnitt Wir können viel besser als das. Die oben genannte Handlung wurde durch die folgenden Matlab Code. omega 0 pi 400 pi H4 1 erstellt 4 1-exp-o omega 4 1-exp-o omega H8 1 8 1-exp-o omega H 16 1-exp-o omega 16 1-exp-o Omega-Plot Omega, abs H4 abs H8 abs H16 Achse 0, pi, 0, 1.Copyright 2000- - University of California, Berkeley. Ich muss einen gleitenden Durchschnitt über eine Datenreihe berechnen, innerhalb einer for-Schleife muss ich den gleitenden Durchschnitt über N 9 bekommen Tage Das Array I m Computing in ist 4 Serie von 365 Werten M, die selbst sind Mittelwerte eines anderen Satzes von Daten Ich möchte die Mittelwerte meiner Daten mit dem gleitenden Durchschnitt in einer Handlung zu zeichnen. Ich googeln ein bisschen über gleitende Mittelwerte Und der Conv-Befehl und fand etwas, was ich versucht, Umsetzung in meinem Code. So im Grunde, ich berechnen meine Mittel und plot es mit einem falschen gleitenden Durchschnitt Ich wählte den WTS-Wert direkt von der Mathworks-Website, so dass ist falsche Quelle Mein Problem aber, Ist, dass ich nicht verstehe, was diese wts ist, könnte jemand erklären Wenn es etwas mit den Gewichten der Werte zu tun hat, die in diesem Fall ungültig sind Alle Werte werden gleich gewichtet. Und wenn ich das ganz falsch mache, könnte ich bekommen Einige Hilfe mit ihm. Mein aufrichtigster Dankeschön 23. September 14 um 19 05.Using conv ist eine hervorragende Möglichkeit, einen gleitenden Durchschnitt zu implementieren In dem Code, den Sie verwenden, ist wts, wie viel Sie jeden Wert wiegen, wie Sie die Summe von Dieser Vektor sollte immer gleich eins sein Wenn du deinen Wert gleichmäßig gewichten möchtest und eine Größe N bewegter Filter machst, dann würdest du es tun wollen. Um das gültige Argument in conv wird dazu führen, dass du weniger Werte in Ms hast, als du in M ​​Use hast Wenn du die Effekte von Null-Polsterung nicht beachtet hast Wenn du die Signalverarbeitungs-Toolbox hast, kannst du cconv benutzen, wenn du einen kreisförmigen gleitenden Durchschnitt probieren möchtest. Etwas mögen. Sie sollten die Conv - und Cconv-Dokumentation lesen, um weitere Informationen zu erhalten, wenn du schon tippt. Sie können Filter verwenden, um einen laufenden Durchschnitt zu finden, ohne eine for-Schleife zu verwenden. Dieses Beispiel findet den laufenden Durchschnitt eines 16-Element-Vektors, wobei eine Fenstergröße von 5,2 glatt als Teil der Curve Fitting Toolbox verwendet wird, die in den meisten Fällen verfügbar ist Glatt y glättet die Daten im Spaltenvektor y unter Verwendung eines gleitenden Durchschnittsfilters Ergebnisse werden im Spaltenvektor zurückgegeben yy Die Standardspanne für den gleitenden Durchschnitt beträgt 5.

Comments