Kako ustvariti Low Pass Filter Uporaba Filter2 v MATLAB - Članki

Kako ustvariti Low Pass Filter Uporaba Filter2 v MATLAB

MATLAB je programsko orodje, ki ga je mogoče uporabiti za podrobno analizo in obdelavo signalov. Običajna operacija pri obdelavi signalov v eni ali več dimenzijah je odstranitev visokofrekvenčnega šuma. Nizkopasovni filter je po definiciji zasnovan tako, da odstrani frekvence nad določeno vrednostjo iz signala. Uporaba funkcije filter2 () v MATLAB-u je eden od načinov za izvedbo takega filtra.

Navodila

Funkcija filtra MATLAB () (2) omogoča izvajanje nizkopasovnega filtra (Hemera Technologies / AbleStock.com / Getty Images)
  1. Uvozite podatke v MATLAB. Pogosto so signali, ki jih je treba filtrirati, shranjeni v binarni obliki, zato je treba uvoziti nizko-nivo I / O funkcijo, kot je fread (). Vendar pa MATLAB vključuje uvoznike slik za najpogostejše oblike.

    my_data = fread (file_handle, n_samples, data_type); my_image = imread ('my_image_file.tif', 'TIFF');

  2. Pretvorite podatke v dvodimenzionalno polje pred obdelavo s funkcijo filter2 (). To lahko storite s pretvorbo enodimenzionalnega binarnega niza v polje s funkcijo reshape () ali z izbiro slike iz serije. Uporabite funkcijo squeeze () za odstranitev dimenzij singletona tako, da izberete del matrike z več kot dvema dimenzijama.

    my_image = preoblikuje (my_data, širina, višina); my_other_image = stisnite (my_image_series (:,: image_number));

  3. Narišite svoj filter in shranite rezultat v dvodimenzionalno polje H. Na splošno nizkopasovni filter uporablja "Gaussian okno", ki ga lahko ustvarite s funkcijo fspecial (). Filtri se lahko oblikujejo tudi s posebno funkcijo obdelave signala (). Frekvenčni odziv filtrirnega okna si lahko ogledate s funkcijo wvtool (). V primerni kodi je H polje 24x24, ki vsebuje standardno odstopanje Gaussovega okna 10.

    H = poseben ("Gaussian", [24 24], 10); wvtool (H);

  4. Izvedite filtriranje z dvodimenzionalnim algoritmom za konvolucijo, ki se izvaja s filtrom2 (). Rezultat filtra () ima privzeto enake dimenzije kot vhodni nabor podatkov.

    my_filtered_data = filter2 (my_data, H);