Sie sind auf Seite 1von 42

MIC4220, Traitement numérique des signaux

Filtres à réponse impulsionnelle


finie (RIF)

Mounir Boukadoum, Michaël Ménard et sources sur Internet


1

MIC4220, Traitement numérique des signaux

Objectifs d’apprentissage
Après ce cours vous serez en mesure de :
• Expliquer les traits des filtres RIF et les conditions
d’obtention d’une réponse en phase linéaire.
• Faire la conception de filtre RIF par trois méthodes:
– La méthode des fenêtres
– L’échantillonnage en fréquence
– La méthode de McClellan-Park

Mounir Boukadoum, Michaël Ménard et sources sur Internet


2

1
MIC4220, Traitement numérique des signaux

Introduction
• Les filtres RIF sont caractérisés par une fonction de
transfert polynômiale dans le domaine z :
N 1
H  z    h[n]z  n
n 0
(Pas de dénominateur => pas de pôles)
• Propriétés :
– Réponse stable par défaut
– Réponse en phase linéaire pour un filtre réalisable
– Peuvent demander un temps de calcul excessif
– Non réalisables en analogique pour toutes fins pratiques
Mounir Boukadoum, Michaël Ménard et sources sur Internet
3

MIC4220, Traitement numérique des signaux

Introduction
• Utilité d’un système stable par défaut :
– Pas besoin de s’assurer de la position des pôles aux bons
endroits
• Avantage d’une réponse en phase linéaire :
– L’équation d’entrée/sortie d’un filtre idéal est, dans sa
bande passante : y( t )  x( t   )
ou, dans le domaine de Fourier :
Y (  )  e  j X (  )
Ceci implique une fonction de transfert avec
H( )  1  H    
Mounir Boukadoum, Michaël Ménard et sources sur Internet
4

2
MIC4220, Traitement numérique des signaux

Équation d’e/s d’un filtre RIF


N 1 N 1
H  z    h[n]z n
yn   bk  xn  k 
n 0 k 0

y[n] Valeurs successives du signal de sortie


x[n] Valeurs successives du signal d’entrée
bk Coefficients de la fonction de transfert du filtre
N Nombre de coefficients (ordre du filtre)

• Deux filtres RIF se distinguent uniquement par leur


coefficients respectifs !

Mounir Boukadoum, Michaël Ménard et sources sur Internet


5

MIC4220, Traitement numérique des signaux

Représentation d’un filtre RIF

• Diagramme de flux

x[n]

• On peut utiliser toutes les formes canoniques de mise


en œuvre et leur transposées
– Direct, Cascade, Parallèle

Mounir Boukadoum, Michaël Ménard et sources sur Internet


6

3
MIC4220, Traitement numérique des signaux

Origine du nom
N 1
y n    bk  xn  k 
k 0

• Si on pose x[n] = [n], la sortie est y[n] = h[n], d’où :


N 1
h[n ]   bk  n  k 
k 0
 b0 n   b1 n  1    bN 1 n  ( N  1)
• Comme : • On en déduit :
1 for n  k h0  b0
 n  k     bk si k  N  1
0 for n  k h1  b1 ou hk   
0 autrement

Mounir Boukadoum, Michaël Ménard et sources sur Internet
7

MIC4220, Traitement numérique des signaux

Observations
• La réponse impulsionnelle du filtre est donnée par les
valeurs successives de ses coefficients.
• Conséquences:
 L’ordre du filtre est égal au nombre de coefficients
 La réponse du filtre est de durée finie NTe
 Comme ℎ 𝑛 ∑ 𝑏 𝛿 𝑛 𝑘 donne 𝐻 𝑧 ∑ 𝑏 𝑧 ,
la suite des valeurs de h[n] donne automatiquement celle
des coefficients du filtre, et vice-versa

Mounir Boukadoum, Michaël Ménard et sources sur Internet


8

4
MIC4220, Traitement numérique des signaux

Réponse en fréquence

N 1
• Puisque H z    hk  z k
k 0

La réponse en fréquence du filtre est, en remplaçant z


by 𝑒 (ou 𝑒 pour la forme normalisée) :
N 1
H  z  z e jTe  H     hk e  jkTe
k 0

• La similarité d’expression de H() avec une série de


Fourier tronquée suggère une méthode de trouver h[n] !

Mounir Boukadoum, Michaël Ménard et sources sur Internet


9

MIC4220, Traitement numérique des signaux

Périodicité de la réponse en fréquence

• Puisque e-j2k = 1, on a:
 2 
 2  N 1  jn     Te N 1
H       hn e  Te    hn e  jnTe
 Te  n 0 n 0

=> À l’instar de tout système à temps échantillonné, on a :


 2 k 
H      H  
 Te 
• En particulier, si on normalise Te à 1, on a:
H   2k   H  
=> Périodicité de 2 dans le cercle unité du plan z

Mounir Boukadoum, Michaël Ménard et sources sur Internet


10

5
MIC4220, Traitement numérique des signaux

Nécessité d’un filtre anti-alias


 2 
• Conséquences de H     H
 Te 
x[n]

y[n]
fréq fréq
fe/2 fe/2

• Il faut respecter le critère de Nyquist: max    fe (ou  si


on utilise une période d’échantillonnage normalisée) Te
=> Utiliser un filtre anti-alias à l’entrée du convertisseur A-N
x[n]
x(t) CAN FIR y[n]
Filtre anti-alias

Mounir Boukadoum, Michaël Ménard et sources sur Internet


11

MIC4220, Traitement numérique des signaux

Réponse en phase
• Un filtre réalisable possède une réponse en fréquence
symétrique (sinon h[n] aurait des valeurs complexes).
• Partant de la périodicité de H(), on a :
h(n) h(n)
N = 2n + 2 N = 2n + 1

