spectre par FFT - sur le site de Claude Lahache

Transcription

spectre par FFT - sur le site de Claude Lahache
ANALYSE SPECTRALE
PAR
FFT
1. L'analyseur de spectre.
La représentation graphique du spectre d'un signal est réalisée
par un analyseur de spectre.
• L'analyseur de spectre peut être à balayage (analogique):
Il fonctionne comme un récepteur à changement de
fréquence en balayant la gamme de fréquences à analyser.
Il est possible d'utiliser un filtre passe bande "glissant"
devant le spectre à afficher. (Tuned-filter spectrum analyzer)
Il est possible de faire "glisser" le spectre devant un filtre
passe-bande fixe. (Hétérodyne spectrum analyzer)
L'analyseur de spectre à balayage est idéal pour afficher les spectres de signaux stables ou répétitifs; il n'est par
contre pas adapté pour l'étude de signaux brefs .
• L’analyseur de spectre peut être numérique : Il échantillonne le signal à analyser et calcule des points du spectre à
l’aide d’un algorithme de calcul qui est en général une FFT ( Fast Fourier Transformation).
Il peut traiter notamment les signaux non répétitifs; il est souvent réalisé autour d'un PC muni d'une carte
d'acquisition ad-hoc.
• Principaux réglages : Gamme de fréquences explorées (fréquence centrale et excursion de fréquence)
Niveau de référence et sensibilité verticale.
Sélectivité du filtre passe bande d'analyse (RBW : resolution bandwidth)
Fenêtrage (analyseur à FFT uniquement)
sélectivité du filtre passe bande
(50kHz ici)
niveau de référence
(-55dBm ici)
sensibilité verticale
(5dBm/div ici)
fréquence centrale
(650MHz ici)
excursion ou span
(320MHz ici)
Les réglages de l'analyseur de
spectre
FFT
Influence de la sélectivité du filtre
d'analyse sur l'aspect du spectre
page 1
Claude Lahache
2. La Transformée de Fourier.
En fonction du type de signal, on dispose de 3 outils mathématiques pour calculer le spectre d’un signal x(t) :
• Si le signal x(t) est périodique, la décomposition en série de Fourier permet de calculer l’amplitude des raies de
son spectre.
1 2π
=
f
ω
Le mathématicien Fourier a démontré que la fonction x(t) peut s’écrire sous la forme suivante :
Soit x(t) un signal de période T =
x(t) = X0 + C1.sin(ω t + ϕ1)
C2.sin(2ω t +ϕ2)
+
+ C3.sin(3ω t + ϕ3) + ... + CN.sin(Nω t + ϕ N) + ...
T
X0 est la valeur moyenne de x(t): X 0 =< x >=
1
x( t ).dt
T0
∫
C1sin(ωt + ϕ1)
est le fondamental de x(t) ;
sa pulsation est ω = 2πf ;.
son amplitude est C1.
C2sin(2ωt +ϕ2)
CNsin(Nωt + ϕN)
est l’harmonique de rang 2;
est l’harmonique de rang N;
sa pulsation est 2ω ;
sa pulsation est Nω ;
son amplitude est C2.
son amplitude est CN.
Cette décomposition peut aussi s’écrire de la façon suivante :
x(t) = X0 + A1.cos(ω t) + B1.sin(ω t) + A2.cos(2ω t) +B2.sin(2ω t) + ... + AN.cos(Nω t) +BN.sin(Nω t)
avec
AN =
2
x( t). cos(Nωt ).dt
T
∫
et
BN =
2
. x (t ).sin( Nωt).dt
T
∫
Les 2 écritures de la décomposition en série de Fourier d'une fonction périodique du temps sont équivalentes, et
B 
on a les correspondances : C N = A 2N + B 2N
et ϕ N = arctan N 
 AN 
