Contenuto
MATLAB è uno strumento di programmazione che può essere utilizzato per analizzare e elaborare i segnali in dettaglio. Un'operazione comune nell'elaborare i segnali in una o più dimensioni è la rimozione del rumore ad alta frequenza. Un filtro passa-basso, per definizione, è progettato per rimuovere frequenze superiori ad un certo valore da un segnale. L'uso della funzione filter2 () in MATLAB è un modo per implementare tale filtro.
indicazioni
La funzione filter2 () di MATLAB consente di implementare un filtro passa-basso (Hemera Technologies / AbleStock.com / Getty Images)-
Importa i tuoi dati in MATLAB. Spesso i segnali che devono essere filtrati vengono archiviati in formato binario, per cui è necessario importare una funzione I / O di basso livello, ad esempio fread (). Tuttavia, MATLAB include importatori di immagini per i formati più comuni.
my_data = fread (file_handle, n_samples, data_type); my_image = imread ('my_image_file.tif', 'TIFF');
-
Converti i dati in un array bidimensionale prima di elaborarli con la funzione filter2 (). È possibile farlo convertendo una matrice binaria monodimensionale in una matrice tramite la funzione reshape () o selezionando un'immagine da una serie. Utilizzare la funzione squeeze () per rimuovere le dimensioni singleton selezionando una parte di un array con più di due dimensioni.
my_image = reshape (my_data, width, height); my_other_image = squeeze (my_image_series (:,: numero_immagine));
-
Disegna il tuo filtro e memorizza il risultato in una matrice bidimensionale H. Generalmente un filtro passa-basso usa una "finestra gaussiana" che può essere creata con la funzione fspecial (). I filtri possono anche essere progettati con la speciale funzione di elaborazione del segnale sptool (). Puoi vedere la risposta in frequenza della finestra del filtro usando la funzione wvtool (). Nel codice di esempio, H è un array 24x24 che contiene una finestra gaussiana di deviazione standard 10.
H = fspecial ('gaussian', [24 24], 10); wvtool (H);
-
Eseguire il filtraggio utilizzando l'algoritmo di convoluzione bidimensionale implementato tramite filter2 (). Per impostazione predefinita, il risultato di filter2 () ha le stesse dimensioni del set di dati di input.
my_filtered_data = filter2 (my_data, H);