MATLAB ist eine führende Analyse -Paket für die digitale Signalverarbeitung und andere Sorten der technischen Analyse . Die Signalverarbeitung ist der Ansicht , dass jede beliebige Daten -Signal der Summe vieler unterschiedlicher Frequenzen besteht. Oft Signale von verschiedenen Quellen oder Brummen haben unterschiedliche Frequenzen . Hochfrequenz- Signale können durch Falten eines Signals mit einem Tiefpassfilter entfernt werden. Low-Pass -Filter
Filtering , um Frequenzen zu entfernen, ist auf der Suche nach einer Übertragungsfunktion im Frequenzbereich , die die Reichweite und das Ausmaß der Frequenzen wählt , um in das gefilterte Signal gehören basiert. Eine inverse Fourier -Transformation wird dann auf die Frequenzbereichs- Funktion angewendet, um die Zeitbereich- Filter mit der ausgewählten Frequenz Übertragungsfunktion zu erhalten. Die Zeitbereich- Filter wird dann um das Signal der Wahl mit der Faltung Arbeitsgang aufgebracht . Alternativ können Sie die Fourier Ihrer Zeitbereichssignal verwandeln und vermehren sich durch die Frequenz - Domain-Transfer -Funktion des Filters , vor Anwendung einer inversen Fourier-Transformation . Dies kann schneller auszuführen , als Faltung ist ein rechenintensiver Vorgang .
Mit glatt ( )
MATLAB enthält die glatte ()-Funktion , um hochfrequente Rauschen zu entfernen in ein Signal ohne den genauen Grenzfrequenz für einen Tiefpassfilter zu bestimmen. Standardmäßig verwendet MATLAB eines Gleitmittelungsfilters von fünf benachbarten Datenpunkten. Im zweiten Beispiel wird eine Spannweite von 10 Datenpunkten und die robusten gewichtete lineare Least-Squares -Funktion mit einem Polynom zweiten Grades Modell
my_smoothed_data = glatt ( Meine_Daten ); . My_smoothed_data = glatt ( Meine_Daten , 10, ' rloess ') ;
Mit filter ()
Die MATLAB -Filter -Funktion wird verwendet, um eine eindimensionale digitalen Filters auf ein Signal anwenden . Um ein Tiefpassfilter mit einer bestimmten Grenzfrequenz anzuwenden, verwenden Sie den folgenden Code:
my_filtered_data = filter ( freq , [1 freq -1] , Meine_Daten );
Die Frequenz variabel ist gleich T /t , wobei " T " ist die Zeit zwischen den Proben und "t" ist die Zeit - konstante der Frequenz -Filter.
Benutzerdefinierte Filter
Oft wird Tiefpassfilter keine genaue Grenzfrequenz , vorbei alle Frequenzen unterhalb der Cutoff und ohne alle Frequenzen oberhalb der Cutoff . In der Tat, da die Daten diskrete , ist eine perfekte Tiefpassfilter undurchführbar machen. Jede beliebige Filter kann in MATLAB ausgelegt und angebracht sein mit der conv ( )-Funktion , die Anwendung Faltung , wie folgt:
my_new_signal = conv ( my_signal , my_filter , ' gleichen ');