Sadržaj
MATLAB je programski alat koji se može koristiti za detaljnu analizu i obradu signala. Uobičajena operacija u obradi signala u jednoj ili više dimenzija je uklanjanje visokofrekventnog šuma. Niskopropusni filtar, po definiciji, dizajniran je za uklanjanje frekvencija iznad određene vrijednosti iz signala. Korištenje funkcije filter2 () u MATLAB-u je jedan od načina za implementaciju takvog filtra.
smjerovi
MATLAB-ova funkcija filter2 () omogućuje implementaciju niskopropusnog filtra (Hemera Technologies / AbleStock.com / Getty Images)-
Uvezite podatke u MATLAB. Često se signali koji se trebaju filtrirati pohranjuju u binarnom formatu, što zahtijeva uvoznu I / O funkciju niske razine, kao što je fread (). Međutim, MATLAB uključuje uvoznike slika za najčešće formate.
my_data = fread (file_handle, n_samples, data_type); my_image = imread ('my_image_file.tif', 'TIFF');
-
Pretvorite podatke u dvodimenzionalno polje prije obrade s funkcijom filter2 (). To možete učiniti pretvaranjem jednodimenzionalnog binarnog niza u niz putem funkcije reshape () ili odabirom slike iz niza. Koristite funkciju squeeze () za uklanjanje dimenzija singletona odabirom dijela niza s više od dvije dimenzije.
my_image = preoblikovati (my_data, širina, visina); my_other_image = iscijediti (my_image_series (:,: image_number));
-
Nacrtajte svoj filtar i pohranite rezultat u dvodimenzionalni niz H. Općenito, filtar niskopropusnog filtra koristi "Gaussian prozor" koji se može kreirati s funkcijom fspecial (). Filtri se također mogu dizajnirati s posebnom funkcijom obrade signala sptool (). Frekvencijski odziv filtarskog prozora možete vidjeti pomoću funkcije wvtool (). U primjeru koda, H je niz od 24x24 koji sadrži Gaussov prozor 10 standardne devijacije.
H = poseban ('Gaussov', [24 24], 10); wvtool (H);
-
Izvedite filtriranje pomoću dvodimenzionalnog algoritma konvolucija koji se provodi kroz filter2 (). Prema zadanim postavkama rezultat filter2 () ima iste dimenzije kao i ulazni skup podataka.
my_filtered_data = filter2 (my_data, H);