Innhold
MATLAB er et programmeringsverktøy som kan brukes til å analysere og behandle signaler i detalj. En vanlig operasjon i behandlingssignaler i en eller flere dimensjoner er fjerning av høyfrekvent støy. Et lavpasfilter er per definisjon designet for å fjerne frekvenser over en viss verdi fra et signal. Bruk av filter2 () -funksjonen i MATLAB er en måte å implementere et slikt filter på.
retninger
MATLABs filter2 () -funksjon lar deg implementere et lavpasfilter (Hemera Technologies / AbleStock.com / Getty Images)-
Importer dataene dine til MATLAB. Vanligvis må signalene som må filtreres lagres i binærformat, og krever en lavnivå I / O-funksjon, for eksempel fread (), som skal importeres. Imidlertid inkluderer MATLAB importører av bilder for de vanligste formatene.
my_data = fread (file_handle, n_samples, data_type); my_image = imread ('my_image_file.tif', 'TIFF');
-
Konverter dataene til et todimensjonalt array før du behandler det med filter2 () -funksjonen. Du kan gjøre dette ved å konvertere et endimensjonalt binært array til en matrise gjennom reshape () -funksjonen, eller ved å velge et bilde fra en serie. Bruk squeeze () -funksjonen til å fjerne singleton-dimensjoner ved å velge en del av en matrise med mer enn to dimensjoner.
my_image = reshape (my_data, bredde, høyde); my_other_image = klemme (my_image_series (:,: image_number));
-
Tegn filteret og lagre resultatet i et todimensjonalt array H. Vanligvis bruker et lavpassfilter et "Gaussian vindu" som kan opprettes med fspecial () -funksjonen. Filtrene kan også utformes med den spesielle sptool-signalbehandlingsfunksjonen (). Du kan se frekvensresponsen til filtervinduet ditt ved hjelp av wvtool () -funksjonen. I eksempelkoden er H en 24x24-serie som inneholder et standardavvik Gaussian-vindu 10.
H = fspecial ('gaussian', [24 24], 10); wvtool (H);
-
Utfør filtreringen ved hjelp av den todimensjonale convolutionalgoritmen implementert gjennom filter2 (). Som standard har resultatet av filter2 () de samme dimensjonene som input-datasettet.
my_filtered_data = filter2 (my_data, H);