n n
0 1 n n+1 2n 2n+1 0 1 n-1 n n+1 2n-1 2n
Symétrie paire Symétrie impaire
• pour un filtre d’ordre N :
hn e  jnTe  hN  1  ne  j  N 1 n Te , ou |h[n]| = |h[N-1-n]|

Mounir Boukadoum, Michaël Ménard et sources sur Internet


12

6
MIC4220, Traitement numérique des signaux

Réponse en phase
• Si on suppose une symétrie impaire avec N=2n+1:
h(n)
N = 2n + 1

N 2n
H z    hi z
i 0
i
0 1 n-1 n n+1 2n-1 2n
n

 h0 z 0  h1 z 1  ...  hn z  n  hn z ( n 1)  ...  h1 z ( 2 n 1)  h0 z  2 n


    
 z  n h0 z n  z  n  h1 z n 1  z ( n 1)  ...  hn 1 z1  z 1  hn z 0   
• Pour un symétrie paire, avec N=2n+2 h(n)
N = 2n + 2

N  2 n 1
H z    hi z
i 0
i

n
0 1 n n+1 2n 2n+1

0 1 n  ( n 1) 2n  ( 2 n 1)


 h0 z  h1 z  ...  hn z  hn z  ...  h1 z  h0 z

2 n 1
  2 n 1

2 n 1
  2 n 1
1 
2 n 1
1   2 n 1  n 
2 n 1
 n 
z 2
h0  z 2
z 2   h1  z
 
2
z 2   ...  hn  z 2  z 2 
  
      
Mounir Boukadoum, Michaël Ménard et sources sur Internet
13

MIC4220, Traitement numérique des signaux

Réponse en phase
• Dans les deux expressions, le terme entre crochets est réel
(sommes de nombres complexes conjugués) et l’argument hors-crochets
donne la réponse en phase du filtre si z=ejTe
– Dans les deux cas de symétrie, la réponse en phase est (ω) ωTe,
c.-à-d. de la forme kω

Condition Phase  k   N  1  Propriété Type de filtre


 2 

hn  hN  n  1 Symétrie impaire – Type 1


k Phase linéaire
Symétrie positive Symétrie paire – Type 2

Mounir Boukadoum, Michaël Ménard et sources sur Internet


14

7
MIC4220, Traitement numérique des signaux

Réponse en phase
• En utilisant le même type de dérivation, on peut montrer
que les filtres antisymétriques ont eux aussi une réponse
en phase linéaire
Centre de Centre de
symétrie symétrie

Centre de
Centre de
symétrie
symétrie

Mounir Boukadoum, Michaël Ménard et sources sur Internet


15

MIC4220, Traitement numérique des signaux

Conception d’un filtre RIF


• L’approche est similaire à la conception d’un filtre
analogique :
1. Spécification du filtre
2. Calcul des coefficients
3. Choix d’une architecture de mise en œuvre
4. Simulation (optionnel si on est sûr de soi)
5. Implémentation

Mounir Boukadoum, Michaël Ménard et sources sur Internet


16

8
MIC4220, Traitement numérique des signaux

Étape 1 : Spécification du filtre


• Les filtres standard peuvent être Trans-

dérivés d’un filtre passe bas normalisé formation

– Partant du filtre passe-bas, un changement de Pb  Pb α


variable dans H(z) donne le filtre désiré
• Approche d’inspiration analogique α
Pb  PH

difficilement applicable aux filtres RIF
– L’équivalent analogique d’un filtre RIF est
peu désirable (sn est un amplificateur de bruit dans le 1 
Pb  PB 
domaine j) et quasiment impossible à réaliser B 

• Pour les filtres RIF, les techniques de


B
calcul des coefficients passent par la Pb  CB
 
spécification directe de la réponse désirée

Mounir Boukadoum, Michaël Ménard et sources sur Internet


17

MIC4220, Traitement numérique des signaux

Paramètres à considérer
|H(f)| pass-band stop-band

fc : cut-off frequency fs/2 f(norm)


(a)

|H(f)| pass-band transition band stop-band |H(f)|


(dB) (linear)
p 1   p

0 1
1   p

pass-band
-3
ripple

stop-band
ripple
s  s

fs/2 f(norm)
fsb : stop-band frequency
fc : cut-off frequency
fpb : pass-band frequency
(b)

Mounir Boukadoum, Michaël Ménard et sources sur Internet


18

9
MIC4220, Traitement numérique des signaux

Exemple d’étape 1
• Création d’un filtre RIF avec les
caractéristique suivantes
pour accentuer la sonorité
d’un trombone :
– Type : passe-bande
– Bande de transmission :
150-3000 Hz
– Bande de transition:
100 Hz
– Fréqu. d’échantillonnage:
44 000 Hz
Mounir Boukadoum, Michaël Ménard et sources sur Internet
19

MIC4220, Traitement numérique des signaux

Étape 2: calcul des coefficients de h[n]


• Il existe plusieurs méthodes, dont :
– La méthode des fenêtres qui fait l’approximation
de h[n] par la série de Fourier inverse tronquée
du spectre d’amplitude de H()
– L’échantillonnage du spectre d’amplitude de
H() suivi de la transformation de Fourier
inverse
– La méthode des ondulations égales de Parks-
McClellan (filtres « equiripple »)
– Etc…
Mounir Boukadoum, Michaël Ménard et sources sur Internet
20

10
MIC4220, Traitement numérique des signaux

La méthode des fenêtres


• Comme bk=h[k], le calcul des coefficients revient à
trouver la réponse impulsionnelle du filtre
• On part de l’amplitude de la réponse en fréquence d’un
filtre idéal et on prend sa transformée de Fourier inverse.
• Pour un filtre passe bas avec Te normalisé à 1:

1
hd n    H  e
j n
d
2 
c
1
1 e
jn
 d
2  c

