You are on page 1of 7

UE335 MATLAB

Correction TD semaine 2
(noté sur 20 points)
Nous considérons un signal composite, qui est la somme de 3 sinusoïdes dont voici les
paramètres :
fréquence fo = 100Hz amplitude = 1.5 phase = pi/2 rad
fréquence f1 = 400Hz amplitude = 0.7 phase = pi rad
fréquence f2 = 800Hz amplitude = 2 phase = 0 rad
La durée d'échantillonnage est de 250 ms.
Répondez aux questions suivantes en illustrant votre propos (copie d'écran du script matlab et
des figures matlab obtenues)
1. Donnez la fréquence d'échantillonnage minimale (/1point)
La fréquence maximale du signal composite est de 800Hz, la fréquence minimale
d’échantillonnage est donc de 1600Hz.
2. Proposez une fréquence d'échantillonnage convenable vérifiant la condition suivante :
les rapports fe/fo fe/f1 fe/f2 doivent être entiers (/2points)
Je propose fe=4000Hz, en effet fe/fo=4000/100=40 fe/f1=4000/400=10 et fe/f2=4000/800=5
3. En utilisant la question précédente, donnez le nombre d'échantillons (/1point)
On a durée d’échantillonnage = 0.25s = N*Te, d’où N = 0.25/Te = 0.25*fe = 1000 points
Le nombre d’échantillons est de 1000.
4. Calculer et tracer le signal composite dans le domaine temporel (copies d'écran
demandées) (/2points)
%échantillonnage fe = 4KHz et 1000 points
te = 1/4000;
fe = 1/te;
n = 1000;
time = 0:1:(n-1);
time = time*te;

time = time*te. ylabel('signal composite'). 5. plot(time.5*sin(2*pi*100*time+pi/2)+0. xlabel('temps en seconde').clf. % tracé dans le doamine temporel du signal composite figure(1). signal =1. figure(1). fe = 1/te. ylabel('signal composite'). grid.5*sin(2*pi*100*time+pi/2)+0.signal). Calculez le spectre du signal composite en utilisant la TFD vu dans le cours (enregistrement classe virtuelle). et tracez le module du spectre calculé en fonction d'un axe fréquentiel convenable (copies d'écran demandées) (/2points) %échantillonnage fe = 4KHz et 1000 points te = 1/4000.7*sin(2*pi*400*time+pi)+2*sin(2*pi*800*time+0 ).signal = 1.signal).clf. grid. time = 0:1:(n-1). n = 1000.7*sin(2*pi*400*time+pi)+2*sin(2*pi*800*time+ 0). . xlabel('temps en seconde'). plot(time.

xlabel('fréquence en Hz').35 et 1.'/n. 400Hz et 800Hz. il faut tracer les parties réelles et imaginaires de la transformée de Fourier du signal composite. 400Hz et 800Hz d’amplitude respective 0. % tracé dans le domaine fréquentiel du module du spectre de signal figure(2). Afin de déterminer si ces composantes sont sinus ou cosinus. et montre 3 composantes à -100Hz. end. et d’amplitude respective 1. Commentez et justifier les résultats de la question 5 (/2points) Le spectre montre 3 composantes à 100Hz. . il est calculé par la formule : resolution = fe/N.75. -400Hz et -800Hz d’amplitude respective 0. axe_freq = -fe/2+p*fe/n. 0. for p=0:1:(n-1) freq = -fe/2+p*fe/n. Ceci nous montre que le signal composite est constitué de 3 composantes sinus ou cosinus aux fréquences 100Hz. ylabel('module du spectre de signal'). 0.35 et 1.%calcul de la TFD du signal composite tf_signal = []. La résolution fréquentielle est ici de 4Hz. 7. plot(axe_freq. Quelle est la résolution fréquentielle de votre TFD ? (/2points) La résolution fréquentielle est le plus petit écart fréquentiel mesurable par la transformée de Fourier.clf.abs(tf_signal). soit ici 4000/1000 = 4 Hz.7 et 2.5.'r*-'). grid. tf_signal(p+1) = signal*exp(-i*2*pi*freq*time). 0. %calcul de l'axe fréquentiel p = 0:1:(n-1). 6.75.

tf_signal(p+1) = signal*exp(-i*2*pi*freq*time). En utilisant les formules d'Euler. %calcul de la TFD du signal composite tf_signal = []. signal = 1. tracez les parties réelle/imaginaire du spectre du signal composite (copies d'écran demandées) (/2points) %échantillonnage fe = 4KHz et 1000 points te = 1/4000. axe_freq = -fe/2+p*fe/n. time = 0:1:(n-1).Résolution fréquentielle = 4Hz 8. grid.'/n.fr/2012/draftfile. % tracé dans le doamine temporel du signal composite figure(1). end.php/5776/user/draft/633368492/spectre2. %calcul de l'axe fréquentiel p = 0:1:(n-1). fe = 1/te.5*sin(2*pi*100*time+pi/2)+0.unilim. xlabel('temps en seconde'). En utilisant le spectre calculé à la question 5.pdf 9.signal). n = 1000. ylabel('signal composite'). .clf. time = time*te. calculez théoriquement les modules/phases et parties réelles/imaginaires de chaque composante fréquentielle du signal composite (/2points) http://campus-cvtic. for p=0:1:(n-1) freq = -fe/2+p*fe/n. plot(time.7*sin(2*pi*400*time+pi)+2*sin(2*pi*800*time+0 ).

