Sie sind auf Seite 1von 10

EPREUVE PRATIQUE DE TRAITEMENT DU SIGNAL

Service de Thorie des Circuits et de Traitement du signal

4me ELEC - 2010-2011


(dure : 2 H , sans notes, sans calculette, sans GSM)

SOLUTIONS

NB: En ce qui concerne les questions sous Matlab, noubliez pas d'indiquer sur votre feuille les commandes MATLAB utilises et les rsultats obtenus: esquisses des graphiques avec indication des abscisses et ordonnes, valeurs numriques des rsultats des calculs. En ce qui concerne les questions sous Simulink, noubliez pas de dessiner votre graphe simulink complet sur votre feuille et de prciser chaque tape les paramtres choisis pour les blocs utiliss. Nous vous demandons galement de sauver votre graphe Simulink dans lespace de travail Work sous le nom de famille de lun des membres du groupe, crit sans espaces ni caractres spciaux. 1. Filtre tout-ples Soit un filtre tout-ples H ( z ) dordre 2 et de gain unitaire (K=1), ralisable physiquement, dont la rponse impulsionnelle est illustre la Figure 1 (pour une frquence dchantillonnage fe=1) et dont la rponse en rgime une entre constante damplitude 2 est une constante damplitude 13,025.
Rponse impulsionnelle 2 1.9 1.8 1.7 1.6 1.5 1.4 1.3 1.2 1.1 1 0.9 h(n) 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0 -0.05 -0.1 -0.15 -0.2 -0.25 -0.3 -0.35 -0.4 -0.45 -0.5

10

15

20 n

25

30

35

40

Figure 1 Rponse impulsionnelle du filtre H(z).

On vous demande de dessiner de la manire la plus prcise possible la position des ples et zros de ce filtre.

Solution : Il sagit dun filtre tout-ples , sa rponse en frquence est donc de la forme : 1 H ( z) = K N 1 + ai z i
i =1

Comme il sagit dun ordre 2, on a :


H ( z) = K 1 1 + ai z i
i =1 2

=K

1 1 + a1 z 1 + a2 z 2

=K

1 z2 = K z 2 (1z 2 + a1 z1 + a2 ) (1z 2 + a1 z1 + a2 )