2 f c sin nc 
 , n  0,1, 2...
nc
Séquence infinie! Il faut la tronquer pour la rendre réalisable.
Mounir Boukadoum, Michaël Ménard et sources sur Internet
21

MIC4220, Traitement numérique des signaux

La méthode des fenêtres


Réponse impulsionnelle idéale
Type de filtre h[n] (coefficients non causals)

Passe-bas
pour

Passe-haut
pour

Passe-bande
pour

Coupe-bande pour

• 𝑀 définit le point de troncation et l′ordre du filtre


Mounir Boukadoum, Michaël Ménard et sources sur Internet
22

11
MIC4220, Traitement numérique des signaux

La méthode des fenêtres


• Limiter la séquence des coefficients du filtre revient
à multiplier hd[n] par une fenêtre rectangulaire de
durée finie
– Convolution de H(ω) par la transformée de Fourier de la
fenêtre rectangulaire, ce qui modifie H(ω)
2
1 10

0.5 1
10
0
0
10
-0.5
-1
-1 10
0 100 200 300 0 50 100 150

• On peut mitiger les conséquences en utilisant une


fenêtre non rectangulaire.
– L’ordre du filtre dépendra du type de fenêtre et de la
largeur de la bande de transition.
Mounir Boukadoum, Michaël Ménard et sources sur Internet
23

MIC4220, Traitement numérique des signaux

La méthode des fenêtres


• Calcul des coefficients du filtre tronqué:
N 1 N 1
 n
hn  hd n Wn 2
N N
2 pour N impair
 n pour N pair
2 2

• Par exemple (fenêtre de Hamming avec Te=1) :


 2 n 
W [ n ]  0 . 54  0 . 46 cos  
 N 
 2 n 
 0 . 54  0 . 46 cos   Si N=133 et -66 ≤ n ≤ 66
 133 
Mounir Boukadoum, Michaël Ménard et sources sur Internet
24

12
MIC4220, Traitement numérique des signaux

Exemple
• Réponse impulsionnelle du filter passe bas 0.002680185144672
-0.001175459081146

obtenu pour fe=8kHz, fc=1.3 kHz, fs -fc=200 Hz -0.007352762361627


0.000674199916282
-0.011061614566310
Truncated Impulse Response 0.004884445218787
0.5
0.053381802959437
-0.003877229761413
0.4
0.028520376706076
-0.008868219888928
0.3
-0.296393895946737
0.008172485670763
0.2
0.462500000000000
Value

0.008172485670763
0.1 -0.296393895946737
-0.008868219888928
0 0.028520376706076
-0.003877229761413
-0.1 0.053381802959437
0.004884445218787
-0.2 -0.011061614566310
0.000674199916282
-0.3 -0.007352762361627
0 5 10 15 20 25
-0.001175459081146
Coefficient number 0.002680185144672

Mounir Boukadoum, Michaël Ménard et sources sur Internet


25

MIC4220, Traitement numérique des signaux

Fenêtres communes
• (-M ≤ n ≤ M)
– Rectangulaire: w𝑛 1
– Hanning: w𝑛 0,5 0,5 cos

– Hamming: w𝑛 0,54 0,46 cos


– Blackman:
w𝑛 0,42 0,5 cos 0,08 cos

Mounir Boukadoum, Michaël Ménard et sources sur Internet


26

13
MIC4220, Traitement numérique des signaux

Fenêtres communes
1
O: triangulaire (Bartlett)
0.9 +: Hanning
0.8 ─: Hamming
0.7
--:Blackman
0.6
• Grandes
Magnitude

0.5
ressemblances, mais
0.4 effets différent sur la
0.3 réponse du filtre!
0.2

0.1

0
-40 -30 -20 -10 0 10 20 30 40
Number of samples

Mounir Boukadoum, Michaël Ménard et sources sur Internet


27

MIC4220, Traitement numérique des signaux

La fenêtre de Kaiser
• La plus efficace à priori :

𝐼 𝛽 1 𝑛 𝛼
𝑤𝑛 ,0 𝑛 𝑀 𝛼
𝐼 𝛽
0 autrement
où α=M/2 et I0(x) est la fonction de Bessel modifiée d’ordre
zéro.
• La forme de la fenêtre peut être ajustée en changeant
M et/ou β.

Mounir Boukadoum, Michaël Ménard et sources sur Internet


28

14
MIC4220, Traitement numérique des signaux

La fenêtre de Kaiser
• Kaiser a démontré de façon empirique que β est relié |H(f)|

1
pass-band stop-band

à l’ondulation δ dans la bande passante par:


0,1102 𝐴 8,7 , 𝐴 50
𝛽 0,584 𝐴 21 , 0,07886 𝐴 21 21 𝐴 50 f(norm)
fc : cut-off frequency fs/2
0 𝐴 (a) 21
𝑜ù 𝐴 20 log 𝛿 |H(f)|
(dB)
pass-band transition band stop-band |H(f)|
(linear)
p 1   p

• On a aussi pour M :
0 1
1   p

pass-band
-3
ripple

𝐴 8
𝑀 2 stop-band

2,285 𝜔 𝜔
ripple
s  s

fs/2 f(norm)
fsb : stop-band frequency
fc : cut-off frequency
fpb : pass-band frequency
(b)

Mounir Boukadoum, Michaël Ménard et sources sur Internet


29

MIC4220, Traitement numérique des signaux

La méthode des fenêtres

β=6

M = 20

Mounir Boukadoum, Michaël Ménard et sources sur Internet


30

15
MIC4220, Traitement numérique des signaux

La méthode des fenêtres


• On trouve l’ordre du filtre selon la largeur de la bande de transition,
une fois choisie l’atténuation dans la bande d’arrêt.
Bande de transition Ondulation Atténuation Amplitude du β de la fenêtre
Fenêtre
normalisée (f(Hz)) dans la bande dans la bande lobe secondaire de Kaiser
passante (dB) d’arrêt (dB) (dB) équivalente

