Vous êtes sur la page 1sur 3

Université BLIDA1, Département de l’électronique,

Master 1 : ESE (2020-2021). TP traitement numérique du signal

TP 2 : Transformée de Fourier discrète et ses propriétés

Remarque : Il est demandé aux étudiants de bien présenter le compte rendu avec une introduction au TP
et une conclusion. Les résultats, les figures et les codes Matlab doivent être clairs et bien exposés avec des
commentaires.
1)Transformée de Fourier Discrète
Considérons un signal à support limité (n), n=0,1 , … , N −1. Soit ~x (n) un signal périodique construit à
partir de x (n).
~
x (n)=x ( n mod N )
La transformée de Fourier discrète (TFD) de x ( n )est donnée par :
N −1 2π N −1
−j kn
X ( k )= ∑ x( n)e N
= ∑ x(n)W nk
N , 0 ≤ k ≤ N−1( 1)
n=0 n=0

−j kn
avec W nk =e N . La transformée de Fourier discrète inverse (TFDI) est donnée par
N
N −1 2π N−1
1 j kn 1
x ( n )= ∑ X ( k ) e N = ∑ X ( k ) W −nk N , 0 ≤ n ≤ N −1 ( 2 )
N k =0 N k=0
Nous savons que l’échantillonnage en temporel induit une périodisation du spectre dans le domaine
fréquentiel.
X ( k + N )=X ( k ) ∀ n , k (3)
A la différence de la transformée de Fourier à temps discret, la transformée de Fourier discrète (TFD)
induit l’échantillonnage de l’axe des fréquences et par conséquent la périodisation du signal en temporel
sur N échantillons. Le nouveau signal périodique ~ x ( n ) est la version périodique de période N de x (n), on
peut l’exprimer comme ~
x ( n ) = ( x (n) ) ≜ x ( n modulo N ).
N

On pose W N de taille N × N qu’on peut remplir avec W nk N , n=0,1 , … N et k =0,1 , … N , tel que :

1 1 1 ⋯ 1
W N =[ W nkN 0≤ k , n ≤ N−1 ] =

1 WNWN

1 W (N
N
1

−1)
2× 1

W 2×
N

⋯ WN

(N−1)

[
(N −1)

Les équations (1) et (2) deviennent sous forme matricielle



⋯ W (NN−1)
( 4)
2
]
X =W ¿N x(5)
1
x= W ¿N X (6)
N
2)Convolution circulaire
L’une des propriétés de la TFD, est que la convolution n’est plus linéaire mais circulaire. On peut exprimer
le résultat y (n) de la convolution circulaire sur N points entre deux signaux x 1 (n) et x 2 (n) de longueur N x 1

et N x respectivement, par la forme suivante :


2
N
N −1 N x −1 N x −1
y (n) 0 =x 1 ( n ) 0
1
⊛N x 2 ( n ) 0
2
=∑ ~
x1 ( k ) ~
x 2 ( n−k )
k=0
N
¿ ∑ x 1 ( k ) ( x2 ( n−k ) ) N (7)
k=0
avec ⊛ N désigne la convolution circulaire modulo N qui doit être choisie tel que N ≥ N x + N x −1. Le 1 2

décalage de la séquence est circulaire ce qui signifie que


x ( 0 ) n=0
( x (−n ) ) N = {
x ( N −n ) , 1≤ n ≤ N −1
(8)

1
Université BLIDA1, Département de l’électronique,
Master 1 : ESE (2020-2021). TP traitement numérique du signal

La TFD d’un produit de convolution circulaire est :


TFD [ x 1 (n)⊛ N x 2 (n) ]=TFD [ x1 (n) ] ×TFD [ x 2 (n) ]=TFD [ y (n) ] (9)

Il est possible de calculer le résultat d’un produit de convolution circulaire en utilisant la TFDI.

y ( n )= partie réeelle (TFDI [ TFD [ x1 ( n ) ] ×TFD [ x 2 ( n ) ] ] ) (10)

3)Transformée de Fourier discrète rapide (FFT)


Il est facile de vérifier qu’une TFD de N points de l’équation (1), nécessite pour un seul échantillon N
multiplications complexes and ( N −1) additions complexes. Donc un total N 2 multiplications complexes
and N ( N −1) additions complexes. Ce qui signifie que la TDF a une complexité de l’ordre de O ( N 2 )
opérations. La complexité est proportionnelle à N 2. Deux propriétés très importantes vont nous permettre
de réduire significativement la complexité :
1) La périodicité : W nk k (n +N )
=W n(k+ N)
N =W N N

2) La symétrie : W nk
N
+N / 2
=−W knN
Ces deux propriétés sont utilisées par l’algorithme de transformée de Fourier discrète rapide (FFT), ce qui
permet de réduire la complexité à O(N log N ) operations. Il existe deux versions de l’algorithme FFT :
 FFT avec entrelacement temporel (Cooley-Tukey).
 FFT avec entrelacement fréquentiel.
