Tiefpassfilter in MATLAB
In diesem Tutorial wird die Verwendung der Funktion lowpass()
zum Entwerfen und Filtern eines Signals in Matlab erläutert.
Verwendung von die Funktion lowpass()
zum Entwerfen und Filtern eines Signals in MATLAB
Ein Tiefpassfilter wird verwendet, um niederfrequente Signale aus einem Signal zu filtern, das mehrere Frequenzen enthält.
Wenn wir beispielsweise ein Signal haben, das zwei verschiedene Frequenzsignale enthält, und wir das niederfrequente Signal filtern möchten. Wir können dies mit einem Tiefpassfilter tun, der nur die niederfrequenten Komponenten des Eingangssignals durchlässt und das hochfrequente Signal blockiert.
In MATLAB können wir die eingebaute Funktion lowpass()
verwenden, um ein Signal zu filtern.
Wir müssen das Eingangssignal, die Durchlassfrequenz und die Abtastfrequenz des Eingangssignals in der Funktion lowpass()
übergeben. Das Eingangssignal sollte ein Vektor oder eine Matrix vom Typ Single oder Double sein.
Die Durchlassfrequenz sollte zwischen 0 und der Hälfte der Abtastfrequenz liegen. Die Abtastrate sollte ein positiver reeller Skalar sein.
Lassen Sie uns zum Beispiel ein Signal erzeugen, zufälliges Rauschen hinzufügen und es mit der Funktion lowpass()
filtern. Siehe den Code unten.
clc
clear
freqS = 1e3;
time = 0:1/freqS:1;
signal = [1 2]*sin(2*pi*[50 250]'.*time) + randn(size(time))/10;
lowpass(signal,150,freqS)
Ausgabe:
Das blaue Signal ist das Eingangssignal am Ausgang und das andere ist das gefilterte Signal.
Wie Sie in der obigen Abbildung sehen können, wird das niederfrequente Signal gefiltert. Sie können auch das Leistungsspektrumdiagramm überprüfen, um die Durchlassbandfrequenz zu überprüfen, bei der das Signal gefiltert wird.
Sie können den obigen Code verwenden, um ein hochfrequentes Rauschen oder einen Ton aus einem Musiksignal herauszufiltern. Sie können die Ausgabe der Funktion lowpass()
auch in einer Variablen speichern, müssen diese jedoch separat plotten.
Wenn wir keine Ausgabe angeben, zeichnet die Funktion lowpass()
das Original- und das gefilterte Signal zusammen mit ihrem Frequenzbereichs-Plot auf demselben Graphen. Wir können andere Eigenschaften der Funktion lowpass()
einstellen, wie zum Beispiel die Sperrdämpfung, die Steilheit des Tiefpassfilters und den Impulsantworttyp des Filters.
Mit der Funktion lowpass()
können wir auch Daten aus einem Fahrplan filtern. Die Funktion lowpass()
filtert alle Variablen im Stundenplan und alle Spalten innerhalb jeder Variablen.
Standardmäßig verwendet die Funktion lowpass()
jede beliebige Impulsantwort. Wir können es jedoch in eine endliche Impulsantwort ändern, indem wir den String fir übergeben, oder in eine unendliche Impulsantwort, indem wir den String iir
in der Funktion lowpass()
mit der Eigenschaft ImpulseResponse
übergeben.
Der Standardwert für die Steilheit ist 0,85, aber wir können ihn mit der Eigenschaft Steilheit
auf einen beliebigen Wert im Intervall von 0,5 bis 1 setzen. Die Standard-Stopband-Dämpfung beträgt 60, aber wir können jeden positiven Skalar in dB mit der Eigenschaft StopbandAttenuation
ändern.
Um eine Eigenschaft zu ändern, müssen wir ihren Wert mit ihrem Namen wie lowpass(....,'StopbandAttenuation', 60)
übergeben.