Rectangulaire 0.9 0.7416 -21 -13 0


N

Hanning 3.1 0.0546 -44 -31 3.86


N

Hamming 3.3 0.0194 -53 -41 4.86


N

Blackman 5.5 0.0017 -74 -57 7.04


N
2.93
   4.54 0.0274 -50
N
Kaiser
5.71
   8.96 0.000275 -90
N

Mounir Boukadoum, Michaël Ménard et sources sur Internet


31

MIC4220, Traitement numérique des signaux

Exemple
Hamming, N=25 et N=101
10

0
Magnitude (dB)

-10

-20

-30

-40

-50

-60

-70
0 500 1000 1500 2000 2500 3000 3500 4000

Frequency (Hz)

1000
Phase (degrees)

-1000

-2000

-3000

-4000

-5000
0 500 1000 1500 2000 2500 3000 3500 4000

Frequency (Hz)
Mounir Boukadoum, Michaël Ménard et sources sur Internet
32

16
MIC4220, Traitement numérique des signaux

Exemple: Trombone
• Bande de transmission: 150-3000 Hz
• Bande de transition: 100 Hz
• Fréquence d’échantillonnage: 44 000 Hz
• Filtre avec M=5 (N=2)
• Fenêtre de Blackman
1. Normalisation des fréquences
150 3
Ω 2𝜋𝑓 𝑇 2𝜋 𝜋
44000 440
3000 3
Ω 2𝜋𝑓 𝑇 2𝜋 𝜋
44000 22

Mounir Boukadoum, Michaël Ménard et sources sur Internet


33

MIC4220, Traitement numérique des signaux

Exemple: Trombone
2. Calcul les coefficients selon les formules
3 3
ℎ0
Ω Ω 22 𝜋 440 𝜋 0,1295
𝜋 𝜋
sin Ω sin Ω
ℎ1 0,1254
𝜋 𝜋
sin 2Ω sin 2Ω
ℎ2 0,1135
2𝜋 2𝜋

Mounir Boukadoum, Michaël Ménard et sources sur Internet


34

17
MIC4220, Traitement numérique des signaux

Exemple: Trombone
3. Ajustement des coefficients avec la fenêtre de
Blackman
𝜋𝑛 2𝜋𝑛
w𝑛 0,42 0,5 cos 0,08 cos
𝑀 𝑀
w0 0,42 0,5 0,08 1
w1 0,42 0,08 0,34
w2 0,42 0,5 0,08 0

Mounir Boukadoum, Michaël Ménard et sources sur Internet


35

MIC4220, Traitement numérique des signaux

Exemple: Trombone
4. La fonction de transfert est:

𝐻 𝑧 0,0426𝑧 0,1295𝑧 0,0426𝑧

5. L’équation aux différences est:

𝑦𝑛 0,0426 𝑥 𝑛 1 0,1295 𝑥 𝑛 2 0,0426 𝑥 𝑛 3

Mounir Boukadoum, Michaël Ménard et sources sur Internet


36

18
MIC4220, Traitement numérique des signaux

• N=2
Exemple: Trombone

Pas fameux!

Mounir Boukadoum, Michaël Ménard et sources sur Internet


37

MIC4220, Traitement numérique des signaux

• N=200
Exemple: Trombone

Mounir Boukadoum, Michaël Ménard et sources sur Internet


38

19
MIC4220, Traitement numérique des signaux

Exemple: Trombone

N=200

Mounir Boukadoum, Michaël Ménard et sources sur Internet


39

MIC4220, Traitement numérique des signaux

Exemple: Passe-haut
• On veut un filtre passe-haut avec M=5 et fc=250 Hz ,
fonctionnant avec une fréquence d’échantillonnage de
1 kHz et basé sur la fenêtre de Hamming.

1. Normalisation des fréquences


250 1
Ω 2𝜋𝑓 𝑇 2𝜋 𝜋
1000 2

Mounir Boukadoum, Michaël Ménard et sources sur Internet


40

20
MIC4220, Traitement numérique des signaux

Exemple: Passe-haut

2. Calcul des coefficients en utilisant les formules


𝜋 Ω 𝜋 1 2𝜋
ℎ0 0,5
𝜋 𝜋
sin Ω
ℎ1 0,318
𝜋
sin 2Ω
ℎ2 0
2𝜋

Mounir Boukadoum, Michaël Ménard et sources sur Internet


41

MIC4220, Traitement numérique des signaux

Exemple: Passe-haut

3. Ajustement des coefficients avec la fenêtre:


𝜋𝑛
w𝑛 0,54 0,46 cos
𝑀
w0 0,54 0,46 1
w1 0,54 0 0,54
4. La fonction de transfert est:

𝐻 𝑧 0,1719𝑧 0,5𝑧 0,1719𝑧

Mounir Boukadoum, Michaël Ménard et sources sur Internet


42

21
MIC4220, Traitement numérique des signaux

Exemple: Passe-haut

Mounir Boukadoum, Michaël Ménard et sources sur Internet


43

MIC4220, Traitement numérique des signaux

Exemple: Nombre de coefficients


• Le nombre de coefficients requis est tiré des
spécifications et la fenêtre choisie
• Ex. : N pour un filtre coupe-bande avec
– Bande-passante basse: 0-1.2 kHz
– Bande d’arrêt: 1.6-2.0 kHz
– Bande-passante haute: 2.4-4.0 kHz
– Ondulation dans la bande-passante: 0.005 dB
– Atténuation dans la bande d’arrêt: 60 dB
– Fréquence d’échantillonnage: 8.0 kHz

Mounir Boukadoum, Michaël Ménard et sources sur Internet


44

