Inhalt
MATLAB ist ein Programmiertool, mit dem Signale detailliert analysiert und verarbeitet werden können. Ein üblicher Vorgang bei der Verarbeitung von Signalen in einer oder mehreren Dimensionen ist das Entfernen von hochfrequentem Rauschen. Ein Tiefpassfilter ist per Definition dazu ausgelegt, Frequenzen oberhalb eines bestimmten Werts aus einem Signal zu entfernen. Die Verwendung der filter2 () - Funktion in MATLAB ist eine Möglichkeit, einen solchen Filter zu implementieren.
Anweisungen
Mit der filter2 () - Funktion von MATLAB können Sie einen Tiefpassfilter implementieren (Hemera Technologies / AbleStock.com / Getty Images)-
Importieren Sie Ihre Daten in MATLAB. Häufig werden die Signale, die gefiltert werden müssen, im Binärformat gespeichert, sodass eine Low-Level-E / A-Funktion (z. B. fread ()) importiert werden muss. MATLAB enthält jedoch Importer von Bildern für die gebräuchlichsten Formate.
my_data = fread (file_handle, n_samples, data_type); my_image = imread ('my_image_file.tif', 'TIFF'));
-
Konvertieren Sie die Daten in ein zweidimensionales Array, bevor Sie sie mit der Funktion filter2 () verarbeiten. Sie können dies tun, indem Sie ein eindimensionales binäres Array über die Funktion reshape () in ein Array konvertieren oder ein Bild aus einer Serie auswählen. Verwenden Sie die Funktion squeeze (), um Singleton-Dimensionen zu entfernen, indem Sie einen Teil eines Arrays mit mehr als zwei Dimensionen auswählen.
my_image = umformen (my_data, width, height); my_other_image = squeeze (my_image_series (:,: image_number));
-
Zeichnen Sie Ihren Filter und speichern Sie das Ergebnis in einem zweidimensionalen Array H. Im Allgemeinen verwendet ein Tiefpassfilter ein "Gaußsches Fenster", das mit der Funktion fspecial () erstellt werden kann. Die Filter können auch mit der speziellen Signalverarbeitungsfunktion () ausgeführt werden. Sie können die Frequenzantwort Ihres Filterfensters mithilfe der Funktion wvtool () anzeigen. In dem Beispielcode ist H ein 24 × 24-Feld, das ein Standardabweichungs-Gauß-Fenster 10 enthält.
H = fspecial ('gaussian', [24, 24], 10); Werkzeug (H);
-
Führen Sie die Filterung mit dem durch filter2 () implementierten zweidimensionalen Faltungsalgorithmus durch. Standardmäßig hat das Ergebnis von filter2 () die gleichen Dimensionen wie das Eingabe-Dataset.
my_filtered_data = filter2 (meine_daten, H);