Indhold
MATLAB er et programmeringsværktøj, som kan bruges til at analysere og behandle signaler i detaljer. En fælles betjening i behandlingssignaler i en eller flere dimensioner er fjernelse af højfrekvent støj. Et lavpasfilter er pr. Definition designet til at fjerne frekvenser over en bestemt værdi fra et signal. Brug af funktionen filter2 () i MATLAB er en måde at implementere et sådant filter på.
retninger
MATLABs filter2 () -funktion giver dig mulighed for at implementere et lavpasfilter (Hemera Technologies / AbleStock.com / Getty Images)-
Importer dine data til MATLAB. Ofte gemmes signalerne, der skal filtreres, i binært format, hvilket kræver en lav-I / O-funktion, såsom fread (), der skal importeres. MATLAB indeholder dog importører af billeder til de mest almindelige formater.
my_data = fread (file_handle, n_samples, data_type); my_image = imread ('my_image_file.tif', 'TIFF');
-
Konverter dataene til et todimensionelt array, før du behandler det med filter2 () -funktionen. Du kan gøre dette ved at konvertere et endimensionalt binært array til en matrix gennem funktionen reshape () eller ved at vælge et billede fra en serie. Brug funktionen squeeze () til at fjerne singleton dimensioner ved at vælge en del af en matrix med mere end to dimensioner.
my_image = omforme (my_data, bredde, højde); my_other_image = squeeze (my_image_series (:,: image_number));
-
Tegn dit filter og gem resultatet i et todimensionelt array H. Generelt bruger et lavpasfilter et "gaussian vindue", som kan oprettes med funktionen fspecial (). Filtrene kan også udformes med den specielle sptool-signalbehandlingsfunktion (). Du kan se frekvensresponsen i dit filtervindue ved hjælp af funktionen wvtool (). I eksemplet kode er H et 24x24 array, der indeholder et standardafvigelse Gaussian vindue 10.
H = fspecial ('gaussian', [24 24], 10); wvtool (H);
-
Udfør filtreringen ved hjælp af den todimensionelle konvolutionsalgoritme implementeret gennem filter2 (). Som standard har resultatet af filter2 () samme dimensioner som inputdatasættet.
my_filtered_data = filter2 (my_data, H);