22
MIC4220, Traitement numérique des signaux

Exemple: Nombre de coefficients


• À partir du tableau des fenêtres :
– Ondulation de 0.005 dB Fenêtre de Blackman
• Longueur du filtre:
5.5 5.5
∆𝑓 →𝑁 110
𝑁 1.6 1.2
8.0
5.5
𝑁 110 → 𝟏𝟏𝟏
2.4 2.0
8.0

Mounir Boukadoum, Michaël Ménard et sources sur Internet


45

MIC4220, Traitement numérique des signaux

La méthode des fenêtres


• Code MATLAB pour calculer les coefficients:
% filtre passe bas : fc = 8000 Hz, fe = 44100 Hz, N=133 (|M|=66), fenetre de Hamming

close all;
clear all;

fc = 8000/44100; % fréquence de coupure normalisée


N = 133; % nombre de points (“taps”)
n = -((N-1)/2):((N-1)/2);
n = n+(n==0)*eps; % eps introduit pour prevenir la division par 0

[h] = sin(n*2*pi*fc)./(n*pi); % generation de la séquence de coefficients ideaux


[w] = 0.54 + 0.46*cos(2*pi*n/N); % generation de la fenêtre de Hamming
d = h.*w; % filtre idéal modifié
figure(1);
stem(d); % Tracé des valeurs de coefficients obtenues
xlabel('Coefficient number');
ylabel ('Value');
title('Truncated Impulse Response');

figure(2)
freqz(d,1,512,44100); % freqz trace les réponses en amplitude et phase
axis([0 2*10^4 -70 10]); % num=d, den=1, n points = 512, fe=44100

Mounir Boukadoum, Michaël Ménard et sources sur Internet


46

23
MIC4220, Traitement numérique des signaux

La méthode des fenêtres


Truncated Impulse Response
0.4 0

Magnitude (dB)
-20
0.3
-40

-60
0.2
0 0.2 0.4 0.6 0.8 1 1.2 1.4 1.6 1.8 2
Value

Frequency (Hz) 4
x 10
0.1 0

Phase (degrees)
-2000
0

-4000
-0.1
0 20 40 60 80 100 120 140
Coefficient number -6000
0 0.5 1 1.5 2
Frequency (Hz) 4
x 10

Mounir Boukadoum, Michaël Ménard et sources sur Internet


47

MIC4220, Traitement numérique des signaux

Conception de filtre RIF par


échantillonnage en fréquence
• Au lieu d’obtenir la transformée inverse de la réponse
en fréquence idéale et la tronquer, on échantillonne
H() avant d’effectuer la transformation inverse
– On obtient un système causal en délayant la réponse
– On assume la symétrie des coefficients pour obtenir une
réponse en phase linéaire.
• Approche très flexible, car ne dépendant pas de la
forme de H()

Mounir Boukadoum, Michaël Ménard et sources sur Internet


48

24
MIC4220, Traitement numérique des signaux

Échantillonnage en fréquence
On a, par TFD inverse (et en posant Te=1) :
1
ℎ𝑛 𝐻𝑘𝑊
𝑁

où 𝑊 𝑒 cos 𝑗 sin et 𝐻 𝑘 𝐻 𝑘0

Pour une réponse en fréquence symétrique, expression


équivalente à (les sin s’annulent dans la somme):
1 2𝜋𝑘 𝑛 𝑀
ℎ𝑛 𝐻 2 𝐻 cos
2𝑀 1 2𝑀 1

où 𝑀 ou dépendant de N pair ou impair

Mounir Boukadoum, Michaël Ménard et sources sur Internet


49

MIC4220, Traitement numérique des signaux

Exemple
• Transmission: 150-3000 Hz
• Transition: 100 Hz
• Échantillonnage: 44 000 Hz
• Fréqu. d’échantillonnage de la réponse en fréquence: 220 Hz
1. On obtient 44000/220 =200 échantillons, d’amplitudes H(k)
dictées par la forme de H():
H(0) = 0, H(1-14) = 1, H(18-200) = 0
D’où :
ℎ𝑛 2∑ cos
2. On peut ensuite multiplier H[n] par une fenêtre pour obtenirla
réponse finale

Mounir Boukadoum, Michaël Ménard et sources sur Internet


50

25
MIC4220, Traitement numérique des signaux

Mounir Boukadoum, Michaël Ménard et sources sur Internet


51

MIC4220, Traitement numérique des signaux

Comparaison Fenêtre vs. Fréquence

Mounir Boukadoum, Michaël Ménard et sources sur Internet


52

26
MIC4220, Traitement numérique des signaux

Filtres à ondulations égales


• Motivation
– La fenêtre rectangulaire devrait mener à une erreur quadratique
moyenne minimale entre le filtre idéal et celui obtenu après
troncation de la réponse impulsionnelle
1
𝜀 𝐻 𝑒 𝐻 𝑒 𝑑𝜔
2𝜋
Mais la transition discontinue de la bande passante à celle d’arrêt
crée des ondulations indésirables de grande amplitude
(phénomène de Gibbs)
– Les autres fenêtres établissent un compromis entre le niveau
d’ondulation et l’erreur de représentation.
Mounir Boukadoum, Michaël Ménard et sources sur Internet
53

MIC4220, Traitement numérique des signaux

Filtres à ondulations égales


• On aimerait réduire l’effet du
phénomène de Gibbs afin
d’obtenir l’ordre N le plus bas
pour un niveau d’erreur donné
– Cependant, les méthodes des
fenêtres et de l’échantillonnage
en fréquence n’offrent pas de
contrôle sur la distribution de
l’erreur

Mounir Boukadoum, Michaël Ménard et sources sur Internet


54

27
MIC4220, Traitement numérique des signaux

Filtres à ondulations égales


