Зміст
MATLAB є інструментом програмування, який може бути використаний для детального аналізу та обробки сигналів. Загальною операцією при обробці сигналів в одному або декількох вимірах є видалення високочастотних шумів. Фільтр низьких частот, за визначенням, призначений для видалення з сигналу частот вище певного значення. Використання функції filter2 () в MATLAB є одним із способів реалізації такого фільтра.
Інструкції
Функція filter2 () MATLAB дозволяє реалізувати фільтр низьких частот (Hemera Technologies / AbleStock.com / Getty Images)-
Імпортуйте дані в MATLAB. Часто сигнали, які потрібно відфільтрувати, зберігаються в двійковому форматі, що вимагає імпортувати функцію вводу / виводу низького рівня, таку як fread (). Проте MATLAB включає імпортерів зображень для найбільш поширених форматів.
my_data = fread (file_handle, n_samples, data_type); my_image = imread ('my_image_file.tif', 'TIFF');
-
Перетворення даних у двовимірний масив перед обробкою його за допомогою функції filter2 (). Це можна зробити шляхом перетворення одновимірного двійкового масиву в масив за допомогою функції reshape () або шляхом вибору зображення з серії. Використовуйте функцію squeeze () для видалення розмірів одиночних розмірів, вибравши частину масиву з більш ніж двома вимірами.
my_image = змінити (my_data, ширина, висота); my_other_image = стиск (my_image_series (:,: image_number));
-
Намалюйте фільтр і зберігайте результат у двовимірному масиві H. Як правило, фільтр низьких частот використовує "гауссові вікна", які можна створити за допомогою функції fspecial (). Фільтри також можуть бути сконструйовані за допомогою спеціальної функції обробки сигналу sptool (). Ви можете побачити частотну характеристику вікна фільтра за допомогою функції wvtool (). У прикладі коду, H - це масив 24x24, який містить стандартне відхилення Гауссового вікна 10.
H = fспеціальний ('гаусовий', [24 24], 10); wvtool (H);
-
Виконуємо фільтрацію, використовуючи алгоритм двовимірної згортки, реалізований через filter2 (). За замовчуванням результат filter2 () має ті ж розміри, що і вхідний набір даних.
my_filtered_data = filter2 (my_data, H);