Vous êtes sur la page 1sur 13

Traitement du Signal

James L. Crowley

Deuxième Année ENSIMAG Troisième Bimestre 1999/00

Séance 13 : 3 avril 2000 (pas presenté)

Filtrage par Transformée de Fourier Discrète


Formule du Jour..........................................................................2

Utilisation de la TFD pour le convolution..............................3


Convolution Apériodique .........................................................3
Convolution Périodique............................................................4
Utilisation de la TFD pour le convolution ..................................5
Convolution par TFD...............................................................5

Analyse du Transforme de Fourier Discrete..........................7

La réponse fréquentielle de la TFD...................................... 10


Filtrage par Transformée de Fourier Discrète Séance 13

Formule du Jour

Définition de la Transformée de Fourier Discrète


(TFD ou DFT en Anglais)

Définition : Soit une séquence de N échantillons x(n) pour n ∈ [0, N–1]

N–1 2πk N–1


TFD{x(n)} = X(k) = ∑ x(n) e –jn
N = ∑ x(n) W Nnk
n=0 n=0

N N
La TFD comprend des fréquence de k cycles sur N échantillons, k ∈ [– 2 , 2 –1]

TFD Inverse :

1 N/2–1 2πn 1 N/2–1


TFD –1{X(k)} = xp(n) = N ∑ X(k) ejk N =N ∑ X(k) W N–nk
k=–N/2 k=–N/2

13-2
Filtrage par Transformée de Fourier Discrète Séance 13

Utilisation de la TFD pour le convolution


Convolution Apériodique (Rappel)

Soit deux séquence échantillonnée numérique de durée finie,


x(n) de durée Nx y(n) de durée Ny tel que et n ∈ [0, Nx-1] et

x(n) pour n ∈ [0, Nx-1]


y(n) pour n ∈ [0, N y-1].

Les séquences apériodique sont nuls hors de leur intervalle de définition.

La convolution apériodique de x(n) avec y(n) est une produit


de x(n) et y(–n) pour chaque position entre 0 et Nx+Ny-2.

N x+Ny-2 N x+Ny-2
y(n) = x(n) * y(n) = ∑ x(m) . y(n–m) = ∑ x(n–m) . y(m)
m=0 m=0

La taille de la résultat est de N = Nx + N y –1 échantillons.

Le premier valeur non nul est cré pour


n=0: x(m) non-nul pour 0 ≤ m ≤ N x-1,
y(n-m) non-nul pour y(n) -Ny+1≤ m ≤ 0
n = Nx + Ny – 1 : x(n) non-nul pour 0 ≤ n ≤ N x-1,
y(n-m) non-nul pour y(n) Nx – 1 ≤ m ≤ N x + N y – 1
ie. ( n-Ny-1 < m < n)

La convolution coût O( Nx Ny) opérations.

x(n) y(n) z(n)

* ⇒
0 Nx-1 0 Ny-1 0 Nx + N y –1

Soit M = Min(N x, N y)
Le premier et dernier M echantillons de z(n) sont des effets de bords.

13-3
Filtrage par Transformée de Fourier Discrète Séance 13

Convolution Périodique

Soit x p(n), périodique avec périod N, xp(n) = xp(n + kN) pour k ∈ [–∞, ∞]
Soit x(n) une période de xp(n)

 xp(n) pour n ∈ [0...Nx–1]


x(n) = 
 0 sinon

Soit y p(n), périodique avec périod M, yp(n) = yp(n + kM) pour k ∈ [–∞, ∞]
Soit y(n) une période de yp(n)

 yp(n) pour n ∈ [0...M–1]


y(n) = 
 0 sinon

N x+Ny-2 N x+Ny-2
x ∗ y(n) = ∑ y p(m) . xp(n–m) = ∑ y p(n–m) . xp(m)
m=0 m=0

••• y(m) •••

••• x(m) •••

••• y(n–m) •••

Le convolution périodique coût O(2N) multiplications et additions.

x(n) y(n) z(n)

* ⇒
0 N-1 0 M-1 0 N+M-1

Soit M = Min(N x, N y)
Le premier et dernier M echantillons de z(n) ont des effets de bords.

13-4
Filtrage par Transformée de Fourier Discrète Séance 13

Utilisation de la TFD pour le convolution

Un des intérêt principale de la TFD est qu'il permet de faire les convolutions de
deux signaux de taille N échantillons avec un coût de calcul de l'ordre de 2N
Log(N) in lieu de N2. Mais le TFD réalise un convolution périodique.
Ceci peut poser une piège.