• But:
– Réduire l’ordre de l’équation de transfert du filtre
pour un niveau d’erreur donné.
• Autrement dit, trouver l’équation optimale pour un
ordre donné.
• Approche:
– Distribuer l’erreur sur toute la bande passante
(equiripple filter)
– Permettre d’obtenir un niveau d’erreur différent
dans la bande passante et la bande d’arrêt.
Mounir Boukadoum, Michaël Ménard et sources sur Internet
55

MIC4220, Traitement numérique des signaux

Filtres à ondulations égales

Mounir Boukadoum, Michaël Ménard et sources sur Internet


56

28
MIC4220, Traitement numérique des signaux

Filtres à ondulations égales


• Principe :
– Transformer la conception du filtre en un problème
d’optimisation polynomiale
𝐻 𝑒 ∑ ℎ𝑛𝑒
𝐻 𝑒 ∑ 𝑎 𝑥
• Il faut trouver l’équation optimale satisfaisant l’erreur
maximale tolérée (utilisation du théorème d’alternance)
– Algorithme de Parks-McClellan pour trouver les coefficients
(lui-même basé sur d’autre algorithmes dont celui d’échange de Remez)

• Procédure complexe et non intuitive!


Mounir Boukadoum, Michaël Ménard et sources sur Internet
57

MIC4220, Traitement numérique des signaux

Algorithme Parks-McClellan
Estimation de (M+2) fréquences d’extrême

Calcule du δ sur l’ensemble de fréquence d’extrême

Interpolation sur (M+1) pour obtenir A(ejω)

Calcule l’erreur E(ω) et recherche de les maximums locaux

Oui Garde les (M+2)


Plus de (M+2) plus grand
extrêmes? extrême

Non
Changé
Vérifie si les fréquences d’extrême ont changé
Inchangé
Meilleur approximation

Mounir Boukadoum, Michaël Ménard et sources sur Internet


58

29
MIC4220, Traitement numérique des signaux

Conception avec Parks-McClellan


1. Normaliser les fréquences définissant les extrémités des bandes
par rapport à la fréquence de pliure (fe/2).
2. Calculer les valeurs absolues des ondulations tolérées dans la
bande passante et l’atténuation dans la bande d’arrêt

𝛿 10 1 et 𝛿 10

3. Calculer le rapport pour biaiser l’optimisation des poids d’une


bande par rapport à l’autre et utiliser l’algorithme de Remez pour
trouver les coefficients
𝛿 𝑛𝑢𝑚é𝑟𝑎𝑡𝑒𝑢𝑟 𝑊
𝛿 𝑑é𝑛𝑜𝑚𝑖𝑛𝑎𝑡𝑒𝑢𝑟 𝑊
3. Si les spécifications ne sont pas respectées, on augmente l’ordre
et recommence.
Mounir Boukadoum, Michaël Ménard et sources sur Internet
59

MIC4220, Traitement numérique des signaux

Exemple

• Filtre passe-bas, spécifications:


– Fréquence d’échantillonnage: 8 000 Hz
– Bande de passage: 0-800 Hz
– Bande d’arrêt: 1 000 – 4 000 Hz
– Ondulation dans la bande passante: 1 dB
– Atténuation dans la bande d’arrêt: 40 dB
– Ordre du filtre: 53

Mounir Boukadoum, Michaël Ménard et sources sur Internet


60

30
MIC4220, Traitement numérique des signaux

Exemple
• Fréquences normalisées:
– 0 Hz: 0/4000 = 0 magnitude:1
– 800 Hz: 800/4000 = 0,2 magnitude:1
– 1000 Hz: 1000/4000 = 0,25 magnitude:0
– 4000 Hz: 4000/4000 = 1 magnitude:0
• Les poids des bandes passante et d’atténuation :
𝛿 10 1 0,122 𝛿 10 0,01
𝛿 12 𝑊
12,2
𝛿 1 𝑊

Mounir Boukadoum, Michaël Ménard et sources sur Internet


61

MIC4220, Traitement numérique des signaux

Code Matlab
fs=8000; %Fréquence d'échantillonnage
N=53; %Ordre du filtre
f=[0 0.2 0.25 1]; %Fréquences de coupures
m=[1 1 0 0]; %Amplitude optimales
w=[1 12]; %Poids (optionnel dans l’appel suivant)
b=remez(N,f,m,w); %Algorithme de Remez
freqz(b,1,512,fs) %Affichage des résultats
axis([0 fs/2 -80 10]); %Ajustement des axes

Mounir Boukadoum, Michaël Ménard et sources sur Internet


62

31
MIC4220, Traitement numérique des signaux

Exemple
10

-10

Magnitude (dB) -20

-30

-40

-50

-60

-70

-80
0 500 1000 1500 2000 2500 3000 3500 4000
Frequency (Hz)
0

-200

-400
Phase (degrees)

-600

-800

-1000

-1200

-1400
0 500 1000 1500 2000 2500 3000 3500 4000
Frequency (Hz)

Mounir Boukadoum, Michaël Ménard et sources sur Internet


63

MIC4220, Traitement numérique des signaux

Exemple
• Passe-bande
• Transmission:
1 500-3 000 Hz
• Transition: 200 Hz
• Échantillonnage: 10 000 Hz
• Ondulation: 2 dB
• Atténuation: 20 dB

Mounir Boukadoum, Michaël Ménard et sources sur Internet


64

32
MIC4220, Traitement numérique des signaux

Exemple
• Fréquences normalisées:
– 0 Hz: 0/5000 = 0 mag.:0
– 1300 Hz: 1300/5000 = 0,26 mag.:0
– 1500 Hz: 1500/5000= 0,3 mag.:1
– 3000 Hz: 3000/5000= 0,6 mag.:1
– 3200 Hz: 3200/5000 = 0,64 mag.:0
– 5000 Hz: 5000/5000= 1 mag.:0
• Les poids:
𝛿 10 1 0, 26 𝛿 10 0,1
𝛿 13 𝑊
2,6
𝛿 5 𝑊

