Programmer avec Matlab I - PowerPoint PPT Presentation

1 / 51
About This Presentation
Title:

Programmer avec Matlab I

Description:

V rifiez tout si vous souhaitez utiliser le mat riel mis disposition dans un but ... Alignement de donn es acoustique et de donn es articulatoires ... – PowerPoint PPT presentation

Number of Views:1075
Avg rating:3.0/5.0
Slides: 52
Provided by: caviUni
Category:

less

Transcript and Presenter's Notes

Title: Programmer avec Matlab I


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
  • martine.toda_at_excite.co.jp

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 quil nexiste pas de logiciel qui permet
    de faire ce quon 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
  • Subdivision du problème en tâches simples et
    indépendantes
  • Planification des programmes en pseudo-code
  • Traduction en langage de programmation (ici,
    cest Matlab)
  • Commenter ce code au fur et à mesure
  • 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)

7
Exemple
  • Pseudo-code
  • Programme création dun 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)
  • Cest 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é à lanalyse du signal de
    parole
  • Il existe un module spécialisé danalyse du
    signal (et de limage)
  • 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 dinterfaces 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)
  • Laide et les démos
  • Programming and Data Types

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

14
Expressions
  • Littéraux Programming and Data Types M-File
    Programming Data Types
  • Nombres (type implicite)
  • Entiers 1, 40, 50394, -2,
  • Flottants 0.0004, 4000.0,
  • Décimaux 0.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
  • Variables mmax, a, (le nom doit commencer par
    une lettre éviter dutiliser les noms de
    fonction préexistantes)
  • Fonctions (avec ou sans argument) trouvemax,
    plot(x, y)
  • Opérateurs et mots clés gt - 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é
  • gt
  • 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 quon crée soi même sutilisent
    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 dun programme
  • Opérateurs syntaxiques de base
  • Matrices et cellules
  • Quest-ce qui est quoi (variable, fonction,
    mot-clé, chaîne de caractère) ?
  • A1 3 5 9, A1 3 5 9 A, plot(A), close
  • BA B
  • 13 13
  • C1 3 5 8 A-C AC plot(A, C), plot(A, C,
    r)
  • Dceci est un test D
  • D(1), D(6), D(111), D(1end)
  • Enum2str(A)
  • F1 2 3 4 5 6 7 8 9, F(2,3), GA, C , HA
    C
  • Iceci, est, une, cellule, I2,
    I1(4)

20
Boucles
  • Les boucles permettent ditérer les mêmes
    opérations plusieurs fois sans les écrire
    plusieurs fois dans le programme
  • if else end si sinon
  • for iab 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 -gt demonstration demofopen
  • fgetl, strtok, sscanf, findstr, strcmp
    fidfopen(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
Laffichage des données à linté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 daffichage 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 i160 plot(MSP(i,2),volpal(i,2),'marker','o'
    ) end

29
Démonstration
  • demoregression

30
(No Transcript)
31
Exercices
32
Exercice 1
  • Afficher sous forme de graphique des données
    contenues dans un fichier texte. (TF1.txt)
  • Parcourez un document texte structuré
    (articulatorydata.txt) et faites la liste pour
    lentrée forme de la langue pour chacune des
    consonnes, /s/, lalvéolopalatale (c) et la
    palatoalvéolaire ou rétroflèxe (sh).
  • 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 daire 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 laire relative de deux
    tubes qui simulent un conduit vocal sans toucher
    à leur longueur.
  • Je veux que laire totale soit constante afin de
    simuler le volume constant de la langue.

35
1. Subdivision en tâches simples
  • Boucles me permettant dobtenir un continuum
  • Ouverture de fichiers texte en écriture
  • Affichage des fonctions daire 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
    denregistrer la réponse de lutilisateur (dans
    un protocole ABX, par exemple).
  • rand input wavread
  • Rappel les 5 étapes de la programmation

38
(No Transcript)
39
Fonctions avancées pour phonéticiens
40
Traitement du signal 1Analyse 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 2Filtrage 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 dun articulateur,
    calculer la vitesse et laccélération. (Ou pour
    un signal électroglottographique, la vitesse et
    laccélération de louverture et de la fermeture
    des cordes vocales)
  • Afin dy 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
Write a Comment
User Comments (0)
About PowerShow.com