• Aucun résultat trouvé

1 Introduction à Matlab TP T N S

N/A
N/A
Protected

Academic year: 2022

Partager "1 Introduction à Matlab TP T N S"

Copied!
4
0
0

Texte intégral

(1)

TP

DE

T

RAITEMENT

N

UMERIQUE DU

S

IGNAL

1 Introduction à Matlab

Le TP s'effectue au moyen de l'environnement Matlab. Il s'agit d'un langage de programmation disposant d'un certain nombre de fonctions permettant d'accélérer le développement du code.

Vous trouverez à l'ESCPI de nombreux documents concernant Matlab. Quelques rappels sont effectués ci- dessous :

Matlab utilise essentiellement des vecteurs et aucune déclaration des variables n'est nécessaire. Ainsi, la création d'une variable x et son affectation à la valeur 3 s'écrit :

» x=3 x = 3

La création d'un vecteur x de 3 lignes et 1 colonne, initialisé aux valeurs 1,2,3 s'écrit :

» x=[1;2;3]

x =

1 2 3

Les ; servent à délimiter les lignes. La création d'un vecteur avec 1 ligne et 3 colonnes s'écrira :

» x=[1 2 3]

x =

1 2 3

Toutes les opérations arithmétiques : +, *, -, / s'effectuent aussi bien sur des scalaires que sur des vecteurs ou sur des matrices.

On trouve sous Matlab toutes les instructions classiques de type : for, while, if , …

commande Matlab résultat

(2)

exemple : syntaxe d'une boucle for calculant la somme des carrés des entiers de 1 à 3 :

» val=0 val =

0

» for i=1:3 val=val+(i^2);

end;

» val val = 14

On notera la mise à la puissance au moyen de l'opérateur ^

Matlab est très efficace lorsqu'il s'agit de manipuler des vecteurs ou des matrices par contre l'emploi de boucles le ralentit énormément. Ainsi l'exemple précédent se "coderait" de manière plus efficace en Matlab de la manière suivante :

» i=1:3 i =

1 2 3

» val=i*i' val = 14

Quelques remarques :

− L'instruction ' permet de transposer un vecteur. Lorsque le vecteur est complexe il s'agit d'une transconjugaison.