Mounir Boukadoum, Michaël Ménard et sources sur Internet


65

MIC4220, Traitement numérique des signaux

Exemple

Mounir Boukadoum, Michaël Ménard et sources sur Internet


66

33
MIC4220, Traitement numérique des signaux

FDATool de matlab

Mounir Boukadoum, Michaël Ménard et sources sur Internet


67

MIC4220, Traitement numérique des signaux

Étape 3 : Architecture de mise en œuvre

• On peut utiliser toutes les formes discutées


précédemment et leur transposées
– Direct
– Cascade
– Parallèle
-1 -1 -1
x(n) z z z

b b b b
0 1 2 N-1

+ + + y(n)

Mounir Boukadoum, Michaël Ménard et sources sur Internet


68

34
MIC4220, Traitement numérique des signaux

Étape 3 : architecture de mise en oeuvre

• Forme directe :
N 1
y n   hn  xn    hk  xn  k 
k 0

hk   bk  yn  b0 xn  b1xn  1  ...  bN 1xn  N  1

-1 -1 -1
x(n) z z z

b b b b
0 1 2 N-1

+ + + y(n)

Mounir Boukadoum, Michaël Ménard et sources sur Internet


69

MIC4220, Traitement numérique des signaux

Étape 3 : Architecture de mise en oeuvre


• Forme directe :
N 1
H z   b z k
k

k 0

• Variante à réponse en phase linéaire :


N
1

 b z 
2
 N pair : H z   k
k
 z N  k 1
k 0
N 1
N 1
H z   bk z k  z N k 1   bN 1 z
2 
 N impair : 2

k 0 2

Mounir Boukadoum, Michaël Ménard et sources sur Internet


70

35
MIC4220, Traitement numérique des signaux

Mise en œuvre
x(n) -1 -1 -1 -1 -1 -1
z z z z z z
b0

• La symétrie des +
b1
+ +
filtres linéaires +
b2
+
en phase permet
N impair b(N-1)/2

de réduire les +
b(N-3)/2
+

multiplications. y(n) +

-1 -1 -1 -1 -1
z z z z z
b0
+
b1
+ +
b2
+ +

N pair
b N/2-1
+ +
y(n)

Mounir Boukadoum, Michaël Ménard et sources sur Internet


71

MIC4220, Traitement numérique des signaux

Étape 3 : architecture de mise en oeuvre


• Forme en cascade :
N 1
H z   b k z  k  b 0  b1 z  1  b 2 z  2  ...  b N  1 z   N 1 
k 0

 b b b 
 b 0 1  1 z  1  2 z  2  ...  N  1 z   N 1  
 b 0 b 0 b 0 

 1  b 
M
 b0 k ,1 z 1  b k , 2 z  2
k 1

x(n) b0 y(n)
+ + +

z -1 z -1 z -1
b 1,1 b 2,1 b M,1
+ + +
z -1 z -1 z -1
b 1,2 b 2,2 b M,2

Mounir Boukadoum, Michaël Ménard et sources sur Internet


72

36
MIC4220, Traitement numérique des signaux

Étape 5 : mise en oeuvre finale


N 1
1. Transformer y n    bk x n  k  en code de c ou
k 0
assembleur
2. Initialiser le codec
3. Configurer un temporisateur du DSP pour la
génération d’interruptions à la fréquence fe
4. Écrire un programme principal qui accomplit les
étapes 2 et 3, et un sous-programme de service aux
interruptions qui exécute le code du filtre développé
à l’étape 1.
Mounir Boukadoum, Michaël Ménard et sources sur Internet
73

MIC4220, Traitement numérique des signaux

Code
//C6xdskinit.c : Initialisation du DSK,codec AD535,port sériel, et fonction d’e/s en mode IRQ

#include ...

// initilisation du système (ports McBSP, codec, temporisateurs, etc.)


Void c6x_dsk_init() { /* ... */
}

// e/s par interruption


void comm_intr() {
c6x_dsk_init(); // init DSK (McBSP en mode IRQ)
config_IRQ(11, XINT0); //utiliser l’IRQ 11 sur XINT0
enableGlobalINT(); //partir les IRQ
}

// Écriture au CNA du codec à travers le port sériel McBSP0


void output_sample(int out_data) {
*(unsigned volatile int *)McBSP0_DXR =out_data & 0xfffe; // & pour communication primaire
}

// Lecture du CAN du codec à travers le port sériel McBSP0


int input_sample() {
return *(unsigned volatile int *)McBSP0_DRR;
}

Mounir Boukadoum, Michaël Ménard et sources sur Internet


74

37
MIC4220, Traitement numérique des signaux

Code
//Fir.c FIR filter.
#include "bs2700.cof" // contient les valeurs de h[] et N
int yn; // Sortie du filtre
short xin[N]; // Données d’entrée
void main()
{
comm_intr(); //initialisation du système en mode IRQ
while(1); //boucle infinie; filtrage par IRQ
}

interrupt void c_int11() //ISR (code du filtre)


{
short i;

xin[0] = input_sample(); //lire la dernière valeur


yn = 0;
for (i = 0; i< N; i++)
yn += (h[i] * xin[i]); //calculer y(n) += h(i)* x(n-i)
for (i = N-1; i > 0; i--) //décaler les valeurs de y[]
xin[i] = xin[i-1];

output_sample(yn >> 15); //tronquer les 15 BMS


return;
}
Mounir Boukadoum, Michaël Ménard et sources sur Internet
75

MIC4220, Traitement numérique des signaux

Usage d’un tampon de données circulaire


3
Exemple : yn  bk xn  k , avec les registres A5 et B5 du
k 0
DSP tels que B5  b0 et A5  x[n]

