Innehåll
MATLAB är ett programmeringsverktyg som kan användas för att analysera och bearbeta signaler i detalj. En gemensam operation vid behandling av signaler i en eller flera dimensioner är avlägsnandet av högfrekventa ljud. Ett lågpassfilter är per definition utformat för att avlägsna frekvenser över ett visst värde från en signal. Att använda filter2 () i MATLAB är ett sätt att implementera ett sådant filter.
vägbeskrivning
MATLABs filter2 () -funktion låter dig implementera ett lågpassfilter (Hemera Technologies / AbleStock.com / Getty Images)-
Importera dina data till MATLAB. Ofta måste de signaler som behöver filtreras lagras i binärformat, vilket kräver en låg nivå I / O-funktion, som fread (), som ska importeras. MATLAB innehåller emellertid importörer av bilder för de vanligaste formaten.
my_data = fread (file_handle, n_samples, data_type); my_image = imread ('my_image_file.tif', 'TIFF');
-
Konvertera data till en tvådimensionell array innan du bearbetar den med funktionen filter2 (). Du kan göra det genom att konvertera en endimensionell binär matris till en array genom funktionen reshape () eller genom att välja en bild från en serie. Använd funktionen squeeze () för att ta bort singeldimensioner genom att välja en del av en array med mer än två dimensioner.
my_image = omforma (my_data, bredd, höjd); my_other_image = squeeze (my_image_series (:,: image_number));
-
Rita ditt filter och lagra resultatet i en tvådimensionell array H. Vanligen använder ett lågpassfilter ett "gaussian window" som kan skapas med funktionen fspecial (). Filtret kan också utformas med den speciella sptoolsignalbehandlingsfunktionen (). Du kan se frekvensresponsen i ditt filterfönster med funktionen wvtool (). I exempelkoden är H en 24x24-grupp som innehåller ett standardavvikelse Gaussian fönster 10.
H = fspecial ("gaussian", [24 24], 10); wvtool (H);
-
Utför filtreringen med hjälp av den tvådimensionella konvolutionsalgoritmen implementerad genom filter2 (). Som standard har resultatet av filter2 () samma dimensioner som ingångsdata.
my_filtered_data = filter2 (my_data, H);