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.