Université Abou Bekr Belkaid – Tlemcen Année universitaire 2021/2022
Faculté de Technologie ; Département de Télécommunications
Niveau : M1 TTL : TR 743 Enseignant : Dr M. BOUSAHLA
TP N°5
Analyse de filtres numériques RII et RIF
Objectif du TP
Nous allons étudier dans ce TP, l’analyse de filtres numériques à réponses impulsionnelles finies
et infinies à l’aide du logiciel Matlab.
Analyser le comportement d'un filtre numérique dont la fonction de transfert H(z) (ou l'équation
de récurrence) est connue c’est déterminer la réponse temporelle et la réponse fréquentielle à une
entrée fixée (impulsion, échelon …) ainsi que les caractéristiques de ce filtre.
I. Rappel
I.1 Filtres numériques
Un filtre numérique réalise un calcul sur une séquence de nombres introduite à son entrée
et fournit , à sa sortie , une séquence numérique modifiée de sorte à répondre à des
contraintes données ( réponse en amplitudes , en phase … ).
L’outil d’étude des filtres numériques est la transformée en z. Elle permet de modéliser les filtres
numériques sous la forme de fonctions de transfert polynômiale, facilitant leur étude.
𝑥𝑛 𝐹𝑖𝑙𝑡𝑟𝑒 𝑛𝑢𝑚é𝑟𝑖𝑞𝑢𝑒 ∶ 𝐿 𝑦𝑛
Dr M. BOUSAHLA
1
Le filtrage numérique se pratique sur un système numérique tel qu’un ordinateur (utilisation de
logiciels, programmation C/C++.), un Processeur de Traitement de Signal (DSP) ou autre
composant numérique (microcontrôleur, FPGA, etc).
I.2 Caractérisation des filtres numériques
Les filtres numériques sont caractérisés par :
- Equation aux différences : relation entrée-sortie dans le domaine temporel.
- Fonction de transfert en Z : H(z)
- Réponse impulsionnelle notée h(n) : la réponse à une entrée impulsion.
I.3 Filtres numériques à réponse impulsionnelle infinie (RII)
Un filtre numérique à réponse impulsionnelle infinie a une rétroaction de la sortie vers l'entrée,
et en général sa sortie est fonction des échantillons de sortie précédents et des échantillons
d'entrée présents et passés, comme le décrit l'équation suivante :
𝑁 M
y(m) = ∑ 𝑎𝑘 𝑦(𝑚 − 𝑘) + ∑ 𝑏𝑘 𝑥(𝑚 − 𝑘) (1)
𝑘=1 𝑘=0
En théorie, lorsqu'un filtre RII est excité par une impulsion, la sortie persiste pour toujours. Ainsi,
ce type de filtre est connu sous le nom de filtre à réponse impulsionnelle à durée infinie (IIR). Les
autres noms pour un filtre RII comprennent les filtres récursif, les filtres à pôle zéro et les filtres
à moyenne mobile auto-régressive (ARMA).
La caractéristique du filtre est entièrement déterminée par ses coefficients {𝑎𝑘 , 𝑏𝑘 }, qui sont des
constantes calculées pour obtenir une réponse en fréquence spécifiée. Deux filtres RII se
distinguent uniquement par les valeurs de leurs coefficients.
La fonction de transfert du filtre, obtenue en prenant la transformée en z de l'équation de
différence (1), est donnée par :
Y(z) ∑M
𝑘=0 𝑏𝑘 𝑧
−k
H(z) = = (2)
X(z) 1 − ∑𝑁
𝑘=1 𝑎𝑘 𝑧
−k
Dr M. BOUSAHLA
2
L'ordre du filtre est égal au sup(N,M).
I.4 Filtres à réponse impulsionnelle finie (RIF)
La relation entrée-sortie d’un filtre RIF est donnée par :
M
y(m) = ∑ 𝑏𝑘 𝑥(𝑚 − 𝑘) (3)
𝑘=0
La sortie y(m) d'un filtre RIF est uniquement fonction du signal d'entrée x(m).
L'ordre du filtre est égal à M.
La réponse d'un tel filtre à une impulsion (réponse impulsionnelle) consiste en une séquence finie
de M+1 échantillons. Le filtre est donc connu sous le nom de filtre à réponse impulsionnelle à
durée finie (RIF). D'autres noms pour un filtre RIF comprennent le filtre tout zéro, le filtre à
action directe ou le filtre à moyenne mobile (MA).
La fonction de transfert du filtre, obtenue en prenant la transformée en z de l'équation de
différence (3), est donnée par :
M
Y(z)
H(z) = = ∑ 𝑏𝑘 𝑧 −k (4)
X(z)
𝑘=0
I.5 Réponse fréquentielle d’un filtre numérique
La réponse fréquentielle d’un filtre numérique notée 𝐻(𝑒 𝑗𝜔 ) est obtenue à partir de 𝐻(𝑍) en
posant :
𝑧 = 𝑒 𝑗𝜔
𝐻(𝑒 𝑗𝜔 ) = 𝐻(𝑍)|𝑧=𝑒 𝑗𝜔
Cette réponse fréquentielle est à valeurs complexes. Elle peut donc s’écrire :
𝑗𝜔 ))
𝐻(𝑒 𝑗𝜔 ) = |𝐻(𝑒 𝑗𝜔 )| 𝑒 𝑗 arg(𝐻(𝑒
La réponse d’un filtre numérique est périodique de période égale à 1 en fréquence normalisée.
Cette réponse sera tracée pour l’intervalle de fréquence : 0 et ½
Dr M. BOUSAHLA
3
I.6 MANIPULATION DES FILTRES SOUS MATLAB
Sous matlab, un filtre numérique est représenté par deux vecteurs contenant les coefficients des
puissances de 𝑧 −1 , des polynômes numérateur et dénominateur de sa fonction de transfert en z.
Un filtre RII de fonction de transfert en z H(z) donnée par :
Y(z) ∑M
𝑘=0 𝑏𝑘 𝑧
−k
H(z) = =
X(z) 1 − ∑𝑁
𝑘=1 𝑎𝑘 𝑧
−k
H(z) peut aussi s’écrire sous la forme :
Y(z) ∑M
𝑘=0 𝑏𝑘 𝑧
−k
H(z) = =
X(z) 1 + ∑𝑁
𝑘=1 𝑎𝑘 𝑧
−k
sera représentée sous Matlab par :
𝑁𝑚 = [𝑏0 𝑏1 𝑏2 ⋯ 𝑏𝑀 ]
𝐷𝑛 = [1 𝑎1 𝑎2 ⋯ 𝑎𝑁 ]
Un filtre RIF de fonction de transfert en z H(z) donnée par :
M
Y(z)
H(z) = = ∑ 𝑏𝑘 𝑧 −k
X(z)
𝑘=0
sera représentée sous Matlab par :
𝑁𝑚 = [𝑏0 𝑏1 𝑏2 ⋯ 𝑏𝑀 ]
𝐷𝑛 = [1 0 0 ⋯ 0]
La commande impz permet de calculer la réponse impulsionnelle du filtre.
[ℎ, 𝑛] = 𝑖𝑚𝑝𝑧(𝑁𝑚 , 𝐷𝑛)
La commande filter permet de calculer la réponse temporelle du filtre à une entrée quelconque.
𝑦𝑛 = 𝑓𝑖𝑙𝑡𝑒𝑟(𝑁𝑚 , 𝐷𝑛, 𝑥𝑛)
La commande freqz permet de calculer la réponse fréquentielle du filtre.
Dr M. BOUSAHLA
4
[𝐻, 𝑓] = 𝑓𝑟𝑒𝑞𝑧(𝑁𝑚 , 𝐷𝑛, 𝑁, 𝐹𝑒)
Où 𝐹𝑒 est la fréquence d’échantillonnage et N est le nombre de points de calcul de la réponse
𝐹
fréquentielle entre [0, 2𝑒 ].
II. TRAVAIL DEMANDÉ SOUS MATLAB
II.1 Écrire le programme Matlab permettant de calculer et de tracer la réponse impulsionnelle
(fonction impz), la réponse fréquentielle en module et en phase (fonction freqz), le temps de
propagation de groupe (fonction grpdelay) et les pôles et les zéros dans le plan complexe (fonction
pzmap et zplane), pour chacun des filtres suivants :
𝒙(𝒏) + 𝒙(𝒏 − 𝟏)
𝑭𝒊𝒍𝒕𝒓𝒆 𝟏 ∶ 𝒚(𝒏) =
𝟐
𝒙(𝒏) − 𝒙(𝒏 − 𝟏)
𝑭𝒊𝒍𝒕𝒓𝒆 𝟐 ∶ 𝒚(𝒏) =
𝟐
𝑭𝒊𝒍𝒕𝒓𝒆 𝟑 ∶ 𝒚(𝒏) = 𝟎. 𝟏 𝒙(𝒏 − 𝟏) + 𝟎. 𝟐 𝒙(𝒏 − 𝟐) + 𝟎. 𝟏 𝒙(𝒏 − 𝟑)
𝑭𝒊𝒍𝒕𝒓𝒆 𝟒 ∶ 𝒚(𝒏) = 𝟎. 𝟏 𝒙(𝒏) − 𝟎. 𝟑 𝒙(𝒏 − 𝟐) + 𝟎. 𝟓 𝒙(𝒏 − 𝟑) − 𝟎. 𝟑 𝒙(𝒏 − 𝟒) + 𝟎. 𝟏 𝒙(𝒏 − 𝟔)
𝑭𝒊𝒍𝒕𝒓𝒆 𝟓 ∶ 𝒚(𝒏) = 𝒙(𝒏) + 𝟎. 𝟓 𝒚(𝒏 − 𝟏)
𝑭𝒊𝒍𝒕𝒓𝒆 𝟔 ∶ 𝒚(𝒏) = 𝒙(𝒏) − 𝟎. 𝟓 𝒚(𝒏 − 𝟏)
𝑭𝒊𝒍𝒕𝒓𝒆 𝟕 ∶ 𝒚(𝒏) = 𝒙(𝒏 − 𝟏) + 𝟎. 𝟓 𝒚(𝒏 − 𝟏)
𝑭𝒊𝒍𝒕𝒓𝒆 𝟖 ∶ 𝒚(𝒏) = 𝒚(𝒏 − 𝟏) − 𝟎. 𝟐𝟓 𝒚(𝒏 − 𝟐) + 𝒙(𝒏) + 𝒙(𝒏 − 𝟏)
Commenter les résultats obtenus : type de filtre, réponse fréquentielle (passe bas, passe haut, …),
phase du filtre, …
II.2 En utilisant la fonction filter de Matlab, calculer et tracer le signal de sortie 𝑦(𝑛) du filtre 3
lorsque l’entrée est :
1 𝑛 = 0,1
𝑥(𝑛) = {
0 𝑎𝑖𝑙𝑙𝑒𝑢𝑟𝑠
Dr M. BOUSAHLA
5
Calculer théoriquement la sortie du filtre pour 𝑛 = 0 … 5 et vérifier votre calcul avec le résultat
donné par la fonction filter.
II.3 Calculer la sortie du filtre 1 en utilisant la fonction filter de Matlab pour un signal sinusoïdal
en entrée donné par :
𝑥1 = 1.5 ∗ sin(2 ∗ 𝑝𝑖 ∗ 𝐹1 ∗ 𝑡) 𝑎𝑣𝑒𝑐 𝐹1 = 300 𝐻𝑧 𝑒𝑡 𝐹𝑒 = 10 𝑘𝐻𝑧
Tracer les deux signaux d’entrée et de sortie du filtre sur la même figure. Commenter.
II.4 Toujours en utilisant le même filtre, calculer et tracer le signal de sortie en utilisant la
fonction filter de Matlab pour le signal d’entrée suivant :
𝑥 = 𝑥1 + 0.5 ∗ sin(2 ∗ 𝑝𝑖 ∗ 𝐹2 ∗ 𝑡) 𝑎𝑣𝑒𝑐 𝐹2 = 4500 𝐻𝑧
Commenter.
Dr M. BOUSAHLA