6-Mic4220 Rif PDF
6-Mic4220 Rif PDF
6-Mic4220 Rif PDF
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
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
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
• Diagramme de flux
x[n]
3
MIC4220, Traitement numérique des signaux
Origine du nom
N 1
y n bk xn k
k 0
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
4
MIC4220, Traitement numérique des signaux
Réponse en fréquence
N 1
• Puisque H z hk z k
k 0
• Puisque e-j2k = 1, on a:
2
2 N 1 jn Te N 1
H hn e Te hn e jnTe
Te n 0 n 0
5
MIC4220, Traitement numérique des signaux
y[n]
fréq fréq
fe/2 fe/2
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 :
hn e jnTe hN 1 ne j N 1 n Te , ou |h[n]| = |h[N-1-n]|
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 hi z
i 0
i
0 1 n-1 n n+1 2n-1 2n
n
N 2 n 1
H z hi z
i 0
i
n
0 1 n n+1 2n 2n+1
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=ejTe
– Dans les deux cas de symétrie, la réponse en phase est (ω) ωTe,
c.-à-d. de la forme kω
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
8
MIC4220, Traitement numérique des signaux
Paramètres à considérer
|H(f)| pass-band stop-band
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)
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
10
MIC4220, Traitement numérique des signaux
2 f c sin nc
, n 0,1, 2...
nc
Séquence infinie! Il faut la tronquer pour la rendre réalisable.
Mounir Boukadoum, Michaël Ménard et sources sur Internet
21
Passe-bas
pour
Passe-haut
pour
Passe-bande
pour
Coupe-bande pour
11
MIC4220, Traitement numérique des signaux
0.5 1
10
0
0
10
-0.5
-1
-1 10
0 100 200 300 0 50 100 150
12
MIC4220, Traitement numérique des signaux
Exemple
• Réponse impulsionnelle du filter passe bas 0.002680185144672
-0.001175459081146
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
Fenêtres communes
• (-M ≤ n ≤ M)
– Rectangulaire: w𝑛 1
– Hanning: w𝑛 0,5 0,5 cos
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
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 β.
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
• 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)
β=6
M = 20
15
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
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𝜋
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
Exemple: Trombone
4. La fonction de transfert est:
18
MIC4220, Traitement numérique des signaux
• N=2
Exemple: Trombone
Pas fameux!
• N=200
Exemple: Trombone
19
MIC4220, Traitement numérique des signaux
Exemple: Trombone
N=200
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.
20
MIC4220, Traitement numérique des signaux
Exemple: Passe-haut
Exemple: Passe-haut
21
MIC4220, Traitement numérique des signaux
Exemple: Passe-haut
22
MIC4220, Traitement numérique des signaux
close all;
clear all;
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
23
MIC4220, Traitement numérique des signaux
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
24
MIC4220, Traitement numérique des signaux
Échantillonnage en fréquence
On a, par TFD inverse (et en posant Te=1) :
1
ℎ𝑛 𝐻𝑘𝑊
𝑁
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
25
MIC4220, Traitement numérique des signaux
26
MIC4220, Traitement numérique des signaux
27
MIC4220, Traitement numérique des signaux
28
MIC4220, Traitement numérique des signaux
Algorithme Parks-McClellan
Estimation de (M+2) fréquences d’extrême
Non
Changé
Vérifie si les fréquences d’extrême ont changé
Inchangé
Meilleur approximation
29
MIC4220, Traitement numérique des signaux
𝛿 10 1 et 𝛿 10
Exemple
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 𝑊
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
31
MIC4220, Traitement numérique des signaux
Exemple
10
-10
-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)
Exemple
• Passe-bande
• Transmission:
1 500-3 000 Hz
• Transition: 200 Hz
• Échantillonnage: 10 000 Hz
• Ondulation: 2 dB
• Atténuation: 20 dB
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 𝑊
Exemple
33
MIC4220, Traitement numérique des signaux
FDATool de matlab
b b b b
0 1 2 N-1
+ + + y(n)
34
MIC4220, Traitement numérique des signaux
• Forme directe :
N 1
y n hn xn hk xn k
k 0
-1 -1 -1
x(n) z z z
b b b b
0 1 2 N-1
+ + + y(n)
k 0
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
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)
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
36
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 ...
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
}
n
0 1 2
Mounir Boukadoum, Michaël Ménard et sources sur Internet
76
38
MIC4220, Traitement numérique des signaux
*B5 b3 *A5 x1
*B5 b2 *A5 x-2
*B5 b1 *A5 x-1
*B5 b0 *A5 x0
time
0 1 2
Mounir Boukadoum, Michaël Ménard et sources sur Internet
77
time
0 1 2
Mounir Boukadoum, Michaël Ménard et sources sur Internet
78
39
MIC4220, Traitement numérique des signaux
int i;
int yn = 0;
const int * ph = &h[N-1];
static int * px = &xin[0]
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 »
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.
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
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
42