FFT avec entrelacement temporel
1
nk
 Calculons une DFT sur N=2 points,X ( k )=∑ x (n)W 2 , n , k =0,1 :
n=0

X (0)=x (0)+ W 02 x(1)=x (0)+ x (1)


X ( 1 )=x ( 0 ) +W 12 x ( 1 )=x ( 0 )−x (1)
3
nk
 Si on calcul la TFD avec l’équation (1) pour N=4, X ( k )=∑ x (n)W 4 , n , k =0,1,2,3 :
n=0
X (0)=x (0)+ x( 1)+ x (2)+ x (3)=( x (0)+ x (2))+( x (1)+ x(3))
X (1)=x ( 0)+ w14 x (1)+ w24 x (2)+ w34 x (3)=(x (0)−x (2))+w 1( x (1)−x (3))
X (2)= x( 0)+ w24 x (1)+ w44 x (2)+ w64 6 x (3)=(x (0)+ x (2))−(x( 1)+ x (3))
X (3)=x (0)+ w34 x (1)+ w64 x (2)+w 94 x(3)=(x (0)−x (2))−w14 (x (1)−x (3))

−j
W 14=e 4 alors W 44=W 04=1 et W 24=W 64=−1, W 14=W 94=− j , W 34= j
 On peut écrire :
X (0)=x (0)+ x(1)+ x (2)+ x (3)=[⏟
x (0)+ x(2)]+[x⏟
(1)+ x (3) ]
g1 g2
X (1)=x ( 0)− j x(1)−x (2)+ j x (3)=[ ⏟
x (0)−x (2) ]− j[ ⏟
x(1)−x (3) ]
h1 h2
X (2)= x( 0)−x (1)+ x (2)−x (3)=[x
⏟ (0)+ x (2) ]−[x⏟
(1)+ x (3) ]
g1 g2
X (3)=x (0)+ j x (1)−x (2)− j x (3)=[x⏟
( 0 )−x ( 2 ) ]+ j [x⏟
( 1 )−x ( 3 ) ]
h1 h2
La TFD sur 4 points est divisée en 2 TFD sur 2 points.
2
Université BLIDA1, Département de l’électronique,
Master 1 : ESE (2020-2021). TP traitement numérique du signal

Travail à faire  :
Partie1
1) Soit le signal x (n) une séquence à 4 points avec : x (n)=[1 , 1 ,1 , 1] pour n=0,1,2,3. Calculer
théoriquement la TFD de ce signal.
2) Ecrire deux fonctions qui permettent de calculer la TFD et la TFDI en utilisant les formules (1) et (2).
3) Ecrire à nouveau deux autres fonctions qui permettent de calculer la TFD et la TFDI en utilisant les
formules (4), (5) et (6).
4) Soient les signaux x 1=[1,2,2]; n=0, 1, 2 et x 2=[ 1,2,3,4 ] ,n=0,1,2 , 3. Calculer théoriquement le
résultat du produit de convolution circulaire sur N=4, 5, 6 et 8. Calculer également le résultat de la
convolution linaire. Comparez
5) Soit le signal x (n)=[ −3 1 2−1 01 1 ] pour n=0,1 … 6. Ecrire une fonction Matlab cir_decalage en utilisant
la fonction mod qui réalise un décalage circulaire modulo N de k échantillons sur un signal pour une
taille N de la TFD. Autrement dit on veut calculer la séquence ~ x=( x ( n−k ) ) N avec k=3 et N=7 puis N= 10.
6) Représenter x(n) et ses versions décalées sur la même figure en utilisant la fonction stem.
Partie 2
7) On veut réaliser un programme qui calcule le produit de convolution circulaire.
a) Ecrire un programme qui calcul le produit de convolution circulaire entre les signaux x1 et x2 en
utilisant la relation (7) et la fonction cir_decalage, avec N=4. Vérifier vos résultats avec la
fonction cconv.
b) Proposer une fonction plus efficace pour calculer cette convolution sans boucle for.
c) Recalculer maintenant la convolution circulaire en utilisant la relation (10) en utilisant des FFT et
IFFT sur N=4 points.
d) Comparez le temps d’exécution de des méthodes de calcul de la convolution circulaire avec les
fonctions tic et toc. Commentez le résultat obtenu.
e) Calculer la convolution linéaire en utilisant la fonction conv et comparez avec le résultat de la
convolution circulaire. Que constatez-vous ? expliquez.
f) Refaites les questions a), b) et c) avec N=5, 6 et N=8. Donnez vos commentaires.
8) Soit le signalx ( n )=exp (−0.9 n ) , n=0,1…N-1
En utilisant les fonctions Matlab tic et toc, compléter le tableau suivant :
Temps exécution FFT (T1) Temps Exécution TFD (T2) T1/T2
N=10
N=512
1024
Comparer et conclure.

Vous aimerez peut-être aussi