La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Programmer avec Matlab I Savoir-faire de l é cole doctorale 268 Langages et langues Universit é Paris III 31 janvier 2006 Pr é sent é par Martine Toda.

Présentations similaires


Présentation au sujet: "Programmer avec Matlab I Savoir-faire de l é cole doctorale 268 Langages et langues Universit é Paris III 31 janvier 2006 Pr é sent é par Martine Toda."— Transcription de la présentation:

1 Programmer avec Matlab I Savoir-faire de l é cole doctorale 268 Langages et langues Universit é Paris III 31 janvier 2006 Pr é sent é par Martine Toda

2 Mise en garde Tous les exemples fournis ont é t é con ç us dans un but p é dagogique pour illustrer le fonctionnement de Matlab. Les aspects math é matique ou traitement du signal peuvent être inexacts. V é rifiez tout si vous souhaitez utiliser le mat é riel mis à disposition dans un but scientifique.

3 Pr é ambule

4 Pourquoi programmer ? Parce qu il n existe pas de logiciel qui permet de faire ce qu on veut –Ex. Affichage de donn é es articulatoires align é es avec les donn é es acoustiques Automatisation de tâches r é p é titives –segmentation et é tiquetage de corpus é crits, –calculs, –é criture de fichiers sur un continuum, –cr é ation de stimuli sur un continuum, –affichage de plusieurs r é sultats dans le même format

5 Les 5 é tapes de la programmation 0. Identification du probl è me 1.Subdivision du probl è me en tâches simples et ind é pendantes 2.Planification des programmes en pseudo-code 3.Traduction en langage de programmation (ici, c est Matlab) 4.Commenter ce code au fur et à mesure 5.Tester le programme par petits bouts et traquer les bugs

6 Exemple Je veux cr é er un programme qui me permette de faire un test de perception (ABX) Organigramme du programme (subdivision en tâches simples) Programme principal ABX Création de stimuli Présentation aléatoire Interaction utilisateur Sauvegarde des résultats

7 Exemple Pseudo-code : Programme « cr é ation d un stimuli sur un continuum avec deux param è tres » (commentaire : combiner la valeur du bruit de friction avec la valeur des formants) boucle1[ pour un F2 qui va de 800 à 2000 Hz avec des intervalles de 50 Hz boucle2[ et pour un bruit de friction qui va de 5000 à 8000 Hz concat é ner le bruit avec la transition formantique ]boucle2 ]boucle1

8 Pourquoi utiliser Matlab ? (1) C est un logiciel de programmation facile à utiliser –Plusieurs fonctions pr é d é finies pour analyser et repr é senter des donn é es : on peut faire des choses é labor é es avec tr è s peux de code Particuli è rement adapt é à l analyse du signal de parole –Il existe un module sp é cialis é d analyse du signal (et de l image) –Plusieurs fonctions pr é d é finies (analyse spectrale, filtrage, etc.)

9 Pourquoi utiliser Matlab ? (2) Cr é ation de belles figures –Figures stables (cf. Excel … ) et esth é tiques –Fonctions de lissages de courbes –Automatisation de la cr é ation de figures Cr é ation d interfaces pour analyser des donn é es vari é es –Ex. Alignement de donn é es acoustique et de donn é es articulatoires

10 Introduction à la programmation avec Matlab

11 O ù est install é Matlab Au labo C Au labo de phon é tique (certaines machines) À Bi è vres ?

12 D é marrer Matlab Lancement R é pertoire courant Ligne de commande (langage interpr é t é ) Fichiers programme (.m) Fichiers de donn é es (.mat) L aide et les d é mos –Programming and Data Types

13 Principes de la programmation Un programme est une suite d instructions Les instructions contiennent des op é rateurs, des mots-clefs ou des fonctions Les instructions doivent respecter la syntaxe (de Matlab) L unit é qui compose les instructions est l expression. L expression peut contenir un litt é ral, une variable, une fonction (et ses arguments le cas é ch é ant) ou une combinaison de ceux-ci. L expression é valu é e va renvoyer une valeur.

