Hvordan lage en Low Pass Bruke filteret 2 i MATLAB

Hvordan lage en Low Pass Bruke filteret 2 i MATLAB


MATLAB er et programmeringsverktøy som kan brukes for omfattende signal og bildeanalyse og behandling. En vanlig operasjon i behandlingen av én eller flerdimensjonale signaler er fjerning av høy-frekvensstøy. Et lavpassfilter per definisjon er utviklet for å fjerne signal over en viss frekvens terskel. Bruke filteret 2 () -funksjonen i Matlab er en måte å implementere en low-pass filter.

Bruksanvisning

1 Importer data i MATLAB. Ofte blir råsignalene som har behov for filtrering tatt opp i binært format, som krever et lavt nivå fil I / O-funksjon for å importere, slik som fread (). Imidlertid inneholder MATLAB innebygde bilde importører for de fleste vanlige filformater.

my_data = fread (file_handle, N_SAMPLES, DATA_TYPE);
my_image = imread ( 'my_image_file.tif', 'TIFF');

2 Konvertere data til en to-dimensjonal matrise før behandlingen med den filteret 2 () -funksjonen. Du kan gjøre dette ved å konvertere en-dimensjonale binære data til en matrise ved hjelp av omskape () -funksjonen, eller ved å velge et bilde fra en bildeserie. Bruk klemme () -funksjonen til å fjerne Singleton dimensjoner når du velger en del av en matrise med mer enn to dimensjoner.

my_image = omskape (my_data, bredde, høyde);
my_other_image = klemme (my_image_series (:,:, image_number));

3 Design ditt filter og lagre resultatet som todimensjonal matrise H. Gaussian vindu er ofte brukt for lav-pass filter applikasjoner og kan lages med fspecial () -funksjonen. Filtre kan også bli utformet i MATLAB sin signalbehandling verktøy funksjon sptool (). Du kan vise frekvensresponsen til filteret vinduet ved hjelp av wvtool () -funksjonen. I eksemplet koden, er H en 24-ved-24 matriks inneholdende et gaussisk vindu av standardavvik 10.

H = fspecial ( 'Gauss', [24 24], 10);
wvtool (H);

4 Utfør filtrering ved hjelp av to-dimensjonal convolution algoritmen implementert av filteret 2 (). Som standard er resultatet av filteret 2 () er av samme dimensjoner som det innførte beløp.

my_filtered_data = filteret 2 (my_data, H);