Analyse Spectrale
Analyse Spectrale
Analyse Spectrale
Signal électrique
Grandeur
Physique Transducteur
Microphone
Capteur de température
Capteur de pression …
Signal Analogique
t
Signal Numérique
Un signal Numérique n'est défini que pour des
instants tk appartenant à un ensemble dénombrable
{t1, t2, t3, t4, . . . tn,}. Sa valeur à un instant ne peut
prendre qu'une valeur discrète appartenant à un
ensemble dénombrable {V1, V2, V3, V4, . . . Vn,}
V(n)
n
Valeur moyenne d'un signal
V(t)
V
V = 1 ∫V(t)dt
t TT
T
V(n)
N
V = 1 ∑V(i)
n N i=1
Écart type d'un signal
L'écart type appelé aussi moyenne quadratique,
variance, déviation standard ou (RMS) est une
grandeur qui nous informe sur le niveau d'un signal.
On la préfère à la valeur moyenne surtout quand le
signal est centré.
∫ (V(t) -V ) dt
2
Signal Analogique σ = (V − V ) = 1
2 2
T T
∑ (V(i) -V )
N
Signal Numérique σ = (V − V ) = 1
2 2 2
N i =1
Écart type - étapes
V −V
centrer
carré
Racine
Carré moyenne
σ σ
2
Écart type - illustration
σ1 σ2
σ1 > σ2
Écart type - exemples
σ= A
2
σ =
2 A
2 2
σ =
2 A2
σ= A
3 3
σ2 = A2 σ= A
Les deux domaines du signal
2
1.5 La représentation
1
0.5
temporelle ci-contre ne
0 nous informe pas
-0.5 beaucoup sur la nature
du signal, par contre, la
-1
-1.5
-20 1 2 3 4 5 6 ms
représentation
1.2 fréquentielle nous dit
1 que c'est un signal à
0.8 deux harmoniques :
0.6
f1=1000Hz, f2=1500Hz
0.4
f
15 kHz
Signal à large bande
f
15 kHz
Signal à bande étroite
Temporelle Exemples de signaux
+ =
fréquentielle
0 1000 2000 3000 4000 0 1000 2000 3000 4000 0 1000 2000 3000 4000
Représentation des signaux périodiques
t
0 To
ao ∞
x(t) = + ∑[ak cos(2πkfot) + bk sin(2πkfot)]
2 k =1
ak = 2 ∫x(t)cos(2πkfot)dt
To T
o
bk = 2 ∫x(t)sin(2πkfot)dt
To T
o
2ème forme de la série de Fourier
∞
x(t) = ∑C e
k =−∞
k
j2πkfot
Ck = 1 ∫ xp(t)e- j2πkfotdt (k ∈ N)
To T
o
⎧2Co = ao
⎪
⎪Ck = 21 (a −jb )
k k
⎨ k = 1,2,3,...
⎪ak = Ck +C−k = 2ℜ(Ck )
⎪b = j (C −C ) = -2ℑ(C )
⎩k k −k k
Trigo
3ème forme de la série de Fourier
do ∞
x(t) = + ∑dk cos(2πkfot +φk )
2 k =1
⎧
⎪do = 2 Co = ao
⎪
⎪
⎨dk = 2 Ck = ak +bk k = 1,2,3,...
2 2
⎪
⎪φ = 2 arg( C ) = −arctg ⎛⎜ bk ⎞⎟
⎪⎩ k ⎝ ak ⎠
k
Valeur moyenne
Fondamental
Quelques séries de Fourier utiles
m(t)
A
4A ⎡ ⎤
sin(2πnfot ) + ...⎥ , n impair
1 1 1
t m( t ) = ⎢ sin( 2 πf t ) + sin( 2 π3 f t ) + sin( 2 π5 f t ) + ... +
π ⎣
o o o
3 5 n ⎦
m(t)
A
4A ⎡ ( −1 ) n ⎤
cos(2π( 2n + 1 ) f o t ) + ...⎥
1 1
t m( t ) = ⎢cos( 2πf o t ) − cos( 2π3 f o t ) + cos( 2π5 f o t ) + ... +
π ⎣ 3 5 2n + 1 ⎦
m(t)
8A ⎡ ⎤
cos( 2π5 f o t ) + ... + 2 cos(2πnf o t ) + ...⎥ , n impair
1 1 1
m( t ) = 2 ⎢
cos( 2 πf t ) + cos( 2 π3 f t ) +
π ⎣
o o
t 9 25 n ⎦
m(t) 2A ⎡ ( −1 )n+1 ⎤
m( t ) = ⎢ sin( 2πf t ) −
1
sin( 2π2 f t ) +
1
sin( 2π3 f t ) + ... + sin(2πnf t ) + ...⎥
π ⎣
o o o o
t 2 3 n ⎦
m(t) ⎡ +1
⎤
n
(−1)2 ×2
m(t)= ⎢1+cos(2πfot)+ cos(2π2fot)− cos(2π4fot)+...+ 2
2A 2 2 cos(2πnfot )+...⎥ n pair
π 3 15 n −1
t ⎣ ⎦
Spectre d'un signal périodique
1
1.4
1.3
t
1.2
0.8
fo = 125 Hz
A=1 0.6
0.42
Rapport cyclique = 1/2
0.4
0.25
0.18
0.14
0.098
0.085
0.12
0.075
0.067
0.2
0.061
0.055
0.051
0.047
0.044
0.041
ak = 4 avec k impair 0
kπ 125 625 1125 1625 2125 2625 3125 3625
Script Matlab
Reconstitution d'un signal à partir d'un nombre fini
d'harmoniques
1.5 1.5
1er 1er
1 1
0.5 0.5
5ème
0 0
3ème -0.5 3ème
-0.5
-1
-1
-1.5
-1.5 0 1 2 3 4 5 6 7 8ms
0 1 2 3 4 5 6 7 8ms
1.5 1.5
1 1
0.5 0.5
0 15 harmoniques 0 30 harmoniques
-0.5 -0.5
-1 -1
-1.5 -1.5
0 1 2 3 4 5 6 7 8 ms 0 1 2 3 4 5 6 7 8 ms
Script Matlab
Représentation d'un signal transitoire (1)
x(t)
xp(t)
t
To
∞
Décomposition en série de Fourier xp(t) = ∑k
C e
k =−∞
j2πkfot
avec fo= 1
To
Avec
C k = 1 ∫ x p(t)e - j2 πkf ot dt (k ∈ N)
To T
o
Représentation d'un signal transitoire (2)
Si on note : fo = Δf
fk = k Δf
∫ x (t)e
-j2 π kf ot
g (fk ) = p dt
To
C k = 1 g (fk )
To
∞ ∞
x p(t) = ∑ = ∑ g(fk )e j2πf k t Δf
g(fk ) j2πf k t
e
k = −∞ To k = −∞
Représentation d'un signal transitoire (3)
• xp(t) Æ x(t)
• Δf devient infiniment petit et on peut le noter df
•fk = (Δf , 2Δf , 3Δf ,…) Æ variable continue f
•ΣÆ∫
∫ p
∞ -j2 π kf ot
g (fk ) =
xp(t) = ∑g(f )e
k =−∞
k
j2πfk t
Δf x
To
(t)e dt
+∞
∫
-j2 π f t
g (f) =
∫ g(f)e
x(t) = j2 π f t
df x(t)e dt
To
-∞
Transformée de Fourier
+∞
x(t) = ∫X(f)e j2πftdf
-∞
+∞
X(f) = ∫x(t)e- j2πftdt
-∞
Propriétés de la transformée de Fourier
• Linéarité …………………………………………………………
ax 1( t ) + bx 2( t ) ↔ aX 1(f) + bX 2(f)
+∞
• Aire sous x(t) ……………………………………………………………
∫
x(t)dt
−∞
= X(0)
Propriétés de la transformée de Fourier (2)
+∞
• Aire sous X(f) …………………………………………………………….
∫ −∞
X(f)dt = x(0)
Πt
τ
() θ −1 1
θsinc(θf)
θ θ
()
sin c t
B −Β Β 1/B
BΠ(Bf)
1 [δ(f −f ) +δ(f +f ) ]
cos(2πfot) 2 o o
-fo fo
-fo fo
Transformées de fourrier usuelles (2)
δ(t) 1
1 δ(f)
R
I
R
I
sgn(t)
1 I
1
-1
j πf
f
1 I
− j sgn(f)
πt
f
R
1
I
j sgn(f)
πt -1
f R
I
1 1 δ(f) − j
U(t) 2 2πf
f
Transformées de fourrier usuelles (4)
R
I 1
1 δ(t) + j U(f)
2 2πt
f
k =+∞ k = +∞
k
∑δ(t −kTo )
=−∞
fo ∑δ(f −kfo )
fo
k = −∞
to
1
2
sinc (t) Λ(f)
−3 −2 −1 1 2 3 1 1
Voir détail
Représentation des signaux Discrets Périodiques
x(n)
k =0
N -1
1
Cn = ∑x(n)e − j2π Nk n
N k =0 01 N
n
N/2
f
0 fe fe
2
Représentation des signaux Discrets Apériodiques
Un signal discret Apériodique défini aux instant kTe peut
être représenté à l'aide de sa transformée de Fourier qui
est une fonction continue périodique de période fe. Le
corps [0,fe] et symétrique par rapport à fe/2 (fe = 1/Te)
fe
= 1
j2 π n f x(n)
x (n) ∫0 X(f) e fe
df
fe
∞
n
- j2 π k f
X (f ) = ∑ x(n)e
k =- ∞
fe
X(f)
f
fe
2
fe
La fenêtre carrée discrète
x(n)
⎧ L f =0
⎪ sin(π f L)
Centrée ⎪
X(f) = ⎨ fe
f ≠0
L impair ⎪ sin(π f )
n ⎪⎩ fe
x(n) ⎧ L f =0
⎪ f sin(π f L)
⎪
Non centrée X(f) = ⎨e- jπ fe (L-1) fe
f ≠0
L quelconque ⎪ f
sin(π )
n ⎪⎩ fe
x(n)
⎧ L f =0
⎪ f sin(π f L)
Centrée ⎪
X(f) = ⎨e- jπ fe fe
f ≠0
L impair ⎪ f
sin(π )
n ⎪⎩ fe
La Transformée de Fourier Discrète TFD
En pratique • On ne dispose que d'un enregistrement du signal sur
une durée limitée. On ne peut donc pas sommer x(n)
sur l'infini pour calculer X(f).
• On ne peut Calculer X(f) que pour des valeurs discrètes
de f, Î X(n)
N −1 Si on calcule X(n) au delà de N, On
- j2π Nk n
X(n) = ∑ x(n)e
k =0
obtient une suite périodique semblable
à la Série de Fourier d'un signal discret
N −1
x(n) = 1
- j2π Nk n
N ∑
k 0
=
X(n)e périodique. Les expressions sont
d'ailleurs quasi identiques
x(n) Cn
TFD
N-1
n n
0 0 N-1
f
0 fe fe
2
Récapitulation : Signaux Continus
x(t) Ck
t f
0 To 0 fo
+∞
xp(t) = ∑Cke
To
j2πkfot
Ck = 1 ∫ To xp(t)e− j2πkfot
2
k =−∞ To − 2
x(t) X(f)
t
0 To t
+∞ +∞
x(t) = ∫X(f)e j2πftdf X(f) = ∫x(t)e − j2πftdt
−∞ −∞
Récapitulation : Signaux Discrets
N −1 N −1
Ck = 1
x(n)
∑ x (n )e
C(n) k
∑ j2 π k n − j2 π n
x (n ) = C ke N
N
N
k 0
= n 0
=
fe f
0 fe 2
x(n) fe +∞ − j 2π n f
1
fe 0
j2πk fn f
x(n) = ∫X(f)e e df X(f)
X(f) = ∑x(n)e fe
n =−∞
n
f
fe 2 fe
N −1
x(n) = 1 ∑X(n)e j2π N n
N −1
X ( n ) = ∑ x ( k ) e − j2 π N n
x(n) k X(n) k
N k =0 k =0
f
0 fe 2 fe
X(n) est elle une bonne approximation du
spectre de x(n) ?
Pour Répondre à cette question, il faut remarquer que x(n) est obtenue
en tronquant x(t) par la fenêtre carrée discrète W(n)
x(t) w(n)
1
t n
0 1 2 3 4 5 6 7 8 9
0 θ
=
x(n)
N=10
n n
0 1 2 3 4 5 6 7 8 9 N 0 1 2 3 4 5 6 7 8 9 N
N-1 N-1 f
t fe
0 Te θ 0 df fe
2
T θ t
w(n)
1
n
0 1 2 3 4 5 6 7 L-1 N-1
x(n)
n
L-1 N-1
Passons dans le domaine fréquentiel
N
L N
L
fe− fo
fe 1 1 1
=
N θ fo T T fe fe
2
fe
fo = K Δf = K
fe
N=K
N fo
1 = k Δf
T
1 =k 1
LTe NTe N =k L
N et L quelconques
fo =400Hz fe =1600 Hz N =22 L =12
0.5
0.45
0.4
0.35
0.3
0.25
0.2
0.15
0.1
Script Matlab
0.05
0
0 200 400 600 800 1000 1200 1400 1600
0.45
0.4
0.35
0.3
0.25
0.2
0.15
0.05
0
0 200 400 600 800 1000 1200 1400 1600
0.45
0.4
0.35
0.3
0.25
0.2
0.15
0.1
Script Matlab
0.05
0
0 200 400 600 800 1000 1200 1400 1600
4
1
3
2 0.8
1
0 0.6
-1
0.4
-2
-3 0.2
0 2 4 6 8 10 12 14 16
Temps en ms 0
0 1000 2000 3000 4000 5000 6000
Script Matlab
La réalité
Dans la pratique, on a affaire à des signaux porteurs d'information,
(Voix, image …) on n'a pas d'information à priori sur les fréquences
des harmoniques les constituants. On aura forcément une erreur
d'estimation spectrale à cause des lobes secondaire importants de
la fenêtre carrée
fo =400Hz fe =1600 Hz N =46 L =12
0.5
0.4
0.3
0.2
0.1
0
0 200 400 600 800 1000 1200 1400 1600
Amélioration
0.45
En travaillant avec N=L,
0.4
on a un point par lobe ce
qui donne une courbe
0.35
toujours décroissante.
0.3
0.25
Si N est grand, les lobes
0.2
secondaire se retrouvent
concentré devant le lobe
0.15
principal et décroissent
0.1
très vite
0.05
0
0 100 200 300 400 500 600 700 800
Fenêtrage
Comme on vient de le voir, les lobes secondaires de la
fenêtre carrée sont responsables d'une partie non
négligeable de l'erreur sur l'estimation spectrale. Ces
lobes secondaires sont dus à la coupure 'brutale' de la
fenêtre carrée. Il existe d'autres fenêtres plous 'douces'
ayant des lobes secondaires moins importants.
Fenêtre de Hamming
w(n) =⎨
( )
⎧⎪0.54 −0.46cos 2πn
N
0 ≤n ≤N
⎪⎩0 ailleur
1
w(n) W(n)
0.8
0.6
Hamming
TF
0.4
0.2
carrée
0
w(n) =⎨
( )
⎧⎪0.5 −0.5 cos 2πn
N
0 ≤n ≤N
⎪⎩0 ailleur
1
0.9
w(n) W(n)
0.8
Hanning
0.7
0.6
TF
0.5
0.4 carrée
0.3
0.2
0.1
0
2 4 6 8 10 12 14 16 18 20
7 7
6 6
5 5
4 4
3 3
2 2
1 1
0 0
0 100 200 300 400 500 600 700 800 0 100 200 300 400 500 600 700 800
Script Matlab
FIN
Variance d'un signal sinusoïdal
π
[t - sin(t)cos(t)]0 =
2 2
σ = ∫ A sin (t)dt =
2 1 2 2 A 1 π A
π0 π 2 2
σ= A
2
Script Matlab pour signal à 2 harmoniques
n=300;
f1=1000;
f2=1500;
fe=15000;
te=1/fe;
t=0:te:(n-1)*te;
y=sin(2*pi*f1*t)+sin(2*pi*f2*t);
close all;
plage=1:91;
plot(t(plage),y(plage));
s=abs(fft(y))/(n/2);
fmax=4000;
df=fe/(n-1);
f=0:df:fmax;
m=length(f);
s=s(1:m);
figure;
plot(f,s);
grid;
Script Matlab : spectre d'un signal périodique
close all;
t=t*1000; % temps en ms
plot(t,h); % tracé des harmonique
hold on;
plot(t,y,'linewidth',2) % tracé du signal reconstitué
xlabel('Temps en ms');
Formules trigonométriques
e jx =cos(x)+ j sin(x)
−jx
cos(x)= e jx
+e
2
−jx
sin(x)= e jx
−e
2j
1 (x−sin(x)cos(x))+C
∫ =
2
sin (x)dx
2
Convolution
+∞
f1(x) ∗ f2(x) = ∫ f1(τ) f2(x-τ) dτ
−∞
∏(x) Λ(x)=∏(x)*∏(x)
1
1
−1 1 1 1
2 2
−θ
2
θ
2
θ θ
Exemple de transformée de Fourier
sin(πt) x(t) y(t) ↔ X(f) ∗ Y(f) ∏(θt )* ∏(θt ) = θΛ(θt )
sinc(t)=
πt
sin c(t) ↔ Π (f) x(at) ↔ 1 x 1
a a
() Π(t )* Π(t ) = Λ(t )
sin( 2 πf o t ) 1 ⎛ f ⎞
= sinc( 2 f o t ) sinc( 2 f o t ) ↔ Π⎜⎜ ⎟⎟
2 πf o t 2 fo ⎝ 2 fo ⎠
1 ⎛ f ⎞ 1 ⎛ f ⎞ 1 ⎛ ⎛ f ⎞⎞
sinc 2 ( 2 f ot ) ↔ Π⎜⎜ ⎟⎟ * Π⎜⎜ ⎟⎟ = 2 ⎜ 2f o Λ⎜⎜ ⎟⎟ ⎟⎟
2 f o ⎝ 2 f o ⎠ 2 f o ⎝ 2 f o ⎠ 4f o ⎜⎝ ⎝ 2f ⎠⎠
1 ⎛ f ⎞
sinc ( 2 f ot ) ↔
2
Λ⎜⎜ ⎟⎟
2 fo ⎝ 2 fo ⎠
1
2fo
−1 1
2fo 2fo 2fo 2fo
Spectre d'un signal sinusoïdal
clear;
fo=400;
fe=1600; %fe/fo=4
te=1/fe;
% on trace d'abord W(f) en pointillé avec une bonne résolution
N=240;
L=12;
df=fe/N;
t=0:te:(L-1)*te;
x=sin(2*pi*fo*t);
y1=abs(fft(x,N)/L);
f1=0:df:(N-1)*df;
close all;
for N = [22 28 36 L];
df=fe/N;
y=abs(fft(x,N)/L);
f=0:df:(N-1)*df;
figure;
plot(f1,y1,':');
hold on;
plot(f,y,'o','MarkerFaceColor','r');
title(strcat('fo = ',num2str(fo), 'Hz fe = ',num2str(fe),' Hz N = ',num2str(N),' L = ',num2str(L)));
grid;
end;c
Spectre d'un signal à 4 harmoniques
fo=[250 500 750 1000]';
fe=12000;
N = 192;
te = 1/fe;
t=0:te:(N-1)*te;
x=sum(sin(2*pi*fo*t));
close all;
plot(t*1000,x);
xlabel('Temps en ms');
y=2*abs(fft(x)/N);
df=fe/N;
f=0:df:fe/2;
y=y(1:length(f));
figure;
plot(f,y);
Title(['signal à quatre harmoniques ' num2str(fo') 'Hz, fe=' num2str(fe) 'Hz, N=' num2str(N) ]);
axis([0 fe/2 0 1.02]);
Fenêtrage : Exemple 1
%Comparaison entre fenêtre carrée et fenêtre de Hanning
clear
fo=470;
fe=4000;
te=1/fe;
N=512;
t=0:te:(N-1)*te;
x=7*sin(2*pi*fo*t);
y=2*abs(fft(x)/N);
df=fe/N;
f=0:df:800;
y=y(1:length(f));
x=x.*hanning(N)';
z=3.98*abs(fft(x)/N);
z=z(1:length(f));
close all;
plot(f,y,f,z,'r');grid;