Monday 10 July 2017

Moving Average Fir Filter 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 (H4) abs (H4) abs (H8) abs (H16) Achse (0, pi, 0, 1) Copyright-Kopie 2000- Universität von Kalifornien, BerkeleyDokumentation Dieses Beispiel zeigt den empfohlenen Arbeitsablauf zur Erzeugung von C-Code aus einer MATLAB - Codegen-Befehl. Dies sind die folgenden Schritte: 1. Fügen Sie die Codegen-Direktive zur MATLAB-Funktion hinzu, um anzuzeigen, dass sie für die Codegenerierung vorgesehen ist. Mit dieser Richtlinie kann der MATLAB-Codeanalysator auch Warnungen und Fehler identifizieren, die für MATLAB zur Codegenerierung spezifisch sind. 2. Generieren Sie eine MEX-Funktion, um zu überprüfen, ob der MATLAB-Code für die Codegenerierung geeignet ist. Wenn Fehler auftreten, sollten Sie sie vor dem Generieren von C-Code zu beheben. 3. Testen Sie die MEX-Funktion in MATLAB, um sicherzustellen, dass es funktional dem ursprünglichen MATLAB-Code entspricht und dass keine Laufzeitfehler auftreten. 4. Generieren Sie C-Code. 5. Überprüfen Sie den C-Code. Voraussetzungen Es gibt keine Voraussetzungen für dieses Beispiel. Erstellen eines neuen Ordners und Kopieren von relevanten Dateien Der folgende Code erstellt einen Ordner in Ihrem aktuellen Arbeitsordner (pwd). Der neue Ordner enthält nur die Dateien, die für dieses Beispiel relevant sind. Wenn Sie den aktuellen Ordner nicht beeinflussen möchten (oder wenn Sie keine Dateien in diesem Ordner erzeugen können), sollten Sie den Arbeitsordner ändern. Ausführen des Befehls: Erstellen eines neuen Ordners und Kopieren von relevanten Dateien Über die averagingfilter-Funktion Die averagingfilter. m-Funktion fungiert als Mittelungsfilter für das Eingangssignal, das einen Eingabevektor von Werten annimmt und einen Durchschnitt für jeden Wert im Vektor berechnet. Der Ausgangsvektor ist die gleiche Größe und Form wie der Eingangsvektor. Wählen Sie Ihr CountryMoving Average Filter (MA Filter) Loading. Das gleitende Mittelfilter ist ein einfaches Tiefpassfilter (Finite Impulse Response), das üblicherweise zum Glätten eines Arrays von abgetasteten Daten / Signalen verwendet wird. Es benötigt M Abtastwerte von Eingang zu einem Zeitpunkt und nimmt den Durchschnitt dieser M-Abtastungen und erzeugt einen einzigen Ausgangspunkt. Es ist eine sehr einfache LPF (Low Pass Filter) Struktur, die praktisch für Wissenschaftler und Ingenieure, um unerwünschte laute Komponente aus den beabsichtigten Daten zu filtern kommt. Mit zunehmender Filterlänge (Parameter M) nimmt die Glätte des Ausgangs zu, während die scharfen Übergänge in den Daten zunehmend stumpf werden. Dies impliziert, dass dieses Filter eine ausgezeichnete Zeitbereichsantwort, aber einen schlechten Frequenzgang aufweist. Der MA-Filter erfüllt drei wichtige Funktionen: 1) Es benötigt M Eingangspunkte, berechnet den Mittelwert dieser M-Punkte und erzeugt einen einzelnen Ausgangspunkt 2) Aufgrund der Berechnungen / Berechnungen. Führt das Filter eine bestimmte Verzögerung ein 3) Das Filter wirkt als ein Tiefpaßfilter (mit einer schlechten Frequenzbereichsantwort und einer guten Zeitbereichsantwort). Matlab-Code: Der folgende Matlab-Code simuliert die Zeitbereichsantwort eines M-Point Moving Average Filters und zeigt auch den Frequenzgang für verschiedene Filterlängen. Time Domain Response: Auf dem ersten Plot haben wir die Eingabe, die in den gleitenden Durchschnitt Filter geht. Der Eingang ist laut und unser Ziel ist es, den Lärm zu reduzieren. Die nächste Abbildung ist die Ausgangsantwort eines 3-Punkt Moving Average Filters. Es kann aus der Figur abgeleitet werden, dass der Filter mit 3-Punkt-Moving-Average bei der Filterung des Rauschens nicht viel getan hat. Wir erhöhen die Filterabgriffe auf 51 Punkte und wir können sehen, dass sich das Rauschen im Ausgang stark reduziert hat, was in der nächsten Abbildung dargestellt ist. Wir erhöhen die Anzapfungen weiter auf 101 und 501, und wir können beobachten, dass auch wenn das Rauschen fast Null ist, die Übergänge drastisch abgebaut werden (beobachten Sie die Steilheit auf beiden Seiten des Signals und vergleichen Sie sie mit dem idealen Ziegelwandübergang Unser Eingang). Frequenzgang: Aus dem Frequenzgang kann behauptet werden, dass der Roll-off sehr langsam ist und die Stopbanddämpfung nicht gut ist. Bei dieser Stoppbanddämpfung kann klar sein, daß der gleitende Durchschnittsfilter kein Frequenzband von einem anderen trennen kann. Wie wir wissen, führt eine gute Leistung im Zeitbereich zu einer schlechten Leistung im Frequenzbereich 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 Aktion im Frequenzbereich) Externe Links: Empfohlene Bücher: Primäre Seitenleiste


No comments:

Post a Comment