Fahrschule Dsp


Die Wissenschaftler und Ingenieure Leitfaden für digitale Signalverarbeitung Von Steven W. Smith, Ph. D. Wie der Name andeutet, arbeitet das gleitende Mittelfilter durch Mittelung einer Anzahl von Punkten von dem Eingangssignal, um jeden Punkt im Ausgangssignal zu erzeugen. In Gleichung ist dies geschrieben: Wo ist das Eingangssignal, ist das Ausgangssignal und M ist die Anzahl der Punkte im Mittelwert. Beispielsweise ist bei einem 5-Punkt-Gleitmittelfilter Punkt 80 im Ausgangssignal gegeben durch: Alternativ kann die Gruppe von Punkten aus dem Eingangssignal symmetrisch um den Ausgangspunkt gewählt werden: Dies entspricht der Änderung der Summation in Gl . 15-1 von: j 0 bis M -1, bis: j - (M -1) / 2 bis (M -1) / 2. Zum Beispiel wird in einem 10-Punkt-gleitenden Durchschnittsfilter der Index j. Kann von 0 bis 11 (einseitige Mittelung) oder -5 bis 5 (symmetrische Mittelung) laufen. Symmetrische Mittelung erfordert, dass M eine ungerade Zahl ist. Die Programmierung ist etwas einfacher mit den Punkten auf nur einer Seite, jedoch ergibt sich eine relative Verschiebung zwischen den Eingangs - und Ausgangssignalen. Sie sollten erkennen, dass das gleitende Durchschnittsfilter eine Faltung mit einem sehr einfachen Filterkern ist. Zum Beispiel hat ein 5-Punkt-Filter den Filterkernel: 82300, 0, 1/5, 1/5, 1/5, 1/5, 1/5, 0, 08230. Das heißt, der gleitende Durchschnittsfilter ist eine Faltung Des Eingangssignals mit einem Rechteckimpuls mit einer Fläche von Eins. Tabelle 15-1 zeigt ein Programm zum Implementieren des gleitenden mittleren Filterputs Moving Average Verwenden von Systemobjekten Erstellen Sie ein dsp. MovingAverage-Systemobjekt, um den 10-Punkt-gleitenden Durchschnitt des Streaming-Signals zu berechnen. Verwenden Sie ein dsp. MatFileReader-Systemobjekt, um Daten aus der Beschleunigungsmesser-MAT-Datei zu lesen. Zeigen Sie die gleitende Durchschnittsleistung im Zeitbereich an. Die Systemobjekte indizieren die Daten automatisch in Frames. Wählen Sie eine Rahmengröße von 714 Proben. Es gibt 7140 Proben oder 10 Rahmen von Daten in jeder Spalte der MAT-Datei. Jede Iterationsschleife berechnet den gleitenden Durchschnitt von 1 Datenrahmen. Die Verarbeitungsschleife ist sehr einfach. Die Systemobjekte behandeln die Datenindizierung und geben diese automatisch an. MATLAB und Simulink sind eingetragene Warenzeichen von The MathWorks, Inc. Siehe auch www. mathworks / trademarks für eine Liste anderer Marken, die Eigentum von The MathWorks sind. Weitere Produkt - oder Markennamen sind Warenzeichen oder eingetragene Warenzeichen der jeweiligen Eigentümer. Wählen Sie Ihr CountryAn einleitenden digitalen Filter Nun öffnen Sie MicroModeler DSP und wählen Sie einen digitalen Filter von der Symbolleiste an der Oberseite und ziehen Sie sie zu unserer Anwendung. Nun wählen Sie einen gleitenden Durchschnitt Filter, weil seine eine der einfachsten Arten von Filtern. Nach dem Löschen des Filters werden die Anzeigen automatisch aktualisiert. (Klicken Sie auf MicroModeler DSP in einem neuen Fenster zu starten) Wir alle wissen, was ein Durchschnitt ist - fügen Sie die Zahlen zusammen und teilen, wie viele es gibt. Ein gleitender Durchschnitt filtert genau das. Es speichert eine Historie der letzten N Zahlen und gibt ihren Durchschnitt aus. Jedes Mal, wenn eine neue Zahl kommt, wird der Mittelwert effektiv aus den gespeicherten Mustern neu berechnet und eine neue Zahl ausgegeben. Der Frequenzgang eines Filters Oben rechts sehen wir den Graphen von Magnitude vs Frequency, oder wie viel unterschiedliche Frequenzen durch den gleitenden mittleren Filter verstärkt oder reduziert werden. Wie Sie vielleicht erwarten, wird ein Mittelwert der letzten N Abtastwerte eine Art Glättung auf das Signal anwenden, wobei die niedrigen Frequenzen beibehalten und die hohen Frequenzen entfernt werden. Wir können die Anzahl der vorherigen Eingaben oder Proben, die sie durch die Einstellung der Filterlänge N steuert, steuern. Durch Anpassen dieser Funktion können wir sehen, dass wir eine grundlegende Kontrolle darüber haben, welche Frequenzen passieren und welche verworfen werden. Das Innere eines Filters Wenn wir die Strukturansicht betrachten, können wir sehen, wie das Innere eines gleitenden Durchschnittsfilters aussehen könnte. Das Diagramm wurde kommentiert, um zu zeigen, was die verschiedenen Symbole bedeuten. Die Z -1 - Zeichen bedeuten Verzögerung um ein Mal und die Symbole bedeuten addieren oder kombinieren die Signale. Die Pfeile bedeuten multiplizieren (denken verstärken, reduzieren oder skalieren) das Signal um den Betrag rechts neben dem Pfeil angezeigt. Für einen Durchschnitt von 5 Proben nehmen wir ein Fünftel (0,2) der letzten Probe, ein Fünftel der zweitletzten Stichprobe und so weiter. Die Verzögerungskette wird als Verzögerungsleitung bezeichnet, wobei das Eingangssignal um einen weiteren Zeitschritt verzögert wird, wenn man entlang der Verzögerungsleitung fortschreitet. Die Pfeile werden auch als Hähne, so können Sie fast sie als Hähne wie die in Ihrem Küchenspüle, die alle eine fünfte offen sind. Man könnte sich vorstellen, dass das Signal von links einfließt und sich fortschreitend verzögert, wenn es sich entlang der Verzögerungsstrecke bewegt und dann in unterschiedlichen Stärken durch die Abgriffe wieder zusammengeführt wird, um den Ausgang zu bilden. Es sollte auch leicht zu sehen, dass die Ausgabe des Filters werden: Das entspricht dem Durchschnitt der letzten 5 Proben. In der Praxis verwendet der von MicroModeler DSP erzeugte Code Tricks, um dies effizienter durchzuführen, so dass nur die ersten und letzten Abtastwerte beteiligt sein müssen, aber das Diagramm ist zu illustrativen Zwecken gut. Wenn Sie dies verstehen können, dann können Sie eine Idee, was ein FIR-Filter ist. Ein FIR-Filter ist identisch mit dem gleitenden Durchschnittsfilter, aber stattdessen können alle Zapfstärken gleich sein, sie können unterschiedlich sein. Hier haben wir einen gleitenden Mittelfilter und einen FIR-Filter. Sie können sehen, dass sie strukturell gleich sind, der einzige Unterschied ist die Stärken der Hähne. Im nächsten Abschnitt werden wir Ihnen Finite Impulse Response (FIR) Filter vorstellen. Durch Variieren der Anzapfstärken können wir nahe jedem beliebigen Frequenzgang anlegen, den wir wollen. Dokumentationsobjekt Speichern und Laden saveObjectImpl legt fest, welche Eigenschaften - und Zustandswerte in einer MAT-Datei gespeichert werden, wenn Sie auf diesem Objekt aufrufen. Wenn Sie für Ihre Systemobjektklasse keine saveObjectImpl-Methode definieren, werden nur öffentliche Eigenschaften und Eigenschaften mit dem DiscreteState-Attribut gespeichert. Speichern Sie den Zustand eines Objekts nur, wenn das Objekt gesperrt ist. Wenn Sie das gespeicherte Objekt laden, lädt das Objekt in diesem gesperrten Zustand. In diesem Systemobjekt werden die Filterkoeffizienten gesichert, wenn das Objekt gesperrt ist. LoadObjectImpl definiert, welche Systemobjekt-Eigenschaft und Zustandswerte beim Laden einer MAT-Datei geladen werden. LoadObjectImpl sollte Ihrem saveObjectImpl entsprechen, um sicherzustellen, dass alle gespeicherten Eigenschaften und Daten geladen werden. Hinweis: Sie müssen Access protected für diese Methode festlegen. Systemobjekt Verwendung in MATLAB Dieses Beispiel verwendet das Systemobjekt, um Rauschen aus einer verrauschten Impulsfolge zu entfernen. Die Länge des gleitenden Durchschnittsfilters beträgt 30 Proben. Wenn Sie den vordefinierten dspdemo. MovingAverageFilter verwenden. Ersetzen Sie diesen Namen für MovingAverageFilter im Klasse-Konstruktor, zum Beispiel movingAverageFilter dspdemo. MovingAverageFilter (WindowLength, 30). Simulink-Anpassungsmethoden Sie müssen ein paar Methoden definieren, um das Systemobjekt in einem Simulink MATLAB-Systemblock verwenden zu können. Diese Methoden sind nicht erforderlich, wenn Sie das Systemobjekt nur in MATLAB verwenden. GetOutputSizeImpl gibt die Größe der einzelnen Ausgabeports zurück. Bei Systemobjekten mit einem Eingang und einem Ausgang und wo die Ein - und Ausgabegrößen gleich sein sollen, müssen Sie diese Methode nicht implementieren. Im Fall von MovingAverageFilter. Gibt es einen Eingang und Ausgang und die Größe von jedem ist das gleiche. Entfernen Sie daher diese Methode aus der Klassendefinition von MovingAverageFilter. GetDiscreteStateSpecificationImpl gibt die Größe, den Datentyp und die Komplexität einer Eigenschaft zurück. Diese Eigenschaft muss eine Eigenschaft von Discrete-State sein. Sie müssen diese Methode definieren, wenn Ihr Systemobjekt Eigenschaften von Discrete-State hat und im MATLAB-Systemblock verwendet wird. In diesem Beispiel wird das Verfahren verwendet, um die State-Eigenschaft zu definieren. Wählen Sie Ihr LandDokumentation dsp. MovingAverage Systemobjekt Beschreibung Das dsp. MovingAverage-System objectx2122 berechnet den gleitenden Durchschnitt des Eingangssignals entlang jedes Kanals unabhängig über die Zeit. Das Objekt verwendet entweder die gleitende Fenstermethode oder die exponentielle Gewichtungsmethode, um den gleitenden Durchschnitt zu berechnen. Bei der Schiebefenstermethode wird ein Fenster mit spezifizierter Länge über die Daten, Abtastwert für Stichprobe, bewegt und der Mittelwert über die Daten im Fenster berechnet. Bei dem exponentiellen Gewichtungsverfahren multipliziert das Objekt die Datenabtastwerte mit einem Satz von Gewichtungsfaktoren. Der Mittelwert wird durch Summieren der gewichteten Daten berechnet. Weitere Informationen zu diesen Methoden finden Sie unter Algorithmen. Das Objekt akzeptiert mehrkanalige Eingaben, dh m - by-n Größeneingaben, wobei m 8805 1 und n gt 1 sind. Das Objekt akzeptiert auch variable Eingaben. Sobald das Objekt gesperrt ist, können Sie die Größe jedes Eingangskanals ändern. Die Anzahl der Kanäle kann sich jedoch nicht ändern. Dieses Objekt unterstützt die C - und C-Codegenerierung. So berechnen Sie den gleitenden Durchschnitt der Eingabe: Erstellen Sie ein dsp. MovingAverage-Objekt und legen Sie die Eigenschaften des Objekts fest. Aufrufschritt, um den gleitenden Durchschnitt zu berechnen. Hinweis: Alternativ können Sie das Objekt mit Argumenten ansprechen, als ob es eine Funktion wäre, anstatt die Schrittmethode zu verwenden, um die Operation auszuführen, die vom Systemobjekt definiert wird. Zum Beispiel führen y-Schritt (obj, x) und y obj (x) gleichwertige Operationen aus. Construction movAvg dsp. MovingAverage gibt ein gleitendes Mittelobjekt, movAvg, zurück. Mit den Standard-Eigenschaften. MovAvg dsp. MovingAverage (Len) setzt die WindowLength-Eigenschaft auf Len. MovAvg dsp. MovingAverage (Name, Wert) legt zusätzliche Eigenschaften mit Name, Wertepaaren fest. Nicht spezifizierte Eigenschaften haben Standardwerte. Wähle dein Land

Comments