− Dans le cas de nombres complexes, on peut utiliser directement i ou j comme racine de -1 (sans s'en être servi auparavant comme variables)

− Pour éviter que Matlab n'affiche les résultats durant les calculs ou les affectations, il faut terminer la ligne par ;

Matlab possède un très grand nombre de fonctions qui vont permettre d'accélérer le développement. La seule difficulté provient du fait qu'il faut au minimum connaître le nom de la fonction. Dès que l'on a le nom la commande help permet d'avoir la syntaxe de la fonction.

Si l'on cherche par exemple à calculer la valeur moyenne d'un signal, on peut programmer soi même le calcul ou utiliser la fonction mean :

initialisation

boucle for

résultat

en entrant juste le nom de la variable, Mtalb fournit sa valeur

création et affectation d'un vecteur ligne comportant les valeurs 1,2,3

produit scalaire

(3)

help mean

MEAN Average or mean value.

For vectors, MEAN(X) is the mean value of the elements in X.

For

matrices, MEAN(X) is a row vector containing the mean value of each column. For N-D arrays, MEAN(X) is the mean value of the elements along the first non-singleton dimension of X.

MEAN(X,DIM) takes the mean along the dimension DIM of X.

Example: If X = [0 1 2 3 4 5]

then mean(X,1) is [1.5 2.5 3.5] and mean(X,2) is [1 4]

See also MEDIAN, STD, MIN, MAX, COV.

Quelques unes des principales fonctions dont vous aurez besoin dans ce TP sont :

wavread, wavwrite plot

fft, ifft xcorr

filter, remez, ellip roots

(éventuellement) levinson plus d'autres ...

Les enseignants sont disponibles pour vous aider à trouver une fonction qui pourrait exister mais dont vous ne connaîtriez pas le nom (problème classique avec Matlab).

2 Le sujet

Vous allez devoir proposer et programmer une méthode pour "corriger" un signal audio qui a subi un écho et auquel des signaux brouilleurs (intentionnels dans le cadre de ce TP mais qui pourraient être fortuits dans un cas

"réel") ont été ajoutés.

ATTENTION, vous aller travailler avec un fichier son perturbé qui n'est pas le même pour tous les binômes.

Evitez donc de trop vous inspirer des programmes d'autres groupes.

2.1 Récupération du fichier

L'environnement de travail sera votre compte sous Windows NT4.0

Rapatriez dans votre répertoire de travail le fichier contenant le signal source :

répertoire partagé/terre/[sous promotion (A=1, B=2)][numéro de binôme].wav Branchez votre casque sur la sortie de la carte son de votre PC (à l'arrière du PC)

Ecoutez le signal.

(4)

2.2 Suppression des signaux "brouilleurs"

A partir de l'écoute du signal et de l’observation de sa densité spectrale de puissance, vous pouvez déduire et identifier deux fréquences pures qui "brouillent" le signal utile. Supprimez ces porteuses par filtrage.

Attention, ici vous êtes totalement libre pour programmer l'identification automatique ou non des fréquences, le filtrage en temporel ou en fréquentiel, ….

2.3 Suppression de l’écho

Vous pouvez constater à l'oreille que le signal est noyé dans son écho. Pour vous aider, nous vous indiquons que cet écho a été généré synthétiquement par une recopie simple du signal sur lui même avec un coefficient d'affaiblissement. Le retard de l'écho est compris entre 100 et 400 ms. Le coefficient d'affailblissement est compris entre 0 et 1.

Identifiez ces paramètres et supprimez l’écho du signal.

2.4 Amélioration

Discutez et proposez d'autres méthodes pour corriger le signal. Est-il possible de le rendre plus audible par un traitement quelconque.

Il serait par exemple intéressant d'analyser la position des zéros d'un filtre de prédiction linéaire appliqué à ce signal.

Rappel : dans votre rapport on trouvera :

Explication théoriques des traitements que vous proposez pour restaurer le signal.

Schéma de l'enchaînement de ces traitements Qualité de la restauration

Suggestions pour amélioration

Votre programme (sans trop de lignes blanches et avec commentaires succincts mais utiles)

Références

Documents relatifs

En partie 5 du fichier TD7_Etudiant.sce, écrire l’instruction faire appel à la fonction filtre(mesure, te, tau) pour construire la variable signal_filtre, en précisant la

On veut maintenant simuler N variables al´ eatoires ind´ ependantes de mˆ eme loi que M et comparer l’histogramme avec la densit´ e th´ eorique.. Ceci est fait dans matlab avec

Écrivez une fonction qui prend en entrée deux valeurs a et b et qui renvoie la solution de l'équation

Mécanismes pour la Qualité de Service (contrôle de congestion, ordonnancement, architecture et protocoles) DiffServ, RSVP, RED, MPLS…. Les communications

Programmez la recherche dichotomique : ´ecrire une proc´edure qui rend l’arbre (ou null) portant l’´el´ement le plus grand et inf´erieur ` a un ´el´ement donn´e. De

Il aurait en outre été intéressant d'étudier l'influence de la fréquence du signal ; en particulier dans un milieux dispersif la célérité dépend de la fréquence.. ◊ remarque :

Dans Excel : Coller (Puis éliminer les valeurs incohérentes avec click droit > supprimer). Tracer v y = f(t) en sélectionnant les colonnes A et C, puis et nuages

Fenˆ etre typique de Matlab, au centre l’invite de commande, en haut ` a droite le contenu de l’espace courant de travail, ` a gauche la liste des fichiers du r´ epertoire courant,