Contenu
MATLAB est un outil de programmation qui peut être utilisé pour analyser et traiter des signaux en détail. Une opération courante dans le traitement des signaux dans une ou plusieurs dimensions est la suppression du bruit haute fréquence. Un filtre passe-bas, par définition, est conçu pour supprimer d'un signal les fréquences supérieures à une certaine valeur. L'utilisation de la fonction filter2 () dans MATLAB est un moyen d'implémenter un tel filtre.
Les instructions
La fonction filter2 () de MATLAB vous permet d'implémenter un filtre passe-bas (Hemera Technologies / AbleStock.com / Getty Images)-
Importez vos données dans MATLAB. Les signaux à filtrer sont souvent stockés au format binaire, ce qui nécessite l’importation d’une fonction d’E / S de bas niveau, telle que fread (). Cependant, MATLAB inclut des importateurs d'images pour les formats les plus courants.
my_data = fread (file_handle, n_samples, data_type); my_image = imread ('mon_image_fichier.tif', 'TIFF');
-
Convertissez les données en un tableau à deux dimensions avant de les traiter avec la fonction filter2 (). Vous pouvez le faire en convertissant un tableau binaire unidimensionnel en tableau via la fonction reshape () ou en sélectionnant une image dans une série. Utilisez la fonction squeeze () pour supprimer les dimensions singleton en sélectionnant une partie d'un tableau comportant plus de deux dimensions.
my_image = reshape (my_data, width, height); my_other_image = squeeze (my_image_series (:,: numéro_image));
-
Dessinez votre filtre et stockez le résultat dans un tableau à deux dimensions H. En général, un filtre passe-bas utilise une "fenêtre gaussienne" qui peut être créée avec la fonction fspecial (). Les filtres peuvent également être conçus avec la fonction spéciale de traitement du signal sptool (). Vous pouvez voir la réponse en fréquence de votre fenêtre de filtre en utilisant la fonction wvtool (). Dans l'exemple de code, H est un tableau 24x24 contenant une fenêtre gaussienne à déviation standard 10.
H = spécial ('gaussian', [24 24], 10); wvtool (H);
-
Effectuez le filtrage à l'aide de l'algorithme de convolution à deux dimensions implémenté par filter2 (). Par défaut, le résultat de filter2 () a les mêmes dimensions que le jeu de données en entrée.
my_filtered_data = filter2 (my_data, H);