Kandungan
MATLAB adalah alat pengaturcaraan yang boleh digunakan untuk menganalisis dan memproses isyarat secara terperinci. Operasi biasa dalam pemprosesan isyarat dalam satu atau beberapa dimensi ialah penghapusan bunyi frekuensi tinggi. Penapis lulus rendah, mengikut definisi, direka untuk menghapus kekerapan di atas nilai tertentu dari isyarat. Menggunakan fungsi filter2 () di MATLAB adalah satu cara untuk melaksanakan penapis sedemikian.
Arahan
Fungsi filter2 () MATLAB membolehkan anda melaksanakan penapis lulus rendah (Hemera Technologies / AbleStock.com / Getty Images)-
Import data anda ke MATLAB. Seringnya, isyarat yang perlu ditapis disimpan dalam format binari, yang memerlukan fungsi I / O peringkat rendah seperti fread (), untuk diimport. Walau bagaimanapun, MATLAB termasuk pengimport imej untuk format yang paling biasa.
my_data = fread (file_handle, n_samples, data_type); my_image = imread ('my_image_file.tif', 'TIFF');
-
Tukar data ke array dua dimensi sebelum memprosesnya dengan fungsi filter2 (). Anda boleh melakukan ini dengan menukar array biner satu dimensi ke array melalui fungsi ubah bentuk (), atau dengan memilih imej dari satu siri. Gunakan fungsi peregangan () untuk membuang dimensi tunggal dengan memilih sebahagian daripada array dengan lebih daripada dua dimensi.
my_image = reshape (my_data, lebar, ketinggian); my_other_image = squeeze (my_image_series (:,: image_number));
-
Lukiskan penapis anda dan simpan hasil dalam array dua dimensi. Umumnya penapis pas rendah menggunakan "tetingkap gaussian" yang boleh dibuat dengan fungsi fspecial (). Penapis juga boleh direka bentuk dengan fungsi pemprosesan isyarat sptool khas (). Anda boleh melihat tindak balas frekuensi tetingkap penapis anda dengan menggunakan fungsi wvtool (). Dalam kod contoh, H ialah array 24x24 yang mengandungi tetingkap piawai Gaussian 10.
H = fspecial ('gaussian', [24 24], 10); wvtool (H);
-
Lakukan penapisan menggunakan algoritma konvolusi dua dimensi yang dilaksanakan melalui filter2 (). Secara lalai, hasil filter2 () mempunyai dimensi yang sama seperti dataset input.
my_filtered_data = filter2 (my_data, H);