TP n.1 Analyse de signaux par Tranformée de Fourier …vbjester.free.fr/Valdes/tp1 traiement du...

Post on 13-Sep-2018

219 views 0 download

Transcript of TP n.1 Analyse de signaux par Tranformée de Fourier …vbjester.free.fr/Valdes/tp1 traiement du...

TP n.1 Analyse de signaux par Tranformée de Fourier sous Matlab/Simulink

ACHOURAK Mustapha CHEN WenpingTugce TuranGroupe 2

Introduction :

Un signal numérique est défini par un nombre d’échantillons N relevés à une fréquence d’échantillonnage Fe. Les signaux sont toujours captés de manière temporelle, mais on s’intéresse souvent à leur allure fréquentielle.

L’objectif de ce TP est de générer et de visualiser des signaux usuels tels que les signaux carrées, sinusoidaux puis d’effectuer leur analyse spectrale à l’aide des outils disponibles sous Matlab tels que la FFT(Fast Fourier Transform) et DFT(Discrete Fourier Transform) et aussi le filtrage et l’analyse d’un signal bruité.

1. Commandes de base sous Matlab pour le traitement du signal

1. Un vercteur ligne et un vecteur colonne Ligne :

Commande : A=[1 2 3]Résultat dans la 《Commande Window《 :A =

1 2 3

Colonne :

Commande : B=[1;2;3]Résultat dans la 《Commande Window《 :B =

1 2 3

2.Une matrice identité

Commande : eye(6)Résultat dans la 《Commande Window《 :ans =

1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0

0 0 0 0 0 1

3.Une matrice constante

Commande : ones(2,3,3)Résultat dans la 《Commande Window《 :ans =

3 3 33 3 3

4.Une matrice aléatoire

Commande : rand(2,3)Résultat dans la 《Commande Window《 :ans =

0.9572 0.8003 0.4218 0.4854 0.1419 0.9157

2. Analyse spectrale des signaux selon la methode de Fourier

1.En réalisant sous Matlab le programme permettant l’échantillonnage fe=1000Hz et l’affichage d’un signal sinusoidal x(t) d’une durée de 1s avec une fréquence propre fe=10Hz et une amplitude de 5

Programme :

2. f e =100Hz

fe=15Hz

3.A l’aide de la commande <fft>

fe=1000Hz>> plot(abs(fft(y)));

fe=100Hz>> plot(abs(fft(y)));

fe=15Hz

>> plot(abs(fft(y)));

Nous pouvons voir que plus la fréquence d’échantillonnage est faible, plus le signal de sortie est saturé.

4.Taille de X(f)

5. Dans tous les cas, on ne peut pas observer une simple composante fréquenteille à . Parce que dans tous les cas, Fe (la frequence echantillonnage) soit supérieur ou

égale à deux fois la plus haute fréquence contenue dans le spectre de ce signal,d’ou les

diagrammes sont symétriques par rapport à .

6.A l’aide de la commande <ifft>

fe=15Hz

fe=100Hz

fe=1000Hz

7. ConclureAprès avoir fait des simulations en variant la fréquence d’échantillon, on peut conclure

que la fréquence d’échantillon plus élevée, les résultats sont plus précis et plus ressemblent aux résultats théoriques.

3.Filtrage et analyse d’un signal bruite

1et 2 Création de 1000 échantillons de xb(t) et l’affichage de son taille

Commande : t=[0:0.001:1] ;x=0.7*sin(2*pi*50*t)+sin(2*pi*120*t)+randn(size(t)) ;size(t) size(x)

Résultat dans la 《Commande Window《 :ans =

1 1001

ans =

1 1001

La taille de est 1001.

La taille de est 1001.

3.Visualisation de l’évolution temporelle du signal xb(t) :

plot(x) ;

4.Visualisation de l’évolution temporelle de FFT du signal xb(t) :

plot(abs(fft(x)));

5. Observation en échangement de facteur Q

Q=1.2

Commande : t=[0:0.001:1] ;x=0.7*sin(2*pi*50*t)+sin(2*pi*120*t)+1.2*randn(size(t)) ;size(t)size(x)

Résultat dans la 《Commande Window《 :ans =

1 1001

ans =

1 1001

La taille de est 1001.

La taille de est 1001.

plot(abs(fft(x)));

Q=1.5

Commande : t=[0:0.001:1] ;x=0.7*sin(2*pi*50*t)+sin(2*pi*120*t)+1.5*randn(size(t)) ;size(t)size(x)

Résultat dans la 《Commande Window《 :ans =

1 1001

ans =

1 1001

La taille de est 1001.

La taille de est 1001.

plot(abs(fft(x)));

6. On synthétise le filter numérique

7. Nous affichons les spectres d’amplitudes et de phase de ce filtre à l’aide de la commande <freqz>

8. Nous pouvons en déduire la fonction de transfert du filtre à l’aide de la commande <tf>

BRUITE:H = TF(1,[-0.003871 1.758e-018 0.03209 0.1167 0.2207 0.2687 0.2207 0.1167 0.03209 1.758e-018 -0.003871]);>> t=[0:0.001:1];>> X=0.7*sin(2*pi*50*t)+sin(2*pi*120*t)+randn(size(t));>> lsim(H,X,t)

SANS BRUITE : H = TF(1,[-0.003871 1.758e-018 0.03209 0.1167 0.2207 0.2687 0.2207 0.1167 0.03209 1.758e-018 -0.003871]);t=[0:0.001:1];X=0.7*sin(2*pi*50*t)+sin(2*pi*120*t);>> lsim(H,X,t)

6. Visualisation des signaux filtré et non filtré

Spectre filtré>> Y=lsim(H,X,t);>> plot(abs(fft(Y)));

Spectre non filtré

Avec filtrage, moins de perturbation,plus precise.

4.Generation de signaux deterministes sous SIMULINK

T=10s

T=5s

Signal carre :

Conclusion finale :

Cette première céance nous a tous d’abord permis de nous familiariser avec le logiceil Matlab et d’effectuer la transformée de fourrier d’un signal non bruité et d’un signal bruité. Ce TP nous a aussi permit de faire le lien entre la théorie vu en cours et la pratique.