C1
C2
CI
C3
copyright JPM (www.ta-formation.com)
• Si la fonction du temps x(t) qui décrit le signal est connue, la transformée de Fourier permet de calculer
l’équation S(f) de la courbe du spectre.
C'est une intégration qui permet de passer de l'espace du temps à celui des fréquences :
+∞
S( jf ) =
∫ x (t ).e
− j2 πft
.dt
C'est un nombre complexe dont le module donnera S(f)
−∞
copyright JPM (www.ta-formation.com)
FFT
page 2
Claude Lahache
• Si on dispose de N échantillons (numérisés) du signal x(t), la transformée de Fourier discrète permet de calculer
N points de la courbe du spectre.
Echantillonnage
Numérisation
Traitement numérique
x(t)
copyright JPM (www.ta-formation.com)
L’échantillonnage est cadencé à la fréquence fe et la prise de N échantillons dure un temps T0 = N.Te = N/fe
(T0 est appelée fenêtre temporelle d'analyse)
A la fin de cette opération d’acquisition, nous disposons en mémoire d'une série de N valeurs numériques
x0 = x(0), x1 = x(Te) ... , xn = x(nTe) .
A partir de ces N échantillons, la TFD (transformée de Fourier discrète) permet de calculer N points du spectre,
f
définis par leur abscisse f(k)
f (k ) = k. e (k variant de 0 à N - 1)
N
n = N −1
1
S(k ) = .
N
et leur ordonnée S(k) :
∑ x( n).e
− 2j
nπk
N
n =0
(Remarquer que la TFD est bien cohérente avec la Transformée de Fourier analogique, à ceci près que
l'intégration est ramenée à une somme discrète, et que le calcul ne se fait que sur la fenêtre temporelle d'analyse)
N échantillons du signal
copyright JPM (www.ta-formation.com)
3. La Transformée de Fourier Rapide (TFR) ou Fast Fourier Transformation (FFT)
La transformée de Fourier discrète (TFD) exige un nombre impressionnant de calculs:
n = N −1
1
Avec S(k ) = .
N
∑ x( n).e
− 2j
nπk
N et k variant de 0 à N - 1, il faut effectuer N×N opérations (additions et
n =0
multiplications) . Une TFD sur N = 1000 points nécessite 106 opérations; avec un DSP (digital signal processor)
cadencé à 50ns, cela donne un temps d'exécution de 50ms.
Si on sépare les échantillons x(n) en pairs p(n) = p(2r) et impairs i(n) = i(2r + 1), on aura alors 2 sommes portant
sur N/2 termes :
n=
S(k ) =
1
N
N
−1
2
∑
n=0
−2 j
p(2r).e
N
n = −1
2rπk
(2 r +1) πk
2
2
−2 j
N2
N
N + 1
N
i(2r + 1).e
, soit maintenant 2 ×   =
N
2
2
n=0
∑
opérations au total, c'est à dire 2 fois moins qu'au départ !
En continuant de séparer chaque TFD en 2 TFD de longueur moitié, on réduit ainsi de 50% le nombre d'opérations
à chaque étape.
FFT
page 3
Claude Lahache
Cette observation a conduit au développement d'algorithmes de calcul de transformées de Fourier rapides, dont le
plus célèbre est celui de James Cooley (IBM) et John Tukey (Bell Labs), publié en 1965.
p
L'algorithme de Cooley-Tukey nécessite que le nombre N d'échantillons soit une puissance de 2 : N = 2 .
Dans ces conditions, il est possible de scinder p fois la TFD initiale en 2 transformées de longueur moitié, ce qui
aboutit à une réduction fantastique d'opérations élémentaires pour le calcul du spectre !!
Au final, on peut montrer que la FFT sur N points ne nécessite plus que N×log2(N) calculs
(Par ex, pour N = 2048 points (211), une TFD classique nécessite ≈ 4000000 opérations, alors que la FFT
correspondante n'en comprendra plus que ≈ 22500 !!)
copyright JPM (www.ta-formation.com)
p
Si le nombre N d'échantillons n'est pas égal à une puissance de 2, on le complète à 2 par des zéros (zero padding)
afin de pouvoir appliquer l'algorithme de FFT.
4. Effet du fenêtrage temporel sur le spectre.
Un analyseur numérique calcule un spectre à partir de N échantillons acquis pendant une durée T0. Le fait de
travailler sur un signal de durée limitée amène des "déformations" de l'affichage du spectre.
Exemple : Soit un signal x(t) sinusoïdal,
de fréquence f = 9 kHz, d'amplitude 1V,
échantillonné durant T0 = 1 ms, pour
obtenir son spectre par FFT.
On a :
x(t) = 1×sin(18000πt)
La fenêtre d'acquisition est :
fn(t) = 1 durant 1 ms
fn(t) = 0 autrement
Le signal résultant est :
x01(t) = x(t)×fn(t)
On s'attend à l'affichage d'une fine raie à 9 kHz
pour le spectre de x(t);
en réalité, on obtient un lobe principal, centré sur
9 kHz, entouré de lobes secondaires de plus faibles
niveaux.
Cette déformation du spectre est appelée
"effet de fenêtre".
Le lobe central a une largeur de 2/T0, soit 2 kHz
avec notre exemple, alors que les lobes secondaires
ont une largeur moitié (1/T0)
FFT
page 4
Claude Lahache
Qu'en est - il si on modifie la durée T0 de la fenêtre d'acquisition ?
Acquisition pendant T0 = 0,5 ms.
Lobe central à 9 kHz, de largeur 2/T0 = 4 kHz
Acquisition pendant T0 =2 ms.
Lobe central à 9 kHz, de largeur 2/T0 = 1 kHz
L'augmentation de la durée de la fenêtre d'acquisition permet d'améliorer la finesse des raies, mais ne réduit pas la
hauteur des lobes secondaires.
1
Le problème se complique si le signal à analyser
comporte plusieurs composantes :
Soit par exemple ,
x1(t) = 1.sin(18000πt)+0,5.sin(24000πt)+0,2.sin(30000πt)
On échantillonne sur T0 = 2 ms afin d'obtenir des raies
assez fines.
Nous observons bien les 3 composantes aux bonnes
fréquences, avec la bonne amplitude, ...
mais les lobes secondaires de la composante à 9 kHz
ont une hauteur supérieure à celle de la raie à 15 kHz !!
0.5
La solution pour diminuer l'importance des lobes secondaires est d'affaiblir le poids des échantillons du début et de
la fin de l'acquisition : On choisira d'autres types de fenêtre d'acquisition.
La fenêtre la plus largement utilisée est la fenêtre de Hann (nom donné par Blackmann et Tukey en 1958, en
hommage à Julius von Hann, météorologiste autrichien, 1839-1921)
Pour une durée T0, elle s'exprime par fhn(t) = 0,5 - 0,5cos(2πt/T0)
Ci-contre la comparaison entre une fenêtre
rectangulaire et de Hann de durée T0 = 2 ms
(Par abus de langage, le fenêtrage par une
fonction de Hann est nommé le "hanning")
FFT
page 5
Claude Lahache
Quelques fonctions de fenêtrage usuelles, et la conséquence sur le spectre d'une sinusoïde.
(Largeur de fenêtre T0 = 2 ms ; fréquence de la sinusoïde f = 9 kHz)
Fenêtre
(type - équation)
Fenêtre
(forme)
Spectre
signal sinusoïdal
Largeur
raie à -3dB
Rectangulaire
fn = 1 entre 0 et T0
0,88/T0
Hann
0,5×(1-cos(2πt/T0))
1,39/T0
Hamming
0,54-0,46×cos(2 πt/T0))
1,26/T0
Demi sinus
fn×sin(πt/T0))
1,15/T0
Bartlett
2t/T0 de 0 à T0/2
2-2t/T0 de T0/2 à T0
1,28/T0
t(ms)
f(kHz)
En conclusion :
La largeur (durée T0) de la fenêtre gouverne la résolution en fréquence (pouvoir séparateur)
La remontée des lobes secondaires gouverne la résolution en amplitude (pouvoir de détection)
Toutes les fenêtres (sauf la fenêtre rectangulaire) modifient l’allure temporelle du signal.
La fenêtre idéale entraînerait une largeur de lobe principale nulle et pas de lobes secondaires.
Il n'y a donc pas de solution miracle . Le choix d'un fenêtrage s'effectue en fonction des caractéristiques du signal à
analyser.
Le problème de l'analyse spectrale par FFT est fort complexe et trouve souvent solution par le biais de compromis.
FFT
page 6
Claude Lahache