Vous êtes sur la page 1sur 12

Service de Thorie des Circuits

et de Traitement du signal
EPREUVE PRATIQUE DE
TRAITEMENT DU SIGNAL

4
me
ELEC - 2012-2013
(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. Spectre dun signal chantillonn

Soit le signal :
0
0
sin( )
( )
t
x t
t

= avec
0 0
2 4000 rad/s f = =

4
t [s]
-4
0
0
sin( )
( )
t
x t
t

=
f
0
( ) ( )
f
X f q f =
1/(2f
0
)
-f
0
f
0

Figure 1 Signal analogique x(t) limit dans le temps et sa transforme de Fourier.

Sachant que la transforme de Fourier du signal analogique ( ) x t limit dans le temps (au moyen
dune fentre rectangulaire) de
0
4 t s =
0
4 t s = + est pratiquement gale la fonction relle
0
0 0
0
1
pour -
2 ( )
0 ailleurs
f
f f f
f q f

( Figure 1), on vous demande de :



a) Prdterminer le plus prcisment possible lallure du spectre du signal
0
sin( )
( )
t
y t
t

=

chantillonn avec une frquence dchantillonnage de fe=3000Hz et limit dans le
temps de
0
4 t s =
0
4 t s = + (avec une fentre rectangulaire).
b) De crer ce signal ( ) y n au moyen de la fonction Matlab sinc(x) (permettant de calculer,
sin( )
sinc( )
x
x
x

|
=
|

et dafficher ce signal ( ) y n

en fonction du temps (de -4 4 s donc).
c) Dafficher le spectre en amplitude du signal ( ) y n

calcul sur N
TFD
=2
15
points et de
vrifier vos prdterminations. Les amplitudes et les frquences observes sont-elles
correctes ?
d) De superposer cette FFT une seconde FFT N
TFD2
points de manire ce que les
valeurs obtenues pour ce second spectre constituent un sous-ensemble des valeurs
obtenues par le premier spectre, avec peu prs un point sur 15 du premier spectre
(indiquer votre raisonnement).


Solution :
a) Tout dabord, il faut passer du signal analogique
0
0
sin( )
( )
t
x t
t

= limit dans le temps, au


signal analogique
0
sin( )
( )
t
y t
t

= limit dans le temps (avec les mmes limites). Pour


cela, il suffit de multiplier ( ) x t par
0


En consquence, le spectre sera galement multipli par
0 0
0
2
2
f
f


= =

( ) Y f

Puis il faut passer du signal analogique ( ) y t limit dans le temps, au signal chantillonn
( ) y t
+
avec une frquence dchantillonnage de fe, ce qui revient diviser les amplitudes
du spectre par Te=1/fe et de dupliquer ce dernier tous les fe :

f
( ) Y f
+
1/Te=fe
-f
0
f
0
1/Te=fe
fe-f
0 fe+f
0 fe
2
fe

Toutefois, ici, la condition de Shannon nest pas respecte car fe/2<fmax (fe/2=1500Hz et
fmax=f0=2000Hz) => il y aura donc recouvrement des spectres. Et comme ceux-ci sont
purement rels, ils vont sadditionner. On aura donc au final :





( )
dB
Y f
+
b) On sait que
0 0 0
0 0 0
0
0
0
0
0
sin( ) sin(2 ) sin( 2 ) sin( )
( ) 2 2 avec 2
2
( ) 2 sinc( ) ave 2
2

2
c
t f t f t x
y t f f x f t
t t f t x
y t f x
f
t
f
x f


= = =
=

= =
=


On tapera donc les commandes suivantes sous Matlab :
fe=3000;
W0=4000*pi;
f0=W0/2/pi

t=[-4:1/fe:4];
x3=2*f0*sinc(2*f0*t);
figure, plot(t,x3) ou stem (t,x3)

Zoom :


c) On a :
NTFD=2^15; figure, freqz(x3,1,NTFD,'whole',fe);


Cela concorde avec nos
prdterminations puisque :
20*log10(fe)=69.5424 dB
et
20*log10(2*fe)=75.5630 dB










-0.01 -0.005 0 0.005 0.01
-500
0
500
1000
1500
2000
2500
3000
3500
4000
-4 -3 -2 -1 0 1 2 3 4
-1000
-500
0
500
1000
1500
2000
2500
3000
3500
4000
0 500 1000 1500 2000 2500 3000
-6
-4
-2
0
x 10
6
Frequency (Hz)
P
h
a
s
e

(
d
e
g
r
e
e
s
)
0 500 1000 1500 2000 2500 3000
68
70
72
74
76
X: 411.6
Y: 69.54
Frequency (Hz)
M
a
g
n
i
t
u
d
e

(
d
B
)X: 1248
Y: 75.56
d) Etant donn que les points du spectre sont espacs
1
TFD
N
en frquences normalises, pour
que les valeurs obtenues pour le second spectre constituent un sous-ensemble des valeurs
obtenues pour le premier spectre, il faut que

