C_cours_TdS_master_Transformee_Fourier_Discrete
Download
Report
Transcript C_cours_TdS_master_Transformee_Fourier_Discrete
Transformée de Fourier en Temps Continu (TFTC)
On appelle Transformée de Fourier dβun signal π₯ π‘ , la fonction complexe π π
+β
telle que :
π π = ππΉ π₯ π‘
Pour une fréquence π donnée,
π π représente lβNRJ dβinteraction
entre le signal π₯ π‘ et
lβexponentielle imaginaire
ππ₯π βπ2πππ‘ à cette fréquence π.
La fonction π π correspond donc
à lβNRJ que possède π₯ π‘ à
différentes fréquences π.
Voir à ce propos les exercices Créer
un signal sinusoïdal complexe
,Créer une série de sinusoïdes
et Energie dβinteraction entre un
signal bruité et des sinusoïdes des
chapitres précédents.
=
π₯ π‘ . ππ₯π βπ2πππ‘ ππ‘
ββ
La TF est un signal complexe
La Transformée de Fourier dβun signal π₯ π‘ peut sβécrire :
+β
π π =
ββ
+β
=
+β
=
π₯ π‘ . ππ₯π βπ2πππ‘ ππ‘
π₯ π‘ . πππ 2πππ‘ + π. π ππ β2πππ‘ ππ‘
ββ
+β
π₯ π‘ . πππ 2πππ‘ ππ‘ + π
ββ
= Re π π
π₯ π‘ . π ππ β2πππ‘ ππ‘
ββ
+ π. πΌπ π π
NRJ dβinteraction
π₯ π‘ β πππ 2πππ‘
= π + π. π
NRJ dβinteraction
π₯ π‘ β π ππ β2πππ‘
La comparaison simultanée avec un cos et un sin de fréquence π, permet dβaccéder
à une mesure de lβNRJ que possède π₯ π‘ à cette fréquence π (1).
Pour caractériser un signal π₯ π‘ , cβest souvent lβusage dβutiliser le module de la TF
appelé spectre de π₯ π‘ : π π = π2 + π2
(1) Si on ne comparait quβavec le seul cos et que x(t) était lui-même un cos de même fréquence mais déphasé de π, alors la TF
serait nulle :
+β
πππ
ββ
2πππ‘ +
π
2
2
. πππ 2πππ‘ ππ‘ = 0. Lβutilisation du module π π permet de sβaffranchir des déphasages.
TF dβune porte temporelle
La TF dβune porte ππ π‘ est P(f) =
+β
π
ββ
π‘ . ππ₯π βπ2πππ‘ ππ‘ =
sin(πππ)
ππ
. Sa valeur maximale
est π pour f=0. Elle sβannule aux fréquences 1/ο΄, 2/ο΄, ..., .
ππΉ π(π‘) = π π =
=
=
1
βπ2ππ
1
βπ2ππ
π π =
+π 2
1 . ππ₯π
βπ 2
βπ2πππ‘ ππ‘ ==
1
βπ2ππ
ππ₯π(βπ2πππ‘)
ππ₯π βππππ β ππ₯π ππππ , ππ£ππ π’ = πππ βΆ
cos π’ β π. sin π’ β cos π’ β π. sin(π’) =
sin(πππ)
ππ
=π
sin(πππ)
πππ
1
. β2π. sin(π’)
βπ2ππ
+π 2
βπ 2
Les ordinateurs fonctionnent en Temps Discret
La figure ci-dessous représente 4 fois le même signal mais avec des temps dβ
échantillonnage Te différents. Seules les valeurs symbolisées par un rond βoβ sont
stockées dans la mémoire de lβordinateur. Remarquer que le temps « continu »
correspondrait à Te=0 avec une infinité de points.
Discrétisation du temps et de la fréquence
Le calcul réalisable sur ordinateur est celui de la Transformée de Fourier Discrète (TFD)
dβun nombre fini N de valeurs du signal x(t), ππ β éπβπππ‘ππππππéπ :
ππ₯πππππ βΆ π = 10, ππ = 1 π ππππππ
π‘ = 0, 1, 2, 3, β¦ , 9
π‘ = 0. ππ , 1. ππ , 2. ππ , 3. ππ , β¦ , π β 1 . ππ
ππ = Période dβéchantillonnage
et résultant à un nombre fini N de valeurs de la fonction X(f), βπ β éπβπππ‘ππππππéπ :
ππ₯πππππ π = 10, βπ = 0.1 π»π§
π = 0.0, 0.1, 0.2, 0.3, β¦ , 0.9
π = 0. βπ, 1. βπ, 2. βπ, 3. βπ, β¦ , π β 1 . βπ
πΉπ =
βπ =
πΉπ
π
=
1
πππ
1
ππ
βπ =
= Fréquence dβéchantillonnage
πΉπ
π
est appelée précision fréquentielle
5
Transformée de Fourier Discrète (I)
La suite de nombres : { x(0.Te), x(1.Te), ..., x((N-1).Te) } constitue le signal « numérique »
+β
π π = ππΉ π₯ π‘
π₯ π‘ . ππ₯π β2ππππ‘ ππ‘ ο TFTC = TF en Temps Continu
=
ββ
πΉπ
π π
=
π
πβ1
π=0
πΉπ
π₯ πππ . ππ₯π β2πππ πππ . ππ ; π = 0, 1, 2, β¦ , π β 1
π
La période dβéchantillonnage ππ étant une constante, on peut la factoriser :
πΉπ
π π
= ππ
π
πβ1
π₯ πππ . ππ₯π β2ππ
π=0
ππ
;
π
π = 0, 1, 2, β¦ , π β 1
Transformée de Fourier Discrète (II)
On obtient par la même démarche la transformée de Fourier inverse:
ο TFITC = TF Inverse en Temps Continu
;
n=0, 1, 2, ..., N-1
7
6. Transformée de Fourier Discrète (III)
Dans la définition donnée ci-dessous, la TFD π π ne fait plus référence ni au temps,
ni à la fréquence. Elle produit la « TF » dβune suite de nombres {x(0), x(1), ..., x((N-1))}.
Pour cela, il suffit de poser Te = 1 et Fe = 1. On obtient alors les TFD et TFDI :
Dans Matlab, ces 2 transformations sont exécutées par les commandes fft(x, N) et
ifft(X, N) respectivement. (FFT signifie « Fast Fourier Transform »)
Pour faire référence aux temps et aux fréquences « pratiques », on a les relations:
πΉπ
π π
= ππ . πππ‘ π₯, π ;
π
π = 0, 1, 2, β¦ , π β 1
π₯ πππ = πΉπ . ππππ‘ π, π ;
π = 0, 1, 2, β¦ , π β 1
8
Créer des sinusoïdes de différentes fréquences, utiliser une boucle forβ¦end
Ecrire un programme C0 qui utilise une boucle for β¦ end et produise une figure
similaire à celle-ci-dessous.
Discrétisation du temps
Ecrire un programme C1 qui produise une figure similaire à celle-ci-dessous.
Complément concernant la fonction fft : dans le cours on a vu que lorsque x(t) possède N
échantillons, alors on calcule une TFD avec N fréquences : X = Te*fft(x, N).
Il peut être montré que lβon peut calculer une TFD avec un nombre de fréquences π β π par
exemple en écrivant : X = Te*fft(x, P).
Dans ce cas, la fonction fft change le signal x(t) :
β’ Si P=N : définition de la TFD, x(t) est inchangé.
β’ Si P>N alors des zéros sont ajoutés à x(t) de façon à ce que length(x)=P. Le spectre nβest pas
déformé mais la précision fréquentielle βπ est améliorée.
β’ Si P<N alors x(t) est tronqué de façon à ce que length(x)=P. Le spectre est déformé, il y a eu une
perte dβinformation sur le signal x(t).
P=N
P>N
P<N
Pour des raisons
similaires et
dβautres qui
seront vues lors
de lβétude de lβ
échantillonnage,
la TFDI :
x = Fe*ifft(X,P)
doit être réalisée
avec P=N.
Utiliser la fonction fft, calculer et représenter la TFD dβun signal, utiliser les fonctions abs
et legend
Télécharger le signal « signal_C2 » constitué des vecteurs t et x depuis le répertoire
http://www.u-picardie.fr/~dellis/tdsMASTER/master_files_TdS/
En examinant le vecteur temps, déterminer la période dβéchantillonnage ππ .
Dans un programme C2, écrire les commandes nécessaires aux objectifs qui suivent.
Représenter le signal. A lβaide des outils de la figure, chercher à déterminer la périodicité
temporelle ππΆ2 que semble suivre ce signal. A quelle fréquence πΉπΆ2 cela correspond tβil ?
Soit N=200, le nombre de fréquences de la TFD à calculer. Créer le vecteur
πΉπ
f = π ππ£ππ π = 0, 1, 2, β¦ , π β 1
π
En utilisant la fonction fft, créer le vecteur
π = ππ . πππ‘ π₯, π
La TFD est généralement complexe. Cβest lβusage de plutôt utiliser le module de la TFD
appelé aussi : spectre. Le module est obtenu selon la syntaxe : abs(X). Représenter le
spectre en fonction de f. Décorer le graphe.
On désire augmenter la précision fréquentielle. Compléter le programme pour que sur le
même graphe, la TFD obtenue avec 800 puis avec 3200 fréquences soit représentée de
la même façon que dans la figure de la diapositive suivante. Quβobserve tβon ?
Calculer la TFD avec fft
Dans un programme C3 :
1/ créer un signal x(t) dβune durée de
10 secondes, échantillonné à 100 Hz et
composée de la somme de 2
sinusoïdes. La première aura une
fréquence de 0.5 Hz, une amplitude
égale à 2, tandis que la seconde aura
une fréquence de 2 Hz et une
amplitude égale à 1. Représenter le
signal.
2/ Pour optimiser le calcul des FFT (Fast
Fourier Transform), il est conseillé
dβutiliser un nombre N de points qui soit
une puissance de 2. Calculer X(f), la TF de
x(t) en utilisant fft avec N=212.
Représenter sa partie réelle et imaginaire
dans un même fenêtre dβune façon
similaire à la figure ci-dessous, cad entre
0 et 4 Hz.
Utiliser la fonction ifft, reconstruire un signal à partir de sa TF
Télécharger le signal « tfd_C4 » constitué des vecteurs f et X depuis le répertoire
http://www.u-picardie.fr/~dellis/tdsMASTER/master_files_TdS/.
X est la TFD dβun signal x(t) quβon cherche à reconstruire.
Dans un programme C4 :
1/ Déterminer la précision spectrale df. Le nombre N de points dans la TFD. En
déduire la fréquence dβéchantillonnage Fe.
2/ Créer un vecteur temps nommé « t_reconstruit » comportant N points et de
période dβéchantillonnage, celle déduite de la question 1/.
3/ Reconstruire le signal temporel à partir de X(f) avec ifft. Ce signal reconstruit sera
nommé « x_reconstruit ». Le représenter de 0 à 4 secondes dans un graphe où sera
aussi représenté le signal x(t) du programme C3.
Etude de la résolution spectrale
La résolution spectrale π
est lβécart minimum qui doit
exister entre les fréquences de 2 raies spectrales pour
pouvoir être séparées. Par définition, elle est lβinverse
de la durée dβobservation π du signal.
1
On a π
= .
π
1/ Dans un programme C5, créer un signal dβune
durée de ο΄7 = 7 secondes, échantillonné à 100 Hz et
composé de la somme de 2 sinusoïdes. La première
aura une fréquence de 1.9 Hz, une amplitude égale à
2, tandis que la seconde aura une fréquence de 2 Hz
et une amplitude égale à 1. Calculer sa TFD, X7s(f) avec
un nombre de fréquences Nf = 212. Combien vaut la
précision fréquentielle df ? Combien vaut la
résolution spectrale R ?
2/ Dans le même programme, créer un signal ayant
les mêmes caractéristiques que celui du 1/ mais avec
une durée ο΄50 = 50 secondes. Calculer sa TFD, X50s(f)
avec un nombre de fréquences Nf = 212. Combien vaut
la précision fréquentielle df ? Combien vaut la
résolution spectrale R ?
3/ Comparer les spectres |X7(f)| et |X50(f)|.
40
35
30
25
20
15
10
5
0
1.4
1.6
1.8
2
2.2
2.4
Identifier une personne par une analyse spectrale de sa voix
« La fréquence fondamentale de la voix est propre à chaque individu.
Elle est fonction de différents paramètres physiologiques tel que le volume et la masse
de la glotte, la section de la trachée, sa longueur etc...
Pour les hommes, cette fréquence fondamentale Fo se situe aux environs des 100 Hz,
Pour les femmes, cette fréquence Fo se situe plutôt aux environs des 200Hz.
Pour les enfants, cette fréquence Fo se situe plutôt aux environs des 300 à 400 Hz »
(ref).
Télécharger le fichier «speech_dft.wav» depuis le répertoire http://www.upicardie.fr/~dellis/tdsMASTER/master_files_TdS/. Depuis la fenêtre de commande de
Matlab, double-cliquer sur ce fichier pour lβimporter dans lβespace de travail. Il
contient le vecteur « data » de la voix dβune personne et le scalaire « fs » qui est la
valeur de la fréquence dβéchantillonnage. Dans un programme C6, faire lβanalyse
spectrale de ces données afin de déterminer la voix est celle dβun homme, dβune
femme ou dβun enfant.