Traitement du signal
TP 1 : Signaux élémentaires et Fonctions de corrélation
Objectif : L’objectif de ce TP est de générer les signaux élémentaires et d’illustrer les
notions de fonctions d’auto et d’inter corrélation
I. Génération de signaux élémentaires
Pour Matlab et plus généralement pour tout dispositif numérique, tout signal est représenté
par un vecteur dont les points correspondent à des échantillons. Ces échantillons du signal
sont prélevés à intervalles réguliers : il s’agit d’un signal échantillonné (donc à temps discrets)
dont la fréquence d’échantillonnage fe est relative à la période Te d’échantillonnage : fe = 1/Te.
De la même manière, les valeurs prises par ces échantillons font partie d’un ensemble discret
(signal quantifié). Nous allons donc traiter des signaux numériques.
L’objectif de ce TP est d’illustrer les notions vues en cours de traitement du signal analogique
sans tenir compte des spécificités dues au traitement du signal numérique qui seront étudiées
plus tard.
Un signal échantillonné sera noté x(t) où t représente une grandeur discrète (qu’on assimilera
généralement au temps). En Matlab, on ne peut représenter qu’un signal de durée finie par un
vecteur. Par contre, ce vecteur en tant que tel ne possède aucune information sur la valeur de
l’argument du signal t. Une représentation correcte de x(t) requiert deux vecteurs, un pour x et
un pour t.
Par exemple, x(t) = {-2,1,-1,0,1,4,3,7} peut être représenté par :
>> t = [-3, -2, -1, 0, 1, 2, 3, 4];
>> x=[ -2, 1, -1 , 0, 1, 4, 3,7] ;
Ce signal peut être affiché à l’aide de la commande :
>> plot (t, x) ;
>> xlabel (‘t (s)’) , ylabel(‘x’) ;
Manipulation 1 : Générer et afficher un signal sinusoïdal d’amplitude A=10V et de de
fréquence f =500 Hz et de fréquence d’échantillonnage f e =1000 Hz. On considéra un signal
de durée 1 s commençant à 0.
Faire varier la fréquence d’échantillonnage de 1000 Hz à 5000Hz avec un pas de 1000 Hz,
commenter le résultat.
Prendre f e =10000 Hz et commenter le résultat.
II. Corrélations pour la reconnaissance de locuteur
En traitement de la parole, le moyen le plus élémentaire de reconnaitre un locuteur consiste à
comparer un échantillon vocal que l’on veut tester avec un échantillon vocal de référence
préalablement enregistré. La “comparaison” la plus simple se réalise au travers du coefficient
de corrélation.
Manipulation 3: Implémentez sous Matlab une fonction qui permette de calculer le
coefficient de corrélation entre deux vecteurs x et y.
Manipulation 4: Chargez ensuite le fichier « test_reco_locuteur.mat ». Vous trouverez dans
votre espace de travail quatre échantillons vocaux, correspondant à quatre locuteurs différents
(voix1, 2, 3, 4), ainsi qu’un échantillon de référence (voix_ref).
A l’aide du coefficient de corrélation, déterminer qui des quatre locuteurs à la voix qui
“ressemble” le plus au locuteur de référence.
Vous pouvez vérifier vos résultats en écoutant les sons à l’aide de la commande suivante :
>> sound (voix_ref , Fe ) ;
>> sound (voixX , Fe ) ;
Aurait-il été possible d’arriver aux mêmes conclusions simplement en observant l’évolution
temporelle des différents signaux ?
III. Localisation d’un téléphone mobile
Dans cette partie, nous allons étudier un exemple concret d’utilisation des fonctions de
corrélation : la localisation de téléphones mobiles. C’est une tâche importante pour de
nombreuses applications civiles ou militaires, comme les services d’urgence, commerciaux, le
transport intelligent, etc.
Il existe différentes techniques pour localiser un téléphone au sein d’un réseau cellulaire.
Nous allons considérer la méthode dite de “mesure de temps d’arriver” ou TOA (pour Time
Of Arrival). Son principe est simple, elle consiste à mesurer la distance qui sépare le mobile
des stations de base (BS) environnantes en évaluant le temps de parcours d’un signal émis par
le mobile. Une fois les distances évaluées, les coordonnées du mobile s’obtiennent par
intersection des cercles définissant les zones possibles de localisation du mobile. On notera
qu’il faut au minimum 3 BS pour pouvoir réaliser cette tâche. En supposant le mobile et les
BS parfaitement synchronisés, la mesure du temps de parcours s’effectue par intercorrélation
entre un signal s(t), dit de référence, émis périodiquement par le mobile et connu par toutes
les BS, et le signal ri(t) reçu à chaque BS.
De façon simplifiée on peut considérer que s(t) et ri(t) vérifient :
Où ai est un facteur d’atténuation,
τ i est le temps de parcours mobile-ième station de base, et
w(t) représente le bruit inhérent à tout système électronique.
Question 1 : Montrez qu’en l’absence de bruit la fonction d’intercorrélation entre s(t) et r i(t)
est maximale pour un retard
τ =τ i .
Manipulation 5: Pour appliquer la méthode de TOA par intercorrélation dans un contexte
réel où le signal reçu est bruité, le choix du signal de référence s(t) ne doit pas être laissé au
hasard.
Chargez le fichier « signaux_ref.mat » dans votre espace de travail et tracez à l’aide de la
fonction « calc_corr » les fonctions d’autocorrélation de « signal_ref1 » et « signal_ref2 ».
Quel signal vous semble être le plus adapté à la méthode de TOA? Commentez votre choix.
Manipulation 6: Nous allons maintenant essayer de localiser un téléphone mobile qui se
trouve au voisinage des 3 stations de base positionnées comme indiqué sur la figure 1. Tout
d’abord, chargez le fichier « signaux_localisation.mat » dans votre espace de travail. Celui-ci
contient le signal de référence utilisé pour l’expérience ainsi que le signal reçu à chacune des
stations de base. Appliquer ensuite la méthode TOA pour en déduire approximativement la
position du mobile (vous pouvez vous aider de la fonction Matlab « circcirc » qui permet de
déterminer les points d’intersection de deux cercles).