On a deux zros en zros et deux ples Comme cest ralisable physiquement et que la rponse impulsionnelle est de type cosinusode amortie, on sait que ces deux ples sont complexes conjugus de module infrieur 1. Or, on sait que la rponse impulsionnelle correspondant deux ples complexes conjugus est une cosinusode amortie de frquence lie largument des ples et damortissement li au module des ples (c'est--dire h(n) = K n cos(n + ) o K est une constante (diffrente du gain de filtre)). Ici la rponse impulsionnelle du filtre compte 16 chantillons par priode T0 avec une priode 2 rad = 0.9827rad = 22.5 dchantillonnage unitaire. Donc T0=16 f0=1/16 = 16
Il reste dterminer le module . Pour cela, plusieurs possibilits : - Soit on regarde la rponse impulsionnelle aux maximas de la cosinusode amortie c'est--dire aux endroits o cos(n + ) = 1 . Il sagit des chantillons n=2 et n=10 (par exemple).

Pour ces chantillons on sait que h(n) = K n cos(n + ) = K n


En n=2, on a : h(n) = K 2 = 1.7

En n=10, on a : h(n) = K 10 = 0.42

K2 1.7 = 10 K 1.42

8 =

1.42 1.7

=8

1.42 = 0.8397 1.7

- Soit, on considre le fait quon sait quen rgime:

Ici, on examine la rponse une entre constante damplitude 2 cd une cosinusode damplitude 2 et de frquence nulle 0 = 0

ampl signal sortie 13.025 = = H (0 = 0) = K Donc, amplsignal entre 2

(z z ) (z p )
i =1 i i =1 N i z =e
j 0

(pour 0 = 0 )
=e j 0

Pour un filtre tout-ples dordre 2 ralisable physiquement et de gain unitaire (K=1), on a:


ampl signal sortie 13.025 1 = = H (0 = 0) = 1 2 amplsignal entre ( z p1 ) ( z p1* )

z =e

=e j 0

Or, pour 0 = 0 , les deux segments ( z p1 ) et ( z p1* ) sont gaux (cf dessin ci-dessous)

13.025 1 = 2 2 ( z p1 )

r = ( z p1 ) =
z =e j 0

2 13.025

la position des ples correspondent lintersection de la droite passant par lorigine et dangle
2 2 rad et le cercle de centre (1,0) et de rayon r = ( z p1 ) = = 0.3919 16 13.025 Et on a deux zros en zro

NB : ce nest pas demand (car seule lillustration de la position des ples ci-dessus suffit) mais on pourrait calculer exactement la valeur aux formules du triangle quelconque:

Ici B= a=1 (cercle unit) b = |Z-pi| = r = sqrt(a_entree/a_sortie) = 0.3919 c= 2 = 2 2 cos + 1 (quation du second degr) 13.025 = 0.8396 ou = 1.0082 Ici doit tre plus petit que 1 pour tre stable (car la rponse impulsionnelle est bien finie en = 0.8396 amplitude et amortie)

2. Dtection dun trsor au moyen de deux sonars Un sonar actif est un appareil qui mesure la direction et la distance dun objet sous-marin en mettant dans l'eau une impulsion sonore puis en coutant l'cho de cette impulsion rflchie par lobjet. Le temps entre l'mission de l'impulsion et le retour de l'cho donne la distance du contact, puisque la vitesse du son dans l'eau est connue.

Figure 2 Pour la dtection dun trsor, deux navires quips de sonars sont rquisitionns.

Pour la dtection dun trsor, deux navires quips de sonars sont rquisitionns (Figure 2). On suppose ici que lon travaille en numrique et quil ny a aucune attnuation de lamplitude des signaux dans leau et aucun bruit additionnel (ceci est videmment irralisable en pratique). Londe sonore envoye par le premier navire toutes les 3s correspond une sinusode damplitude 4, de frquence 20 Hz, chantillonne 300 Hz et limite en dure 248 ms par une fentre rectangulaire Londe sonore envoye par le second navire toutes les 2s correspond une sinusode damplitude A, de frquence 27 Hz, chantillonne 300 Hz et limite en dure D secondes par une fentre triangulaire dont lallure temporelle et le spectre en amplitude sont illustr la Figure 3.

Figure 3 Allure temporelle et spectre en amplitude dune fentre triangulaire.

A tout instant, le second navire peut recevoir lcho de son propre signal ( 27 Hz) et/ou celui de son comparse ( 20 Hz).

On vous demande de : a) Dterminer (sur papier) quelle doit tre lamplitude minimale et la dure minimale du signal mis par le second navire pour que ce dernier puisse discerner clairement les deux signaux en visualisant leurs spectres en amplitude en dB calculs sur NTFD=512 points (NB : partir du principe que la contribution du second navire est plus faible sur le spectre). b) Dterminer (sur papier) quelle devrait tre lamplitude A du signal mis par le second navire pour que les contributions des deux signaux aient des amplitudes gales sur le spectre en amplitude. c) Crer sous MATLAB 300 chantillons du signal x(t) constitu de la somme de londe sonore envoye par le premier navire et de londe sonore envoye par le second navire (de dure D dtermine au point a) et damplitude A dtermine au point b) ) et visualiser son allure temporelle. Utiliser pour cela la fentre triang(N)sous matlab. d) Afficher le spectre de ce signal x(t) calculs sur NTFD=512 points sous MATLAB. Cela correspond-il ? Ensuite, dans un mme graphe Simulink o vous utiliserez un temps de simulation de 1s et un pas de traitement variable, on vous demande de : e) Gnrer le signal x(t) (constitu de la somme de londe sonore envoye par le premier navire et de londe sonore envoye par le second navire) chantillonn 300 Hz et transmis par chantillons. Pour cela, utiliser les blocs sine wave et repeating sequence de la librairie Simulink->Sources ainsi que les blocs product et sum de la librairie Simulink->Commonly used blocks. (Remarque : si ce point na pu tre ralis, importer les chantillons du signal x(n) au moyen d'un bloc Signal From Workspace de sorte que le signal soit transmis par chantillons). f) Afficher lallure temporelle du signal x(n) sous Simulink.

g) Afficher le spectre en amplitude (transforme de Fourier) de la totalit des chantillons du signal x(n) calculs sur NTFD=512 points, pour des frquences normalises allant de f=0 f = fe, et en dB. Cela correspond-il ce que vous aviez observ sous Matlab?