14 Expressions Litt é raux Programming and Data Types: M-File Programming: Data Types Nombres (type implicite) Entiers1, 40, 50394, -2, … Flottants0.0004, , … D é cimaux0.45, 4.6, … 8 ou 16 bits, sign é s ou non sign é s Caract è res a, 1 Logiques True ou False Matrices, cellules et cha î nes de caract è res Variablesmmax, a, … (le nom doit commencer par une lettre ; é viter d utiliser les noms de fonction pr é existantes) Fonctions (avec ou sans argument) trouvemax, plot(x, y) Op é rateurs et mots cl é s= == > + - * ; : exit if-else-end –Programming and Data Types: M-File Programming: Operators

15 Quelques op é rateurs et caract è res sp é ciaux Caract è res sp é ciaux –() parenth è ses –= affectation –, virgule –; point virgule –% commentaire ou pour indiquer un format –: « jusqu à » Op é rateurs arithm é tiques –+ addition –- soustraction –* multiplication Op é rateurs relationnels –== test d é galit é –> Op é rateurs logiques –& –~

16 Quelques mots-clef If … else … end Break Exit Function Pour conna î tre la liste exhaustive, taper iskeyword

17 Les fonctions pr é d é finies dans Matlab MATLAB Functions: Functions - By Category MATLAB Functions: Functions - Alphabetical List Les fonctions qu on cr é e soi même s utilisent exactement comme les fonctions pr é d é finies.

18 Donn é es structur é es Vecteurs et matrices Cha î nes de caract è res Cellules Comment faire r é f é rence à chacun des é l é ments () {} Op é rations pour construire les matrices, cha î nes et cellules [] {} vertcat() horzcat() MATLAB Functions: Functions - By Category: Data Types

19 D é monstration 1 Ligne de commande Appel d un programme Op é rateurs syntaxiques de base Matrices et cellules Qu est-ce qui est quoi (variable, fonction, mot-cl é, cha î ne de caract è re … ) ? –A=[ ], A=[ ]; A, plot(A), close –B=A; B – ; 1+3 –C=[ ]; A-C; A==C; plot(A, C), plot(A, C, r ) –D= ceci est un test ; D –D(1), D(6), D(1:11), D(1:end) –E=num2str(A) –F=[1 2 3; 4 5 6; 7 8 9], F(2,3), G=[A, C], H=[A; C] –I={ ceci, est, une, cellule }, I{2}, I{1}(4)

20 Boucles Les boucles permettent d it é rer les mêmes op é rations plusieurs fois sans les é crire plusieurs fois dans le programme if … else … end si … sinon … for i=[a:b] … end pour … while true … (break) … end tant que … switch … case … end pour tel ou tel cas …

21 D é monstration Boucles Initialisation des variables si n é cessaire Couvrir tous les cas de figure : le cas g é n é ral et les cas particuliers –demonstration demoif(nombre) demofor demowhile demoswitch(1 ou 1 )

22 Lecture et é criture de fichiers Entr é e-sortie standard –disp, input Fichier de donn é es –load, save Fichier son –wavread, wavewrite Fichier texte –fopen, fclose -> demonstration demofopen –fgetl, strtok, sscanf, findstr, strcmp … fid=fopen( articulatorydata.txt ), fgetl(fid) …

23 Cr é er des figures avec Matlab plot param è tres subplot axes figures handles callback uicontrol

24 La fenêtre figure D é monstration figure Param è tres (name, position, color) MATLAB Functions: Figure Properties gcf, get et set get(gcf, position ) set(gcf, position, [ … ])

25 L affichage des donn é es à l int é rieur des axes (diff é rent de axis ) D é monstration axes Param è tres (title, fontsize, position, xlim, ylim, xlabel, ylabel, ) MATLAB Functions: Axes Properties gca

26 plot (et plot3) affiche un r é sultat (ouvre une fenêtre et cr é e des axes si n é cessaire) D é monstration plot(A), plot(A, B) marqueurs et lignes ; propri é t é s : graf2d, hndlgraf Subplot exemple d affichage 3D graf3d

27 Curve fitting R é gression lin é aire et coefficient de corr é lation Approximation polynomiale, fonctions spline

