Inhoud
MATLAB is een programmeerhulpmiddel dat kan worden gebruikt om signalen in detail te analyseren en te verwerken. Een veel voorkomende bewerking bij het verwerken van signalen in een of meerdere dimensies is het verwijderen van hoogfrequente ruis. Een laagdoorlaatfilter is per definitie ontworpen om frequenties boven een bepaalde waarde uit een signaal te verwijderen. Het gebruik van de functie filter2 () in MATLAB is een manier om zo'n filter te implementeren.
routebeschrijving
Met de filter2 () -functie van MATLAB kunt u een laagdoorlaatfilter implementeren (Hemera Technologies / AbleStock.com / Getty Images)-
Importeer uw gegevens in MATLAB. Vaak worden de signalen die moeten worden gefilterd in binair formaat opgeslagen, waardoor een low-level I / O-functie, zoals fread (), moet worden geïmporteerd. MATLAB bevat echter importeurs van afbeeldingen voor de meest voorkomende indelingen.
my_data = fread (file_handle, n_samples, data_type); my_image = imread ('my_image_file.tif', 'TIFF');
-
Converteer de gegevens naar een tweedimensionale array voordat u deze verwerkt met de functie filter2 (). U kunt dit doen door een eendimensionale binaire array naar een array te converteren via de functie shape () of door een afbeelding uit een reeks te selecteren. Gebruik de functie squeeze () om singleton-dimensies te verwijderen door een deel van een array met meer dan twee dimensies te selecteren.
my_image = opnieuw vormgeven (mijn_gegevens, breedte, hoogte); my_other_image = squeeze (my_image_series (:,: image_number));
-
Teken uw filter en sla het resultaat op in een tweedimensionale array H. Over het algemeen gebruikt een laagdoorlaatfilter een "gaussiaans venster" dat kan worden gemaakt met de functie fspecial (). De filters kunnen ook worden ontworpen met de speciale sptool-signaalverwerkingsfunctie (). U kunt de frequentierespons van uw filtervenster bekijken met behulp van de functie wvtool (). In de voorbeeldcode is H een 24x24 array die een standaardafwijking Gaussiaans venster 10 bevat.
H = fspecial ('gaussian', [24 24], 10); wvtool (H);
-
Voer de filtering uit met behulp van het tweedimensionale convolutie-algoritme dat is geïmplementeerd via filter2 (). Standaard heeft het resultaat van filter2 () dezelfde afmetingen als de invoergegevensset.
my_filtered_data = filter2 (my_data, H);