nextuppreviouscontents
Next:About this document ...Up: Previous:TP 4 : FiltrageContents

Subsections


TP 5 : Récupération et traitement de données expérimentales

Les programmes nécessaires pour ce TP sont disponibles à l'adresse :
    http://www.univ-lemans.fr/~s973476/filtres/tp5.zip
Ce TP présente différentes manières d'importer et d'exporter des données expérimentales depuis Matlab en vue de leur traitement automatique pour l'extraction de paramètres. En particulier sont abordés les problèmes du bon choix de la fréquence d'échantillonage ainsi que de la dynamique des signaux, lors de la mesure. L'application propose d'analyser un signal issu de mesures réalisées sur un oscilloscope numérique.

Importation - Exportation de données

Un fichier de mesure va être constitué d'une suite de nombres ordonnés et codés suivant différents formats : De plus, de nombreux fichiers contiennent d'autres informations que les mesures, telles que la fréquence d'échantillonnage, le nombre de bits utilisés pour coder chaque échantillon, les noms des variables, la taille des données, ...Ces informations sont toujours stockées au début du fichier et constituent l'entête du fichier. Cette entête est souvent propre à un type de fichiers et fait l'objet d'une normalisation pour les fichiers de même extension.

Matlab possède son propre format de fichier permettant de sauver et de récupérer des variables numériques telles que des filtres ou des signaux générés dans l'environnement de travail. Matlab propose aussi de nombreuses fonctions permettant de récupérer mais aussi d'écrire des fichiers de tous types : sons au format WAV ou AU, fichiers textes, feuilles de calcul excell, vidéos au format AVI, .... Les dernières versions du logiciel proposent toujours plus de compatibilité avec d'autres format. La liste des fonctions d'importation/exportation disponibles pour la version est donnée par help iofun (input/output).

De manière générale, l'importation/exportation se fait soit par les commandes load et save, soit par les commandes fread et fwrite du C, suivant les fichiers :

Les parties suivantes ont pour but d'illustrer les différents cas d'échange et importation de données.

Lecture de fichiers Matlab

C'est le cas le plus simple d'utilisation des fonctions load et save, il suffit de mettre le nom du fichier sans extension (si l'extension est `*.mat').

lecture de fichiers ASCII

Un fichier de mesures a été récupéré sur un oscilloscope numérique au format ASCII. La mesure était une mesure de propagation dans un milieu poreux. Le signal récupéré après propagation est dans le fichier ``biot.zine''. Il contient d'une part un axe des temps et d'autre part les valeurs mesurées aux temps correspondants.

Lecture de fichiers sons

Le format `.wav' est le standard des fichiers sons proposés par Windows (tout comme le format `.au' est le standard d'Unix). La commande wavread vous permet de lire directement ces fichiers ou d'obtenir les informations présentes dans l'entête de ces fichiers. Nous allons ici comparer les fichiers obtenus par wavread et par fread sur un fichier sonore.

Remarques

Les fonctions wavwrite ou auwrite permettent l'écriture des sons aux format `.wav' et `.au'. Il est donc possible d'effectuer tout traitement imaginable sur un son (retournement, effets, changement de la fréquence d'échantillonnage, ...) puis de l'écouter sur une machine munie d'une carte son.

Échanges de données avec Excel

L'échange de données entre Matlab et Excel est possible par le biais de fichiers au format ASCII. toutefois, il subsiste quelques astuces mentionnées ci-dessous. La version 6 de Matlab propose des fonctions permettant d'importer et d'exporter directement les feuilles de calcul Excel.

Matlab $ \rightarrow$ Excel

L'option -TABS de la fonction save permet lors de la sauvegarde d'une variable de Matlab en fichier ASCII de séparer chaque nombre par une tabulation. Dès lors sous Excel, il vous suffit d'ouvrir le fichier comme un fichier texte, dans le menu ``Fichier|Ouvrir... ''. Une fenêtre s'ouvre alors vous demandant de choisir le type de séparateur utilisé, et il faut cocher la case Tabulation. Vos données doivent normalement s'afficher sous forme de tableau ou de vecteur.

Il reste alors une dernière modification à faire car Matlab utilise un point comme séparateur entre les parties entière et décimale d'un nombre tandis qu'Excel utilise une virgule. Pour cela, dans le menu ``Édition|Remplacer'' mettre ``Chercher'' : ``.''et ``Remplacer par'' : ``,''.

Excel $ \rightarrow$ Matlab

Il suffit de sauver les données de la feuille Excel au format texte, puis d'exécuter le petit script suivant en adaptant le nom du fichier `.txt'. Le résultat est stocké dans la variable de maltab fictmp. Le script est fourni sur la disquette de programmes sous le nom xls2mat.m.
     nomfic = 'nom_du_fichier_xl.txt';
% Ouvre et lit le fichier nomfic dans la variable texte
     fid = fopen(nomfic,'r');
     texte = fread(fid,inf,'char');
     fclose(fid);
% Conversion des virgules (caractère 44) en points (caractère 46)
     texte(find(texte ==44)) = 46;
% Sauvegarde du fichier dans un fichier temporaire au bon format
     fid = fopen('fictmp.txt','wb');
     fseek(fid,0,-1);
     fwrite(fid,texte,'char');
     fclose(fid);
% Chargement du fichier temporaire
     load 'fictmp.txt' -ascii
% Effacement du fichier temporaire
     delete 'fictmp.txt'

nextuppreviouscontents
Next:About this document ...Up: Previous:TP 4 : FiltrageContents
GONON Gilles 2001-10-02