2
1 1

TFD TFD
k
N N
= avec k entier positif
15
2
1 1
= 2
TFD TFD
N N
k k
=

Or , N
TFD2
doit tre une puissance de deux (pour pouvoir appliquer lalgorithme de FFT)

15
2
1
2 =2
n
TFD
N
k
= (avec n entier positif) k doit aussi tre une puissance de deux.
on pourrait donc prendre k=2
1
(une valeur sur 2)

15 14
2
1
2 =2
2
TFD
N =
ou k=2
2
(une valeur sur 4)

15 13
2 2
1
2 =2
2
TFD
N =
ou k=2
3
(une valeur sur 8)

15 12
2 3
1
2 =2
2
TFD
N =
ou

Mais si on dsire avoir moins peu prs un point sur 15 du premier spectre, k doit valoir
au minimum 10 => k=2
4
=16


Alors
15 11
2 4
1
2 =2
2
TFD
N =

Sous matlab:
Soit:
NTFD=2^15;
freqz(x3,1,NTFD,'whole',fe);
hold on, freqz(x3,1,2^11,'whole',fe);
%puis changer la couleur d'une courbe la main en faisant clic
droit->Color

zoom :





0 500 1000 1500 2000 2500 3000
-6
-4
-2
0
2
x 10
6
Frequency (Hz)
P
h
a
s
e

(
d
e
g
r
e
e
s
)
0 500 1000 1500 2000 2500 3000
68
70
72
74
76
Frequency (Hz)
M
a
g
n
it
u
d
e

(
d
B
)
0 500 1000 1500 2000 2500 3000
-6
-4
-2
0
2
x 10
6
Frequency (Hz)
P
h
a
s
e

(
d
e
g
r
e
e
s
)
1997 1998 1999 2000 2001 2002 2003
70
72
74
76
Frequency (Hz)
M
a
g
n
i
t
u
d
e

(
d
B
)
Soit:
[X3,f]=freqz(x3,1,NTFD,'whole',fe);
figure,plot(f,20*log10(X3));
[X3bis,fbis]=freqz(x3,1,2^11,'whole',fe);
hold on,plot(fbis,20*log10(X3bis),'r');


zoom :


2. Spectre de trois sinusodes (sous Simulink)

Considrons un signal s chantillonn de manire respecter le thorme de Shannon et constitu
de la somme de trois sinusodes, o:

Les 30 premiers chantillons de la premire sinusode s
1
(n) sont reprsents la Figure
2 ;
La seconde sinusode s
2
(n) est dfinie par la fonction
( ) ( )
2
5sin 0.2rand(1,1)+0.6
3
s n n

| |
= +
|
\
;
La troisime sinusode s
3
(n) est la rponse impulsionnelle du filtre numrique dcrit par
la position de ses ples et zros, illustre la Figure 3 et dont le gain K=2.


Figure 2 Valeurs des 30 premiers chantillons de la premire sinusode (NB : il n y a pas deffet
stroboscopique puisque Shannon est respect).

0 500 1000 1500 2000 2500 3000
68
69
70
71
72
73
74
75
76
1996 1997 1998 1999 2000 2001 2002 2003 2004
69
70
71
72
73
74
75

Figure 3 Position des ples et zros du filtre dont la rponse impulsionnelle correspond la troisime sinusode.

On vous demande de:

a. Dterminer le nombre N dchantillons du signal s ainsi que le nombre N
TFD
de
points utiliser pour calculer et visualiser distinctement toutes les raies de la
transforme de Fourier discrte du signal s, en minimisant le temps de calcul et
sachant que:
on utilise une fentre rectangulaire pour se limiter N chantillons ;
on dsire au minimum visualiser distinctement le lobe principal et chacun
des premiers lobes secondaires de part et dautre du lobe principal
correspondant chacune des raies (trois lobes par raie ne se recouvrant pas
donc) ;
On souhaite obtenir 40 chantillons en frquence, au minimum, pour
laffichage des trois lobes de chaque raie.

Solution :
Pour la premire sinusode, on voit quil y a exactement 12 chantillons par priodes

1
12
e
T T =
1
1
1
0.0833
12
e
f
F
f
= = =


Pour la seconde sinusode, on a :
( ) ( )
2 2 2
5sin 0.2rand(1,1)+0.6 5sin 5sin 2
3 3 3
s n n n n F


| | | | | |
= + = + = +
| | |
\ \ \
( )
2
2 0.2rand(1,1)+0.6 n F n =


( )
2
0.1rand(1,1)+0.3 F =

Or rand(1,1) renvoie un seul chantillon dont la probabilit dappartenir lintervalle
[0 1] est quivalente ( )
2
0.1rand(1,1)+0.3 F =

est une valeur alatoire appartenant
lintervalle [0.3 0.4]


2
0.3 0.4 F