Soit x(n) de durée n ∈ [0, Nx-1] et y(n) de durée n ∈ [0, N y-1].


Convolution Circulaire par TFD.

TFD{x p(n) ∗ y p(n)} = TFD{xp(n)} .TFD {yp(n)} = Xp(k) . Yp(k).

et par dualité

TFD( xp(n) . y p(n) } = TFD{xp(n)} ∗ TFD {yp(n)} = Xp(k) ∗ Yp(k)

Il est possible de calculer un convolution aperiodique, x(n) * y(n), par une produit
de TFD. Mais pour ce faire, il faut incruster x(n) et y(n) dans des séquence
périodique xp(n) et yp(n) de taille N = Nx + N y –1.

Les échantillons de xp(n) entre Nx–1 et N x + N y –1 sont zéro.


Les échantillons de yp(n) entre Ny–1 et N x + N y –1 sont zéro.

Coût

Xp(k) = TFD {xp(n)} coût O(N ln N)


Yp(k) = TFD {yp(n)} coût O(N ln N)
Z p(k) = Xp(k) . Yp(k) coût O(N)
zp(n) = TFDI{ Zp(k)} coût O(N ln N)

Cout total 3 O(N ln N) + O(N) = O(N ln N).

Comparé à O(Nx Ny)

On est gagnant is (Nx + N y) ln (Nx + N y) < Nx Ny

En générale quand la durée du signal le plus court (le filtre) dépasse N > 30, il est
plus efficace de faire ce filtrage par produit de TFD.

13-5
Filtrage par Transformée de Fourier Discrète Séance 13

Convolution par TFD

En pratique, on rencontre souvent des situations où il faut filtrer un signale de


longue durée (voir illimité). C'est, par exemple, la cas lorsque on désire filtrer un
signal représente la parole, le bourse, ou le sortie d'une capteur.

Le calcul d'une TFD sur une longue durée pose certains problèmes pratiques. Pour
un séquence longue, la coût en mémoire et en temps de calcule d'une TFD est
prohibitif. De plus, pour obtenir le premier échantillon du résultat, on doit attendre
la fin de tous le calculs.

exemple : 10 seconds de parole au raison de 20 K échantillons per second = 200 K.


Transformé de Fourier demande 200 K Log2( 200 K) opérations et donne 200K
échantillons on fréquence. On n'a pas besoins d'un tel précision en fréquence mais
on a souvent besoins des résultats avec une retard inférieur à une seconde.

Soit le filtre à convolué, h(n), est de durée Nh tel que et n ∈ [0, Nh-1]
Le séquence a traiter, x(n) est d'une durée illimité.

On choisit une taille N = Nx + N yh –1 en puissance de 2. (ex 1024).

1) Incrustrer h(n) dans une sequence hN(n) de taille N.


2) Caluler H(k) = TFD{hN(n)} une fois
3) Appliquer la TFD sur des sections de x(n) de n ∈ [Ndebut, N fin] de taille
M = N – Nh

Attention: Les premiers Nh et les derniers Nh echantillons sont corrompus par


l'effet de bord.

x(n)

h(Nh–n) h(N–Nh+1–n) h(N–1–n)

corompus utilisable corompus

M
N

x(n) est decoupé en sections de taille Nx = N – N h + 1 tous les


M = N – 2N h + 1 echantillons.

13-6
Filtrage par Transformée de Fourier Discrète Séance 13

Analyse du Transforme de Fourier Discrete.

L'exponentielle complexe "discrète" est définit par :

e–j 2πn = Cos(2πfn) + j Sin(2πfn)

Pour un Transformée de Fourier, il faut spécifer le range de f, et de N.

Par exemple pour N = 16 echantillons.

2π n 2π 2π 2π n 2π 2π
WNn = ( e–j N ) = e –j n (
N = Cos ( N ) – j Sin( N ) )
= Cos (n N ) –j Sin(n N )

Im

2 2π
N

N
Re

1
Le fréquence le plus bas (apres f = 0) est 1 cycle per 16 échantillons (f = 16 )
1 2π
f = 16 ou ω = 16 (une cycle pour 16 echantillons),

2πn 2πn
Cos( 16 ) + j Sin( 16 ) a la forme :

n 0 1 2 3 4 5 6 7 8 9
Cos(n2π/N) 1.000 0.924 0.707 0.383 0.000 -0.383 -0.707 -0.924 -1.000 -0.924 -0.
sin(2πn/N) 0.000 0.383 0.707 0.924 1.000 0.924 0.707 0.383 0.000 -0.383 -0.