28 Donn é es acoustiques X donn é es articulatoires figure hold on for i=1:60; plot(MSP(i,2),volpal(i,2),'marker','o'); end

29 D é monstration demoregression

30

31 Exercices

32 Exercice 1 a.Afficher sous forme de graphique des donn é es contenues dans un fichier texte. (TF1.txt) b.Parcourez un document texte structur é (articulatorydata.txt) et faites la liste pour l entr é e forme de la langue pour chacune des consonnes, /s/, l alv é olopalatale ( c ) et la palatoalv é olaire ou r é trofl è xe ( sh ). c.Reprendre les donn é es acoustiques et articulatoires -afficher les diff é rentes consonnes en couleurs diff é rentes MATLAB Functions: ColorSpec et avec des marqueurs diff é rents MATLAB Functions: Line Properties -afficher l é tiquette de la consonne ( s, c, sh ) à la place du marqueur (MATLAB Functions: text)

33 Exercice 2 Cr é ez un programme avec Matlab qui permet de g é n é rer automatiquement un ensemble de fichiers de fonction d aire sur un continuum. Rappel : les 5 é tapes de la programmation

34 0. Identification du probl è me Je veux un continuum mais je suis trop paresseuse pour é crire tous les fichiers à la main. De plus, comme je suis distraite, je ferais certainement des erreurs en le faisant à la main. Je veux faire varier l aire relative de deux tubes qui simulent un conduit vocal sans toucher à leur longueur. Je veux que l aire totale soit constante afin de simuler le volume constant de la langue.

35 1. Subdivision en tâches simples Boucles me permettant d obtenir un continuum Ouverture de fichiers texte en é criture Affichage des fonctions d aire g é n é r é es pour v é rifier si elles correspondent bien à ce que je veux

36 2. Pseudo-code 3. Traduire en Matlab 4. Commenter 5. D é buguer

37 Exercice 3 Cr é ez un programme avec Matlab qui permet de pr é senter des stimuli dans un ordre al é atoire et d enregistrer la r é ponse de l utilisateur (dans un protocole ABX, par exemple). rand input wavread … Rappel : les 5 é tapes de la programmation

38

39 Fonctions avanc é es pour phon é ticiens

40 Traitement du signal 1 Analyse spectrale avec Matlab dft (fft) psd fenêtres autres m é thodes é chelle des fr é quences r éé chantillonage

41 Le son fr é quence d é chantillonage, longueur et dur é e fr é quence Nyquist le fichier wav ([-1 1]) demonstration demoson() demoson_tous

42 Estimation spectrale Signal Processing Toolbox: Statistical Signal Processing: Spectral Estimation Method demospectre( s1 )

43 Fenêtrage Signal Processing Toolbox: Special Topics: Windows

44 spectrogramme specgram specgramdemo

45 Traitement du signal 2 Filtrage et lissage filtres curve fitting coefficient de corr é lation lpc ar cepstral smoothing autres m é thodes

46 Le filtrage Enlever le bruit (ex. é lectromyographie) Lisser les courbes d é riv é es (ex. donn é es articulatoires) Signal Processing Toolbox: Special Topics: Time-Domain Based Modeling Signal Processing Toolbox: fdatool (et fvtool pour visualiser le filtre) Signal Processing Toolbox: sptool

47 D é monstration lpc demolpc filtrage demoderiv

48 Lissage cepstral

49 Exercice 4 Pour des donn é es de mouvement d un articulateur, calculer la vitesse et l acc é l é ration. (Ou : pour un signal é lectroglottographique, la vitesse et l acc é l é ration de l ouverture et de la fermeture des cordes vocales) Afin d y voir plus clair, filtrer le signal pour enlever le bruit

50 Cr é er une interface avec Matlab guide d é monstration modification du code g é n é r é automatiquement

51 Alignement de donn é es vari é es Transformation du code de specgramdemo


Télécharger ppt "Programmer avec Matlab I Savoir-faire de l é cole doctorale 268 Langages et langues Universit é Paris III 31 janvier 2006 Pr é sent é par Martine Toda."

Présentations similaires


Annonces Google