Pour la troisime sinusode, on sait que la rponse impulsionnelle correspondant 2
ples complexes conjugus est une cissode amortie damortissement li au module des
ples (ici 1 = pas damortissement) et de pulsation lie langle des ples.
ici
3 3
(180 7.2) 2
180
F

= =
3
(180 7.2)
0.48
360
F

= =


On aurait donc, si on ne se limitait pas N chantillons, le spectre suivant de 0 1 en
frquences normalises et sans respecter les amplitudes des raies:
|X(f)|
0
0.3F
2
0.4 F
1
2
0.48
0.08
0.1
0.2 1
0.52
0.61-F
2
0.7
0.92

Nous avons vu au labo que le fait de se limiter N chantillons au moyen dune fentre
rectangulaire conduisait obtenir, au droit de chacune des raies, des fonctions
pieuvres qui sannulent tous les 1/N en frquences normalises:


Or, pour visualiser le lobe principal et les premiers lobes secondaires de chacune des
raies, il faut que ceux-ci ne se recouvrent pas.

Les raies les plus proches tant celles en 0.48 et 0.52, il faut :


il faut
min
4
F
N


4
(0.52 0.48)
N

100 N


NB : si on choisit de ne visualiser que le spectre de 0 fe, on est cette fois limit par la
frquence de Nyquist normalise F
nyquist
=0.5 et on a :

il faut
min
2
F
N


2
(0.5 0.48)
N

100 N



Comme on choisit la plus petite valeur entire pour minimiser la charge de calcul
100 N =


Pour obtenir 40 chantillons au minimum pour laffichage des trois lobes de chaque raie,
il faut :

4 1
40
TFD
N N


40
4
TFD
N N
1000
TFD
N


Comme on prend la plus petite puissance de deux pour pouvoir appliquer lalgorithme de
FFT tout en minimisant la charge de calcul
1024
TFD
N =



Ensuite, dans un mme graphe Simulink o vous utiliserez un temps de simulation de 20s et un
pas de traitement variable, on vous demande de :

b. Crer un masque (un sous-systme) dont lunique paramtre sera la frquence
dchantillonnage f
e
, que vous fixerez une valeur de 1000 Hz.

c. Gnrer, dans ce masque, la sinusode s
1
(n) au moyen dune source sinusodale de
la librairie Simulink/Sources, de sorte quil soit transmis par chantillons.

d. Gnrer, dans ce masque, la sinusode

( ) ( )
2
5sin 0.2rand(1,1)+0.6
3
s n n

| |
= +
|
\

(de
frquence dchantillonnage f
e
) au moyen dun bloc Embedded MATLAB
Function de la librairie Simulink/User-defined Functions . Utiliser pour cela
3 entres:
Les instants de simulation, cest--dire le temps (bloc clock ) ;
Une constante gale la frquence dchantillonnage ;
Une valeur alatoire (correspondant au rand(1,1)) gnre toute les 5
secondes au moyen dun bloc Uniform Random Number de la librairie
Simulink/Sources.
Le signal s
2
(n) doit tre transmis par chantillons.

e. Gnrer, dans ce masque, la sinusode s
3
(n) au moyen d'un bloc Discrete Filter
de la librairie Simulink/Discrete de sorte que le signal soit transmis par
chantillons.

f. Visualiser, en dehors de ce masque, la transforme de Fourier du signal
s
=
s
1
(n)+s
2
(n)+s
3
(n), calcule sur N chantillons du signal et visualise sur N
TFD
points de 0 f
e
(o les valeurs de N et N
TFD
sont celles dtermines au point a) . Si
la question a n'a pu tre rsolue, utiliser N=174 et N
TFD
=512 (ceci n'est pas la
solution de la question a).

Solution :
Pour le masque :








Pour la premire sinusode, on voit sur la figure 1 que son amplitude vaut 2, que sa phase
est nulle et quil y a exactement 12 chantillons par priode

1
12
e
T T = 1
1
12
e
f f =


Pour la seconde sinusode, on a (cf point a) :
( )
2
2
0.1rand(1,1)+0.3
e
f
F
f
= =


( )
2
0.1rand(1,1)+0.3 *
e
f f =


On gnre le rand(1,1) au moyen dun bloc Uniform Random Number de sorte que sa
valeur change toutes les 5 secondes:


Et on dfinit ensuite la sinusode
( )
2 2
5sin 2
3
s n f t

| |
= +
|
\
au moyen de la fonction
suivante :



Pour la troisime sinusode, il sagit de la rponse impulsionnelle dun filtre compos de
deux ples complexes conjugus, deux zros en zros et de gain K=2.
La fonction de transfert de ce filtre est donc de la forme :
( )
1 2 2 2 2 1 2
1 1
1 2 cos 1 2 cos
d d d d d d
H K K
z z z z z

= =
+ +
avec K=2




Pour visualiser, dans ce masque, la transforme de Fourier du signal s, on a :