13-7
Filtrage par Transformée de Fourier Discrète Séance 13

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

1.000

0.500

0.000

-0.500

-1.000
012
3 45
67
8 9 Cos(n2π/N)
1011
1213
1415

Le deuxième bas fréquence est 2 cycles per N. Donc k = 2.

4π 4π 2 4π
WNn2 = Cos (n N ) –j Sin(n N ). f = 16 ou ω = 16

Im
1.000
22π
N
2π 0.000
N
Re -1.000
0 2
4 6
8 10 Cos(n4π/N)
12 14

13-8
Filtrage par Transformée de Fourier Discrète Séance 13

1.000

0.500

0.000
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
-0.500

-1.000

6π 6π 3 6π
Pour k = 3 : WNn3 = Cos (n N ) –j Sin(n N ). f = 16 ou ω = 16
8π 8π 4 8π
For k = 4 WNn4 = Cos (n N ) –j Sin(n N ). f = 16 ou ω = 16

13-9
Filtrage par Transformée de Fourier Discrète Séance 13

La réponse fréquentielle WNnk

Chaque signal WNnk est un filtre qui passe certain fréquence d'une séquence x(n).
Quelle sont les réponse de ces filtres?

N–1 1 N/2–1
X(z) = ∑ x(n) z –n et x(n) = N ∑ X(k) W N–nk
n=0 k=–N/2

donc :

N–1 1
X(z) = ∑ N ( N/2–1
∑ X(k) W N–nk ) z–n
n=0 k=–N/2

1 N/2–1 N–1
= N ∑ X(k) ∑ (WN–k z–1 )–n
k=–N/2 n=0

1 N/2–1 1–z–N
= N ∑ X(k) 1–W –k z–1
k=–N/2 N

1–z–N N/2–1 X(k)


= ∑
N k=–N/2 1–W N–k z–1

1–z–N N/2–1 2π
= N ∑ X(k) F(ω– N k)
k=–N/2

1 sin(ωN/2)
ou F(ω) = N sin(ω/2)

on note que F(ω) = 0 pour k = 1, 2, 3,... N–1 et F(0) = 1.

13-10
Filtrage par Transformée de Fourier Discrète Séance 13

1
Quand ∆f = N les nulls de chaque W(f – k ∆f) s'aligne.

Σ W(f –k∆f)

La sinus cardinale discrète

wN(n) est une fenêtre rectangulaire ou fonction de porte (parfois appellé rectN(n))

 1 0≤n<N
wN(n) 
 0 n < 0 et n ≥ N

N–1 N–1 N–1


WN(f) = ∑ w N(n) e–j2πfn = ∑ e–j2πfn = ∑ (e–j2πf)n
n=0 n=0 n=0

afin de simplifier l'agebre, on substitu : z = e–j2πfn

13-11
Filtrage par Transformée de Fourier Discrète Séance 13

N–1 1 – zN
il nous faut identité : ∑ zn = 1 – z
n=0

Donc :
1 – zN zN/2 (z–N/2 – z N/2) (z–N/2 – z N/2)
WN(z) = = z 1/2 = z(N–1)/2
1 – z (z–1/2 – z 1/2) (z–1/2 – z 1/2)

pour z = e–j2πf

–jπ f (e–j2πnfN/2 – ej2πnfN/2) sin(πfN)


WN(f) = e (N-1) = e–jπ f(N–1)/2
(e–j2πnf/2 – ej2πnf/2 ) sin(πf)

ou bien

sin(ωN/2)
WN(ω) = e–jω(N–1)/4 sin(ω/2)

(N–1)
Le term e–jπ(N-1)f est un decallage de 2

Si on définit w(n) avec un nombre impaire de coefficients, centré sur zéro :

 1 –N/2 ≤ n < N/2


wN(n) 
 0 ailleur

on a :

(e–j2πnfN/2 – ej2πnfN/2) sin(πfN)


WN(f) = =
(e–j2πnf/2 – ej2πnf/2 ) sin(πf)

13-12
Filtrage par Transformée de Fourier Discrète Séance 13

Idempotence du Sinus Cardinale avec Convolution.

Le fait de limiter un signal à N échantillons est équivalent de multiplier par wN(n).

wN(n) est idempotent sur tout séquence numérique non-null sur [0, N–1]

.
x(n) = x(n) wN(n)

en domaine Fourier : .
{ x(n) wN(n)} = X(ω) * WN(ω).
La spectre X(ω) de tout signal de duration fini, x(n), est convoluée par WN(ω).

13-13

Vous aimerez peut-être aussi