Académique Documents
Professionnel Documents
Culture Documents
Cours4 PDF
Cours4 PDF
Cours4 PDF
2 signaux
de 8 points
0 2 4 6 8 10 12 14 1 3 5 7 9 11 13 15
4 signaux
de 4 points
0 4 8 12 2 6 10 14 1 5 9 13 3 7 11 15
8 signaux
de 2 points
0 8 4 12 2 10 6 14 1 9 5 13 3 11 7 15
16 signaux
de 1 point
0 8 4 12 2 10 6 14 1 9 5 13 3 11 7 15
Principe de la FFT
1ère étape (suite) : Une autre façon de voir la décomposition qui revient à
réordonner les échantillons en fonction d’un index dont les bits sont
inversé par rapport à l’index de départ.
Principe de la FFT
1 signal de
16 points
a b c d e f g h i j k l m n o p
2 signaux
de 8 points
a b c d e f g h i j k l m n o p
4 signaux
de 4 points
a c b d e g f h i k j l m o n p
8 signaux
de 2 points
a e c g b f d h i m k o j n l p
16 signaux
de 1 point
a i e m c k g o b j f n d l h p
Principe de la FFT
3ème et dernière étape (suite) : Prenons l’un des étages de cette recombinaison :
4 signaux
de 4 points
a b c d e f g h
8 signaux
de 2 points
a e b f c g d h
Cette recombinaison dans le domaine temporel peut être faite de la façon suivante, par
dilution des deux signaux à combiner avec des 0, décalage et addition :
a b c d e f g h
a 0 b 0 c 0 d 0 0 e 0 f 0 g 0 h
a e b f c g d h
Principe de la FFT
E ×Fsinusoïde
G H
a 0 b 0 c 0 d 0 0 e 0 f 0 g 0 h A B C D A B C D E F G H E F G H
+ +
a e b f c g d h
×S ×S ×S ×S
×S
− − − −
+ + + + + + + + −
+ +
Spectre de 8 points
Principe de la FFT
Diagramme entier de l’algorithme FFT :
Domaine temporel
Décomposition dans
le domaine temporel
Tri par ordre des
bits renversés
Boucle
sur LogN
étages de Boucle
recomposition sur chaque Boucle
sous-groupe sur
chaque
papillon ×S
Synthèse dans le
domaine fréquentiel
−
+ +
Domaine fréquentiel
Programmes FFT
Programme TFD complexe par corrélation :
SUBROUTINE FFT(X,M)
COMPLEX X(4096),U,S,T
PI=3.14159265
N=2**M
DO 20 L=1,M
LE=2**(M+1-L)
LE2=LE/2
U=(1.0,0.0)
S=CMPLX(COS(PI/FLOAT(LE2)),SIN(PI/FLOAT(LE2)))
DO 20 J=1,LE2
DO 10 I=J,N,LE
IP=I+LE2
T=X(I)+X(IP)
X(IP)=(X(I)-X(IP))*U
10 X(I)=T
20 U=U*S
ND2=N/2
NM1=N-1
J=1
DO 50 I=1,NM1
IF(I.GE.J) GO TO 30
T=X(J)
X(J)=X(I)
X(I)=T
30 K=ND2
40 IF(K.GE.J) GO TO 50
J=J-K
K=K/2
GO TO 40
50 J=J+K
RETURN
END
Programmes FFT
Programme FFT en BASIC :
1000 'THE FAST FOURIER TRANSFORM 1270 FOR L% = 1 TO M% 'Loop for each stage
1010 'Upon entry, N% contains the number of points in the DFT, 1280 LE% = CINT(2^L%)
1020 'REX[ ] and IMX[ ] contain the real and imaginary parts of the input. 1290 LE2% = LE%/2
1030 'Upon return, REX[ ] and IMX[ ] contain the DFT output. 1300 UR = 1
1040 'All signals run from 0 to N%-1. 1310 UI = 0
1050 PI = 3.14159265 'Set constants 1320 SR = COS(PI/LE2%) 'Calculate sine & cosine values
1060 NM1% = N%-1 1330 SI = -SIN(PI/LE2%)
1070 ND2% = N%/2 1340 FOR J% = 1 TO LE2% 'Loop for each sub DFT
1080 M% = CINT(LOG(N%)/LOG(2)) 1350 JM1% = J%-1
1090 J% = ND2% 1360 FOR I% = JM1% TO NM1% STEP LE% 'Loop for each butterfly
1100 ' 1370 IP% = I%+LE2%
1110 FOR I% = 1 TO N%-2 'Bit reversal sorting 1380 TR = REX[IP%]*UR - IMX[IP%]*UI 'Butterfly calculation
1120 IF I% >= J% THEN GOTO 1190 1390 TI = REX[IP%]*UI + IMX[IP%]*UR
1130 TR = REX[J%] 1400 REX[IP%] = REX[I%]-TR
1140 TI = IMX[J%] 1410 IMX[IP%] = IMX[I%]-TI
1150 REX[J%] = REX[I%] 1420 REX[I%] = REX[I%]+TR
1160 IMX[J%] = IMX[I%] 1430 IMX[I%] = IMX[I%]+TI
1170 REX[I%] = TR 1440 NEXT I%
1180 IMX[I%] = TI 1450 TR = UR
1190 K% = ND2% 1460 UR = TR*SR - UI*SI
1200 IF K% > J% THEN GOTO 1240 1470 UI = TR*SI + UI*SR
1210 J% = J%-K% 1480 NEXT J%
1220 K% = K%/2 1490 NEXT L%
1230 GOTO 1200 1500 '
1240 J% = J%+K% 1510 RETURN
1250 NEXT I%
1260 '
Programmes FFT
Programme FFT inverse utilisant la FFT précédente :
x[2] x[10]
TFD-5
( N / 4 )−1 k n
∑ WN / 4 x[4k ]
X[n ] ( N / 4k)=−10
WNk n/ 4 x[4k + 1]
X[n + N / 4] ∑
= Μ ( Nk/ =4 )0−1
X[n + 2 N / 4] ∑ WN / 4 x[4k + 2]
k n
X[n + 3N / 4] k =0
( N / 4 ) −1
∑ WN / 4 x[4k + 3]
kn
k =0
1 1 1 1 1
1 - j - 1 j W n
ou M = N
1 - 1 1 - 1 WN 2n
1 j - 1 - j WN3n
et WN = e − j2 π / N est la N - ième racine de l' unité
Toujours plus vite
Autre exemples: une FFT de base 2, de base 4 et de base mixte (split radix)
x[0]
FFT base 2 X[0] x[0]
FFT base 4 X[0]
TFD TFD
TFD TFD
8 4
2 4
X[12]
x[4] X[1]
TFD
4
X[14] X[13]
X[1] x[8] X[2]
TFD TFD
8 4
X[14]
x[12] X[3]
TFD
4
x[15] X[15] x[15] X[15]
x[0]
FFT base mixte X[0]
TFD TFD
2/4 8
x[4]
X[14]
x[8] X[1]
TFD
4
X[13]
x[12] X[3]
TFD
4
x[15] X[15]
Toujours plus vite
Comparaisons de rapidité :
Nombres de multiplications Nombres d’additions
N base 2 base 4 mixte N base 2 base 4 mixte
16 24 20 20 16 152 148 148
32 88 68 32 408 388
64 264 208 196 64 1032 976 964
128 712 516 128 2504 2308
256 1800 1392 1284 256 5896 5488 5380
512 4360 3076 512 13566 12292
1024 10248 7856 7172 1024 30728 28336 27652
2048 23560 16388 2048 68616 61444
Remarque : les algorithmes basés sur la méthode de Cooley-Tuckey sont adaptés à des signaux dont la
longueur est une puissance de 2, ou dont la longueur est composite N = N1 × N2 . Il existe des algorithmes
adaptés aux cas non-factorisable ou la longueur du signal est un nombre premier. L’algorithme de Rader, la
permutation de Good, l’algorithme des facteurs premiers et l’algorithmes de Winograd en sont des
exemples.
Transformation de Laplace
Cours DSP
Transformation de Laplace
La définition mathématique rigoureuse
de la transformée de Laplace est la suivante:
Soit f(t) fonction du temps possédant les 3 propriétés suivantes:
∀t < 0 , f(t) = 0 (signal causal, ceci correspond à une réalité physique)
f est continue par morceaux sur ]0,∞ ∞[
∀S < 0 , f(t) est sommable sur [0,S]
∃ trois nombres M, c, T tels que: |f(t)| ≤ Mect ,∀
∀t ≥T
f (t )
→
L
L[f (t )] = F(s )
avec ∞
F(s) = ∫ e -st f(t)dt
0
Transformation de Laplace
∫
− jωt
X(ω) = x ( t ) e dt
TF:
−∞
∞
TL: X(σ, ω) = ∫ x ( t ) e −σt e − jωt dt
−∞
avec σ + jω
ω=s
Le plan complexe ou domaine s
ω
jω
s
σ
s = σ + jω
ω
Exponentielles ω
jω
Exponentielles
décroissantes croissantes
s
σ
s = σ + jω
ω
Le plan complexe ou domaine s
Fréquences
ω
jω
positives
s
σ
Fréquences
négatives
s = σ + jω
ω
Le plan complexe ou domaine s
Domaine s Signaux associés
Analyse de Laplace
1ère étape:
Signal dans le domaine temporel x(t)
2ème étape:
Multiplication par e-σσt
pour tout σ ∈ ]−∞
−∞,
−∞ ∞[
3ème étape:
Calculer la TF de
chaque signal pondéré
par une exponentielle
4ème étape:
Construire la TL dans le plan s
constituée d’une infinité de
spectres en fréquence juxtaposés
le long de l’axe σ
Transformation de Laplace
Domaine temporel
1) Échelon unitaire :
u(t)
1
1
L[u(t) ] = U(s) =
s
t
0
δ (t)
t
0
Aire sous la courbe=1
Signaux Tests
3) Rampe at
f(t)=0 pour t < 0 , f(t) =at ∀ t ≥ 0 . On peut écrire f(t)=at u(t)
f(t)=at u(t)
a
L[at ] =
s2
0
t
Signaux Tests
4) Exponentielle décroissante
[ ]
L e − at u (t ) =
1
s+a
0
t
Propriétés générales
1
L[u (t )] =
s [ ]− at
L te =
1
L[δ(t )] = 1
(s + a )2
ω
L[sin ωt ] = 2
a s + ω2
L[at ] = 2
s s
L[cos ωt ] = 2
[ ]
− at
Le =
s+a
1 s + ω2
Théorèmes de la valeur initiale
et de la valeur finale
( )
f 0 + = lim f (t ) = lim pF(s ) si cette limite existe
t →0 s →∞
Applications aux fonctions de transfert
Considérons le système :
Entrée e(t) Sortie s(t)
Processus
Conditions initiales :
e(t ) = 6 ⇒ E(s ) + 6 s
On en tire Y(s):
2s 2 + 12s + 6 2s 2 + 12s + 6
Y(s) = 2 =
s(s + 5s + 6) s(s + 3)(s + 2)
Application aux fonctions de transfert
2s 2 + 12s + 6 2s 2 + 12s + 6
Y(s) = 2 =
s(s + 5s + 6) s(s + 3)(s + 2)
On trouve alors :
1 4 5
Y(s) = - +
s s+3 s+2
soit :
y( t ) = 1 − e −3t + 5e −2 t
Applications aux systèmes électriques
R appe ls:
Exemple :
R1 R2
e(t) s(t)
C
On a donc :
1
R2 +
S(s) Cs 1 + R 2 Cs
= =
E(s) R + R + 1 1 + (R 1 + R 2 )Cs
1 2
Cs
Zéros et Pôles
Ls 2 + 1 / C
H(s) = 2
Ls + Rs + 1 / C
H(s) =
(s − z1 )(s − z 2 )
(s − p1 )(s − p 2 )
avec :
− R + R 2 − 4L / C
z1 = j / LC p1 =
2L
− R − R 2 − 4L / C
z 2 = − j / LC p1 =
2L
Zéros Pôles
Zéros et Pôles
Zéros et Pôles
Analyse de filtres dans le domaine s
Circuit Sallen-Key
Pôles en σ + jω
ω
A −3 ± − A 2 + 6A − 5
σ= ω=
2RC 2RC
Analyse de filtres dans le domaine s
Transformation en z
Cours DSP
Transformation en Z
La transformation en z reprend le formalisme et les propriétés de la
transformation de Laplace et les applique aux signaux discrets.
[ ]
TZ{f (t )} = F(z ) = L f * (t ) z =e Ts
0 k =0
e(t)
Exemple :
E * (s ) = 0 +
1 1
2 e − Ts + e − 2 Ts + 1
2 e − 3 Ts
E (z ) = TZ [e (t )] =
1/2 1
2 z −1 + z − 2 + 1
2 z −3
t
Le plan ou domaine z
Propriétés de la transformées en Z
{ }
Linéarité : TZ αf ( t )+βg( t ) = αF(z )+βG (z )
m = k −1
Avance : TZ{x[n + k ]} =X(z )− ∑ x[m]z − m z k
m=0
Propriétés de la transformées en Z
n →∞
[
Finales : lim x[n ] = lim ( z − 1) X( z )
z →1
] si cette limite existe
n
Convolution : Soit y[n ] = ∑ h[n − k ]⋅ x[k ]
k =0
alors Y (z ) = H(z ) ⋅ X (z )
Transformées en Z
z
Échelon unitaire : TZ[u (t )] =
z −1
U * (s ) = 1 + e − Ts + e −2 Ts + e −3 Ts +
comme e − T < 1, la série converge
1 1 z
TZ [u (t )] = − Ts = −1
=
1 − e z = e Ts 1 − z z −1
Rampe unitaire : Tz
TZ[tu (t )] =
à démontrer (z − 1)2
Transformées en Z
Exponentielle :
[ ]
TZ e −at u (t ) =
z
z − e −aT
z(z − cos(aT) )
Sinus et Cosinus : TZ[cos(at )u ( t )] =
z 2 − 2 cos(aT)z + 1
zsin(aT)
TZ[sin(at )u ( t )] = 2
z − 2 cos(aT)z + 1
Y(z ) ∑a k z −k
H(z ) = = k =0
X(z ) P
1 − ∑ b k z −k
k =1
Fonction de transfert et Pôles
dans le domaine Z
Fonction de transfert en z, un rapport de polynômes en z avec M ≤ P pour un
système physique. M
Y(z ) ∑a −k
k z
H(z ) = = k =0
X(z ) P
1 − ∑ b k z −k
k =1
qui peut se mettre également sous la forme :
M
∏ (z − z ) i
H(z ) = a z
0
P − M i =1
∏ (z − p )
P
j
j=1
H(z) =
(z − z1 )(z − z 2 )
(z − p1 )(z − p 2 )
avec :
− R + R 2 − 4L / C
z1 = j / LC p1 =
2L
− R − R 2 − 4L / C
z 2 = − j / LC p1 =
2L