Solution : a) Nous utilisons deux fentres diffrentes pour limiter la dure des sinusodes et donc deux fonctions pieuvres diffrentes apparaitront sur le spectre :

Pour que les lobes principaux des deux sinusodes ne se recouvrent pas, il faut: F2 F1 LP 1 + LP 2
2 27 20 1 + 300 N1 N 2

Or, si la frquence dchantillonnage vaut 300 Hz et que la dure de la premire sinusode vaut 0.248s t1=0:1/300:0.248 N1=length(t1)=75 Ou ( N1 1) Te = 0.248 N1 = 75, 4 (entier) N1 = 75 Donc,
2 27 20 1 + 300 75 N 2 2 7 1 300 75 N 2 74 2 300 N 2

1 2 100 N 2

N 2 200 Or ( N 2 1) Te = D
D ( 200 1) / 300

D 0.6633s
Pour ne pas que le lobe principal de la seconde sinusode soit cach dans les lobes secondaires de la premire sinusode il faut : il faut D dB A
dB

Or A dB = 20*log10(

N1 A1 N A 2N A ) 20*log10( 2 2 ) = 20*log10( 1 1 ) 2 2 2 N 2 A2

Et pour une fentre rectangulaire, D dB = 13dB

13 dB 20*log10(

2 N1 A1 ) N 2 A2

1013/20

2 75 4 200 A2

A2

2 75 4 200 1013/ 20

A2 0.6716
b) Pour que les contributions des deux signaux aient des amplitudes gales sur le spectre en amplitude, il faut : N A NA A*2= 2 2 A*1= 1 1 A1 = A2 2 2 2
N1 A1 N 2 A2 = 2 2 2
A2 = 2 N1 A1 2 75 4 = N2 200

A2 = 3
F1 LP
1

LP2

F2

c) Crer sous MATLAB le signal x(t) et le visualiser:


fe=300; f1=20; a1=4; t1=0:1/fe:0.248; N1=length(t1) f2=27 N2=ceil(2/(((f2-f1)/fe)-(1/N1))) Duree2=(N2-1)*1/fe a2min=4/(N2/2)*N1/(10^(13/20)) a2=2*N1*a1/N2 t2=0:1/fe:(N2-1)/fe; x1=a1*sin(2*pi*f1*t1); x2=a2*sin(2*pi*f2*t2).*triang(length(t2))'; % pour additionner les deux vecteurs, il faut quils aient la mme dimension % => on complte par des zros pour avoir 300 chantillons de chaque cot x=[x2,zeros(1,300-length(x2))]+[x1,zeros(1,300-length(x1))]; figure,plot(0:1/fe:(length(x)-1)/fe,x),title('x'),xlabel(Temps[s]), x ylabel(x(t))
6

x(t)

-2

-4

-6

0.1

0.2

0.3

0.4

0.5 0.6 Temps[s]

0.7

0.8

0.9

d) Afficher le spectre de ce signal x(t) calcul sur NTFD=512 points sous MATLAB. Cela correspond-il ?
NTFD=512; figure,freqz(x,1,NTFD,'whole',fe); subplot(2,1,1),ylim([-50 50])
50 Magnitude (dB)

on a bien deux raies de mme amplitude (dont les lobes principaux ne se recouvrent pas) en 20 et 27Hz zoom :
0 50 100 150 Frequency (Hz) 200 250 300
40 Magnitude (dB) 20 0

-50

5000 Phase (degrees)

0
5000 Phase (degrees) 0

10

15

20

25 30 Frequency (Hz)

35

40

45

50

-5000

-5000

-10000 0

-10000 0

50

100

50

100

150 Frequency (Hz)

200

250

300

150 Frequency (Hz)

200

250

300

e) g) sous simulink :

Das könnte Ihnen auch gefallen