*B5++ b3 *A5++ x-3


*B5++ b2 *A5++ x-2
*B5++ b1 *A5++ x-1
*B5+? b0 *A5+? x0

y0 = b3*x-3 + b2*x-2 + b1*x-1 + b0*x0


y[n]

n
0 1 2
Mounir Boukadoum, Michaël Ménard et sources sur Internet
76

38
MIC4220, Traitement numérique des signaux

Usage d’un tampon de données circulaire


X1 remplace X-3
qui n’est plus
requis

*B5 b3 *A5 x1
*B5 b2 *A5 x-2
*B5 b1 *A5 x-1
*B5 b0 *A5 x0

y0 = b3*x-3 + b2*x-2 + b1*x-1 + b0*x0


y1 = b3*x-2 + b2*x-1 + b1*x0 + b0*x1
y[n]

time
0 1 2
Mounir Boukadoum, Michaël Ménard et sources sur Internet
77

MIC4220, Traitement numérique des signaux

Usage d’un tampon de données circulaire


X2 remplace X-2
qui n’est plus
requis
*B5 b3 *A5 x1
*B5 b2 *A5 x2
*B5 b1 *A5 x-1
*B5 b0 *A5 x0

y0 = b3*x-3 + b2*x-2 + b1*x-1 + b0*x0


y1 = b3*x-2 + b2*x-1 + b1*x0 + b0*x1
y2 = b3*x-1 + b2*x0 + b1*x1 + b0*x2
y[n]

time
0 1 2
Mounir Boukadoum, Michaël Ménard et sources sur Internet
78

39
MIC4220, Traitement numérique des signaux

Code avec adressage circulaire


/* version plus obscure, mais beaucoup plus rapide *
* le nombre de points doit être une puissance de 2 */

interrupt void c_int11() //ISR (code du filtre)


{
int i,iCircBuf;
int * ph;
int yn = 0;
static int endBuf= N-1;
xin[endBuf] = input_sample(); // La donnée courante va à la fin du tampon
iCircBuf= ++endBuf; // Début du tampon circulaire juste après
endBuf &=N_MASK; // endBuf= endBuf%N pour la prochaine donnée

// Dans la boucle, les indices de h diminuent et ceux de xin augmentent


ph=&h[N-1];
for (i=N; i>0; i--){
iCircBuf &= N_MASK;
yn += (long)(*ph--)* xin[iCircBuf++]; // calculs sur 32 bits
}

output_sample(yn >> 15); // on normalise le résultat à 16 bits


return
}

Mounir Boukadoum, Michaël Ménard et sources sur Internet


79

MIC4220, Traitement numérique des signaux

Un code plus efficace


/* Variante sans adressage de tableau */

interrupt void c_int11() //ISR (code du filtre)

int i;
int yn = 0;
const int * ph = &h[N-1];
static int * px = &xin[0]

*px = input_sample(); // La donnée courante va à la fin du tampon


px++;
px &=N_MASK; // endBuf= endBuf%N pour la prochaine donnée

// Dans la boucle, les indices de h diminuent et ceux de xin augmentent


i=N;
do{
px &= N_MASK;
yn += (long)(*ph--)*(*px++); // calculs sur 32 bits
} while (--i > 0);

output_sample(yn >> 15); // on normalise le résultat à 16 bits


return
}
Mounir Boukadoum, Michaël Ménard et sources sur Internet
80

40
MIC4220, Traitement numérique des signaux

Sommaire
• Les filtres FIR sont stables par défaut.
• Lorsque les coefficients sont réels et symétriques ou
antisymétriques, la réponse en phase est linéaire
– Filtres causals
• Plusieurs méthodes sont possibles pour la conception :
– Méthode des fenêtres
– Échantillonnage en fréquence
– Filtres « equiripple »

Mounir Boukadoum, Michaël Ménard et sources sur Internet


81

MIC4220, Traitement numérique des signaux

Sommaire
• L’algorithme Parks-McClellan permet d’obtenir l’équation
optimale d’un filtre RIF, en distribuant l’erreur d’ondulation
de manière égale dans le spectre des fréquences (equiripple)
pour un ordre donné.
– L’optimisation est garantie par le théorème d’alternance.
• Procédure de conception :
– Normalise les fréquences (avec fe/2)
– Trouve les poids
– Algorithme de Remez
– Inverse TFD
• La symétrie de la réponse impulsionnelle permet de réduire le
nombre de multiplication lors de la mise en œuvre.

Mounir Boukadoum, Michaël Ménard et sources sur Internet


82

41
MIC4220, Traitement numérique des signaux

Sommaire
Méthode Fenêtre Échantillonnage Parks-McClellan
Type de filtre 1. Passe-bas, passe-haut, 1. Tous types de filtre 1. Tous types de filtre
passe-bande, Coupe- 2. Équations valide 2. Équations valide
bande pour des réponses pour des réponses
2. Non applicable à des arbitraires arbitraires
réponses arbitraires
Phase linéaire Oui Oui Oui
Spécification des Utilisé pour déterminer Doit être vérifié après Nécessaire pour
ondulations et de l’ordre du filtre et les chaque itération l’algorithme mais doit
l’atténuation fréquences de coupure être vérifié après chaque
itération
Complexité de Modéré Simple Compliqué
l’algorithme
Outils de conception Calculatrice Calculatrice Logiciel
requis

Mounir Boukadoum, Michaël Ménard et sources sur Internet


83

MIC4220, Traitement numérique des signaux

Prochain cours
• Problèmes
– 7.1, 7.3, 7.5, 7.7, 7.9, 7.11, 7.13, 7.17, 7.34, 7.35
• Lecture
– Chapitres 7 et 8 de Tan

Mounir Boukadoum, Michaël Ménard et sources sur Internet


84

42