plot(axe_freq.abs(tf_signal). Comparez les résultats des questions 8 et 9 (/1point) à 100Hz : re=0.real(tf_signal).35 et à -400Hz : re=0 imag=-0. xlabel('fréquence en Hz').clf.75 imag=0 à 400Hz : re=0 imag=0. grid. 10. % tracé dans le domaine fréquentiel de la partie réelle du spectre de signal figure(3). plot(axe_freq.clf. % tracé dans le domaine fréquentiel de la partie imaginaire du spectre de signal figure(4). ylabel('module du spctre de signal').imag(tf_signal). ylabel('partie réelle du spectre de signal'). plot(axe_freq. ylabel('partie imaginaire du spectre de signal'). xlabel('fréquence en Hz').'r*-').75 imag=0 et à -100Hz : re=0.clf.'r*-'). xlabel('fréquence en Hz').% tracé dans le domaine fréquentiel du module du spectre de signal figure(2). grid. grid.35 à 800Hz : re=0 imag=-1 et à -800Hz : re=0 imag=+1 .'r*-').

'/n. %calcul de la TFD du signal composite tf_signal = []. % TFD de matlab % FFT : Fast Fourier Transform spectre = fftshift(fft(signal))/n. grid.clf. % tracé dans le domaine fréquentiel du module du spectre de signal figure(2). % tracé dans le domaine fréquentiel de la partie réelle du spectre de signal figure(3). signal = 1. ylabel('partie réelle du spectre de signal').5*sin(2*pi*100*time+pi/2)+0. xlabel('temps en seconde').'r*-'). ylabel('module du spctre de signal'). xlabel('fréquence en Hz'). tf_signal(p+1) = signal*exp(-i*2*pi*freq*time). time = time*te.signal). fe = 1/te.'r*-'). n = 1000. grid. %calcul de l'axe fréquentiel p = 0:1:(n-1). . xlabel('fréquence en Hz'). xlabel('fréquence en Hz'). axe_freq = -fe/2+p*fe/n. 11.7*sin(2*pi*400*time+pi)+2*sin(2*pi*800*time+0 ).Les résultats de la TFD sont bien conformes aux résultats théoriques. Calculez et tracez le module du spectre du signal composite en utilisant la fonction fft de Matlab. grid. plot(axe_freq. plot(axe_freq. ylabel('partie imaginaire du spectre de signal'). ylabel('signal composite').imag(tf_signal). % tracé dans le doamine temporel du signal composite figure(1). (/2points) %échantillonnage fe = 4KHz et 1000 points te = 1/4000. for p=0:1:(n-1) freq = -fe/2+p*fe/n.clf.clf. grid. end.abs(tf_signal).'r*-').clf. % tracé dans le domaine fréquentiel de la partie imaginaire du spectre de signal figure(4).real(tf_signal). plot(time. plot(axe_freq. time = 0:1:(n-1).

. 12.abs(spectre). grid. xlabel('fréquence en Hz').'r*-'). plot(axe_freq. Comparez les résultats des questions 5 et 11.clf.figure(5). ylabel('module du spectre FFT de signal'). (/1point) Les résultats des questions 5 et 11 sont identiques.