Download pdf - exos_08 (1)

Transcript
Page 1: exos_08 (1)

Exercices — 08

1 Lissage d’un signal bruite

Commandes Matlab utiles pour cet exercice : convn

1. Creez un vecteur contenant le signal f0 = exp(−(x − x0)2/(2s2) avec x0 = 50 et s = 20, pour x allant de 0 a 100

par pas de 1. Tracez ce vecteur en fonction de x

2. Ajoutez a f0 un bruit gaussien d’amplitude 0.2, le resultat sera nomme f . Tracez f sur la meme figure.

3. Creez un vecteur R1 contenant N = 5 fois le nombre 1 (utilisez la commande ones). Normez ce vecteur pour queson integrale soit 1.

4. Realisez la convolution de f avec R1 (moyenne glissante), et tracez le resultat (on l’appellera h1) en fonction de x(superposez a celui de f0).

5. Creez cette fois un vecteur R2 contenant un triangle de N points : [1 2...N+1

2...2 1]. Normez ce vecteur, convoluez-le

avec f0 (appelez le resultat h2) et tracez h2.

6. Pour avoir une idee de l’efficacite des deux lissages, tracez sur une autre figure les courbes h1−f0 et h2−f0. Y-a-t’ilune grosse difference entre les deux lissages, et si oui lequel semble le plus “fort” ?

7. Calculez les distances euclidiennes (celle des moindres carres) de h1 et f0, puis de h2 et f0 et concluez sur l’efficacitedes 2 lissages.

2 Debruitage d’un son

1. Lisez le fichier son FR.wav (disponible sur le BV). L’amplitude du son sera placee dans un vecteur y, La frequenced’echantillonnage sera placee dans la variable fs.

2. Creez un vecteur temps t qui commence a 0, qui a meme taille que y, et de pas 1/fs. Tracez l’amplitude y du sonen fonction du temps t.

3. Jouez ce son au moyen de la commande wavplay.

4. Bruitez y avec un bruit gaussien d’amplitude 0.05, tracez le resultat en fonction du temps sur une seconde figure.Jouez le son pour ecouter l’influence du bruit.

5. Convoluez ce son par le masque R = [11111]/5. A nouveau, tracez le son ainsi lisse, et ecoutez l’effet du lissage.

3 Mesure d’une fonction de transfert en frequences

Une maniere de caracteriser un appareil est de mesurer sa “fonction de transfert” en frequences. Cela peut se faire enfaisant passer a travers l’appareil des signaux sinusoidaux de frequences croissantes, et de mesurer l’amplitude du signalen sortie de l’appareil (generalement cette amplitude dimimue lorsque la frequence augmente, c’est le cas de l’oreillehumaine qui n’entend plus rien (amplitude nulle) pour des frequences superieures a 20000 Hertz (cas d’une oreille neuveet en bonne sante). Le but de l’exercice est de realiser une simulation de mesure d’une fonction de transfert (on connaitla reponse impulsionnelle de l’appareil, disponible dans le fichier de donnees psf.txt sur le BV).

1. Lire la reponse impulsionnelle dans une variable h. Tracer h en fonction du temps (creez un vecteur t1 pour letemps, sachant que le pas d’echantillonnage temporel est δt = 0.01 s)

2. Creez un nouveau vecteur de temps t allant de 0 a 10 s par pas de δt.

3. Creez un signal f contenant la sinusoide f = cos(2πνt) de frequence ν = 1. Tracez f en fonction de t

4. Convoluez f par h (on l’appellera g) et tracez le resultat sur la meme figure. Verifiez que la frequence de g est lameme que celle de f .

5. Calculer l’amplitude maximale de g, verifiez que vous obtenez un nombre compris entre 0 et 1 (g correspond en faita la valeur de la fonction de transfert pour ν = 1).

6. Au moyen d’une boucle for, faites varier ν entre 1 et 40 Hz par pas de 0.1 Hz. Pour chaque valeur de ν, calculer f ,puis g et stocker l’amplitude maximale de g dans un vecteur T .

7. Tracer en T en fonction de la frequence (utilisez une echelle log-log).

8. Pour quelles valeurs de ν l’amplitude du signal de sortie sera-t-elle plus faible que le dixieme de celle du signald’entree ?

1

Page 2: exos_08 (1)

4 Bord du disque solaire

Une image d’une partie du Soleil a ete realisee au foyer d’un telescope equipe d’une camera CCD. L’image est disponiblesur le BV (bord.jpg). On souhaite mesurer precisement la position du bord du disque solaire pour une ligne de l’image.Ce bord n’est pas “franc”, c’est a dire que la luminosite croit de maniere progressive quand on s’approche du bord. Unemaniere de definir le bord solaire est de calculer le point d’inflexion (maximum de la derivee) du profil de luminosite.

1. Visualisez-l’image avec imshow ou imagesc .

2. Seconde etape : extraction du profil de luminosite. Pour cela mettez dans un vecteur profil la ligne de votre choix(il sera peut-etre necessaire de convertir les valeurs du profil en nombres reels grace a la commande double). Tracezle profil.

3. Calculez et tracez la derivee numerique du profil (convoluez par le masque de Prewitt [1, 0,−1]). Eliminez le dernierpoint, aberrant (remplacez-le par l’avant-dernier).

4. Vous constatez la presence de bruit, filtrez-le par une moyenne glissante sur 5 points. Puis determinez, a l’aide dela commande find, l’abcisse du maximum de cette derivee filtree. Verifiez sur l’image que ca correspond bien al’abcisse du bord du Soleil.

5. L’image bord.jpg etait une image a faible bruit. Essayez maintenant de determiner la position du bord du Soleilsur une image a faible temps de pose, beaucoup plus bruitee : bord 0722.bmp. Vous aurez besoin de lisser le profilavand calcul de la derivee.


Recommended