Synthése de Filtres Numériques RIF

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 26

Compte rendu du TP :

Synthèse de filtres
numériques RIF
Le 08/03/2022

Enseignés par : Mme. KHOUJA Intissar

Année universitaire : 2021/2022


1|Page

I. But :
Ce TP est dédié aux filtres RIF ou filtres à Réponse Impulsionnelle
Finie. Ces derniers sont des filtres non-récursifs puisqu’ils ne
représentent pas une boucle de réaction de sortie vers l’entrée.

L’objectif de ce TP est donc de comprendre la méthode de synthèse de


ce type de filtres, l’influence des paramètres tel que l’ordre et la fenêtre
de troncature ainsi qu’à la pondération entre filtre RII et RIF.

II. Filtres à Réponse Impulsionnelles Finie (RIF) :


1.définition :
En traitement du signal, un filtre à réponse impulsionnelle finie ou filtre
RIF (en anglais Finite Impulse Response filter ou FIR filter) est un
filtre dont la réponse impulsionnelle est de durée finie.

On parle le plus souvent de filtre RIF pour des filtres à temps discret.
Un filtre numérique RIF est caractérisé par une réponse uniquement
basée sur un nombre fini de valeurs du signal d'entrée. Par conséquent,
quel que soit le filtre, sa réponse impulsionnelle sera stable et de durée
finie, dépendante du nombre de coefficients du filtre. Les termes de
filtre non récursif ou de filtre à moyenne mobile sont parfois employés
pour nommer la même classe de filtres, bien que l'expression de filtre à
moyenne mobile désigne en premier lieu les filtres passe-bas.

Parmi les filtres linéaires, les filtres à réponse impulsionnelle finie sont
opposés aux filtres à réponse impulsionnelle infinie (filtre RII) qui ne
peuvent être réalisés que par une implémentation récursive.

Ecole nationale des Ingénieurs de Monastir


2|Page

Un filtre RIF présente l’inconvénient de nécessiter un grand nombre de


coefficients pour obtenir les mêmes caractéristiques fréquentielles.

Ce dernier est défini par la fonction de transfert suivante :


𝑁

𝐻(𝑧) = ∑ ℎ(𝑖) 𝑧 −𝑖
𝑖=0

Avec h(i) est la réponse impulsionnelle.

Le caractère non récursif apparait dans l’expression temporelle reliant


la sortie à l’entrée et à la réponse impulsionnelle du filtre :
𝑁

𝑦(𝑛) = ∑ ℎ(𝑖) 𝑥(𝑛 − 𝑖)


𝑖=0

2.Synthése :
Les filtres RIF ne sont réalisables que dans le domaine discret.
Il existe deux principales méthodes qui permettent de déterminer les
coefficients de la fonction de transfert :
a. Synthèse par développement en série de Fourier :
On considère que la réponse en fréquence désirée est une fonction
périodique de période fe. Elle peut donc être décomposée en série de
Fourier, dont les coefficients permettront d’obtenir ceux du filtre
recherché.
On se donne un gabarit fréquentiel H(f) à respecter. On calcule la
réponse impulsionnelle h(i) du filtre recherché par transformée de
Fourier inverse de ce gabarit .il s’agit alors de faire une troncature afin
de garder un nombre fini N d’éléments dans h(i) qui seront les
coefficients du filtre, puis d’effectuer un décalage afin de rendre le

Ecole nationale des Ingénieurs de Monastir


3|Page

filtre causal c’est-à-dire physiquement réalisable. Les étapes de la


synthèse du filtre RIF est illustrée ci-dessous :

b. Synthèse avec des méthodes d’optimisation :


Ces méthodes consistent en la minimisation d’un critère d’erreur. La
première méthode consiste à minimiser au sens des moindres carrés la
distance entre le gabarit H(f) désiré et le gabarit du filtre obtenu par la
méthode précédente. L’objectif de la seconde méthode d’optimisation
est d’obtenir la meilleure approximation du gabarit H(f) présentant des
ondulations d’amplitude constante.

III. Travail à effectuer :


1.Synthése de Filtres Numériques RIF par la méthode
de la fenêtre :
Cet exercice a pour but :
Calcul de plusieurs filtres numériques RIF par la méthode de la
fenêtre Matlab « FIR1 » et échantillonnage en fréquence « FIR2 ».
Exercice 1 :

Ecole nationale des Ingénieurs de Monastir


4|Page

Traçage de plusieurs fenêtres standards, leur longueur étant de N=50,


avec la fonction « stem »

1.fenêtre rectangulaire avec « rectwin » :

clear all;close all; clc;


N=50;
r=rectwin(N);
figure(1);
stem(r);
title('fenetre rectangulaire');

2.fenêtre de Hamming avec « hamming » :


clear all;close all; clc;

Ecole nationale des Ingénieurs de Monastir


5|Page

N=50;
h=hamming(N);
figure(2);
stem(h);
title('fenetre de hamming');

3.fenêtre de Kaiser :
clear all;close all; clc;
N=50;
k1=kaiser(N,1);
k2=kaiser(N,9);
figure(3);
stem(k1);
hold on

Ecole nationale des Ingénieurs de Monastir


6|Page

stem(k2);
title('fenetre de kaiser');
legend('betta=1','betta=9');

Exercice 2 :
1.Calcul d’un simple filtre passe bas avec la fonction « FIR1 »
fp=6000;
fs=10000;
fe=40000;
delta1=1;
delta2=-35;
calcul de wn :
fp=6000;
fs=10000;

Ecole nationale des Ingénieurs de Monastir


7|Page

fe=40000;
delta1=1;
delta2=-35;
wn=(fs+fp)/fe

On appelle ordre optimal Nopt d’un filtre numérique, l’ordre minimal


tel que le gabarit fréquentiel soit respecté.
2. synthèse du filtre RIF à l’aide de la fenêtre rectangulaire en faisant
varier l’ordre du filtre :
fp=6000;
fs=10000;
fe=40000;
delta1=1;
delta2=-35;
wn=(fs+fp)/fe;
o10=fir1(10,wn,rectwin(10+1));
figure(1)
stem(o10)
hold on
o20=fir1(20,wn,rectwin(20+1));
figure(2)
stem(o20)
hold on
o50=fir1(50,wn,rectwin(50+1));
figure(3)
stem(o50)
hold on
o100=fir1(100,wn,rectwin(100+1));
figure(4)
stem(o100)
hold on

Ecole nationale des Ingénieurs de Monastir


8|Page

3.comparaison de l’allure des ondulations en bande passante et en bande


affaiblie :
[h10,f10]=freqz(o10,1,512,fe)
amp10=abs(h10);
phase10=angle(h10);
[h20,f20]=freqz(o20,1,512,fe)
amp20=abs(h20);
phase20=angle(h20);
[h50,f50]=freqz(o50,1,512,fe)
amp50=abs(h50)
phase50=angle(h50);
[h100,f100]=freqz(o100,1,512,fe)
amp100=abs(h100);
phase100=angle(h100);
figure(4)

Ecole nationale des Ingénieurs de Monastir


9|Page

plot(f10,20*log10(amp10));
hold on
plot(f20,20*log10(amp20));
hold on
plot(f50,20*log10(amp50));
hold on
plot(f100,20*log10(amp100));
legend('n=10', 'n=20', 'n=50' ,'n=100')
hold on
gab1=[delta1*ones(fs,1);delta2*ones((fe/2)-
fs,1)];
gab2=[-3*ones(fp,1);-120*ones((fe/2)-fp,1)];
plot(gab1)
plot(gab2)

Ecole nationale des Ingénieurs de Monastir


10 | P a g e

4.Synthése du filtre RIF à l’aide de la fenêtre Hamming :


hm20=fir1(20,wn,hamming(21));

5.Synthése du filtre RIF à l’aide de la fenêtre Kaiser :


ka9=fir1(20,wn,kaiser(21,9));
ka21=fir1(20,wn,kaiser(21,21));

6.Traçage sur le même système d’axes les quatre réponses


fréquentielles obtenues par les quatre types de fenêtres :

[hm10,fm10]=freqz(hm20,1,512,fe)
amp10h=abs(hm10);
phase10m=angle(hm10);

[k9,f9]=freqz(ka9,1,512,fe)
amp9=abs(k9);
phase9=angle(k9);
[k21,f21]=freqz(ka21,1,512,fe)
amp21=abs(k21)
phase21=angle(k21) ;
figure(5)
plot(f20,20*log10(amp20));
hold on
plot(fm10,20*log10(amp10h));
hold on
plot(f9,20*log10(amp9));
hold on
plot(f21,20*log10(amp21));
hold on
plot(gab1)
plot(gab2)
legend('rectwin','hamming','kaiser
beta=9','kaiser beta=21')

Ecole nationale des Ingénieurs de Monastir


11 | P a g e

Interprétations :
Le filtre qui respecte mieux le gabarit est celui de hamming. Si on
augmente encore l’ordre du filtre, sa réponse s’améliorera encore
mieux. On note également que les autres filtres ne sont pas fidèles au
gabarit.
7.temps de propagation de groupe pour chacun des filtres synthétisés :
figure(6)
subplot(2,2,1)
grpdelay(hm20,1,512,fe);
title('hamming')
subplot(2,2,2)
grpdelay(ka9,1,512,fe);
title('kaiser9')

Ecole nationale des Ingénieurs de Monastir


12 | P a g e

subplot(2,2,3)
grpdelay(ka21,2,512,fe);
title('kaiser21')
subplot(2,2,4)
grpdelay(o20,1,512,fe);
title('rectwin')

Nous notons que les vitesses de groupe sont constantes.


2.Synthése de Filtres Numériques RIF par la méthode
d’optimisation :
Le but de cet exercice est de faire le calcul direct de filtre numérique
RIF par les méthodes d’optimisation.

Ecole nationale des Ingénieurs de Monastir


13 | P a g e

Exercice 1 :
Calcul d’un filtre passe bas avec la fonction « FIRPM » satisfaisant les
contraintes suivantes :

BP : de 0 à 6Khz avec une ondulation maximale de 1dB


BA : au-delà de 10 Khz avec une atténuation minimale de 35 dB
Fe=40Khz
1. Détermination des vecteurs d’entrée f et a :
fe=40000;
delta1=1;
delta2=-35;
fs=10000;
fp=6000;

f=[0 6000 10000 fe/2]/20000


a=[1 1 0 0]
2. Calcul des filtres avec la fonction « FIRPM »:
fe=40000;
delta1=1;
delta2=-35;
fs=10000;
fp=6000;
f=[0 6000 10000 fe/2]/20000;
a=[1 1 0 0];
p20=firpm(20,f,a)
p50=firpm(50,f,a)
p100=firpm(100,f,a)

Ecole nationale des Ingénieurs de Monastir


14 | P a g e

3. Traçage des réponses fréquentielles de ces filtres dans la même


fenêtre et faire la comparaison :

[h20,f20]=freqz(p20,1,512,fe)
amp20=abs(h20);
phase20=angle(h20);
[h50,f50]=freqz(p50,1,512,fe)
amp50=abs(h50);
phase50=angle(h50);
[h100,f100]=freqz(p100,1,512,fe)

Ecole nationale des Ingénieurs de Monastir


15 | P a g e

amp100=abs(h100)
phase100=angle(h100);
figure(4)
plot(f20,20*log10(amp20));
hold on
plot(f50,20*log10(amp50));
hold on
plot(f100,20*log10(amp100));
hold on
gab1=[delta1*ones(fs,1);delta2*ones((fe/2)-
fs,1)];
gab2=[-3*ones(fp,1);-120*ones((fe/2)-fp,1)];
plot(gab1)
plot(gab2)
legend('n=20','n=50','n=100')

Ecole nationale des Ingénieurs de Monastir


16 | P a g e

Interprétations :
Nous notons que pour n=100 le filtre ne correspond pas au gabarit,
contrairement à la méthode de la fenêtre qui ne tend vers l’idéalité que
pour un ordre important.

Exercice 2 :
Calcul d’un filtre passe bande classique satisfaisant les contraintes de
réponse en amplitude définies comme suit :

fe=40000;
fs1=5000;
fs2= 12000;
fp1=6000;
fp2=10000;
d1=1;
d2=35;
1. Calcul de a et f :
f=[0 5000 6000 10000 12000 fe/2]/(fe/2);
a=[0 0 1 1 0 0];
2.Calcul des filtres avec la fonction « FIRPM » :
p20=firpm(20,f,a);
p50=firpm(50,f,a);
p100=firpm(100,f,a);
2. Traçage des réponses fréquentielle de ces filtres dans la même
fenêtre et les comparer :
fe=40000;
fs1=5000;
fs2= 12000;
fp1=6000;
fp2=10000;
d1=1;
d2=35;
f1=[0 5000 6000 10000 12000 fe/2]/(fe/2);
a1=[0 0 1 1 0 0];

Ecole nationale des Ingénieurs de Monastir


17 | P a g e

p20=firpm(20,f1,a1);
p50=firpm(50,f1,a1);
p100=firpm(100,f1,a1);
[h20,f20]=freqz(p20,1,512,fe);
amp20=abs(h20);
[h50,f50]=freqz(p50,1,512,fe);
amp50=abs(h50);
[h100,f100]=freqz(p100,1,512,fe);
amp100=abs(h100);
figure(5)
plot(f20,-20*log10(amp20));
hold on
plot(f50,-20*log10(amp50));
hold on
plot(f100,-20*log10(amp100));
hold on;
gab1=[d2*ones(fs1,1);0*ones(fs2-
fs1,1);ones(fe/2-fs2,1)*d2];
gab2=[400*ones(fp1,1);ones(fp2-
fp1,1)*d1;ones(fe/2-fp2,1)*400];
plot(gab1);
plot(gab2);

Ecole nationale des Ingénieurs de Monastir


18 | P a g e

legend('n=20','n=50','n=100'); hold off

Interprétations :
Nous remarquons que le filtre d’ordre n=100 est le plus adéquat,
respecte le mieux le gabarit
3.Comparaison des filtres RII et RIF :
Synthèse d’un filtre numérique passe bande satisfaisant les contraintes
de réponse en amplitude définies dans l’exercice précédent
fe=40000;
fs1=5000;
fs2= 12000;
fp1=6000;
fp2=10000;
d1=1;
d2=35;
fs= [fs1 fs2]/((fe/2));
fp= [fp1 fp2]/((fe/2));
Calcul d’un filtre RIF :
1.dtermination de l’argument de l’entrée wn :

Ecole nationale des Ingénieurs de Monastir


19 | P a g e

fe=40000;
fs1=5000;
fs2= 12000;
fp1=6000;
fp2=10000;
d1=1;
d2=35;
fs= [fs1 fs2]/((fe/2));
fp= [fp1 fp2]/((fe/2));
wn=(fs+fp)/2

2.Synthése du filtre RIF à l’aide de la fenêtre rectangulaire en faisant


varier l’ordre du filtre :
o20=fir1(20,wn,rectwin(20+1))
o50=fir1(50,wn,rectwin(50+1))
o100=fir1(100,wn,rectwin(100+1))
[h20,f20]=freqz(o20,1,512,fe)
amp20=abs(h20);
phase20=angle(h20);
[h50,f50]=freqz(o50,1,512,fe)
amp50=abs(h50)
phase50=angle(h50);
[h100,f100]=freqz(o100,1,512,fe)
amp100=abs(h100);
phase100=angle(h100);
figure(5)
plot(f20,-20*log10(amp20));
hold on
plot(f50,-20*log10(amp50));
hold on
plot(f100,-20*log10(amp100));
hold on
gab1=[d2*ones(fs1,1);0*ones(fs2-
fs1,1);ones(fe/2-fs2,1)*d2];

Ecole nationale des Ingénieurs de Monastir


20 | P a g e

gab2=[400*ones(fp1,1);ones(fp2-
fp1,1)*d1;ones(fe/2-fp2,1)*400];
plot(gab1)
plot(gab2)
legend( 'n=20', 'n=50' ,'n=100')

L’ordre minimal qui satisfait les spécifications est 20

Calcul d’un filtre RII :


3.trouver l’ordre minimal du filtre elliptique :
[n4,fn4] = ellipord(fp,fs,d1,d2);
L’ordre minimal elliptique est 4

4.Synthése du filtre RII :


[num4, den4]=ellip( n4,d1,d2,fn4);

5.Traçage des quatre réponses fréquentielles :


fe=40000;
fs1=5000;

Ecole nationale des Ingénieurs de Monastir


21 | P a g e

fs2= 12000;
fp1=6000;
fp2=10000;
d1=1;
d2=35;
fs= [fs1 fs2]/((fe/2));
fp= [fp1 fp2]/((fe/2));
wn=(fs+fp)/2
o20=fir1(20,wn,rectwin(20+1))
o50=fir1(50,wn,rectwin(50+1))
o100=fir1(100,wn,rectwin(100+1))
[h20,f20]=freqz(o20,1,512,fe)
amp20=abs(h20);
phase20=angle(h20);
[h50,f50]=freqz(o50,1,512,fe)
amp50=abs(h50)
phase50=angle(h50);
[h100,f100]=freqz(o100,1,512,fe)
amp100=abs(h100);
phase100=angle(h100);
figure(5)
plot(f20,-20*log10(amp20));
hold on
plot(f50,-20*log10(amp50));
hold on
plot(f100,-20*log10(amp100));
hold on
gab1=[d2*ones(fs1,1);0*ones(fs2-
fs1,1);ones(fe/2-fs2,1)*d2];
gab2=[400*ones(fp1,1);ones(fp2-
fp1,1)*d1;ones(fe/2-fp2,1)*400];
plot(gab1)
plot(gab2)
legend( 'n=20', 'n=50' ,'n=100')
[n4,fn4] = ellipord(fp,fs,d1,d2);
[num4, den4]=ellip( n4,d1,d2,fn4);
[h4,f4] = freqz (num4,den4,512,fe ) ;
amp4 = abs(h4) ;

Ecole nationale des Ingénieurs de Monastir


22 | P a g e

gab1=[d2*ones(fs1,1);0*ones(fs2-
fs1,1);ones(fe/2-fs2,1)*d2];
gab2=[400*ones(fp1,1);ones(fp2-
fp1,1)*d1;ones(fe/2-fp2,1)*400];
figure(6)
plot(f20,-20*log10(amp20));
hold on
plot(f50,-20*log10(amp50));
hold on
plot(f100,-20*log10(amp100));
hold on
plot(f4,20*log10(amp4));
hold on
plot(gab1);
plot(gab2);
legend('rif20','rif50','rif100','rii')

Interprétations :
Le filtre Réponse Impulsionnelle Finie, pour un ordre petit, respecte le
gabarit.

Ecole nationale des Ingénieurs de Monastir


23 | P a g e

Tandis que le filtre à Réponse Impulsionnelle Infinie, seul l’ordre


élevé (100) respecte le gabarit.
4.Traçage sur le même système d’axe des quatre réponses en temps de
groupe :

figure(7)
[g20,f20]=grpdelay(o20,1,512,1)
plot(f20,g20)
hold on
[g50,f50]=grpdelay(o50,1,512,1)
plot(f50,g50)
hold on
[g100,f100]=grpdelay(o100,1,512,1)
plot(f100,g100)
hold on
[g4,f4]=grpdelay(num4,den4,512,1)
plot(f4,g4)
legend('20','50','100','ellip')

Ecole nationale des Ingénieurs de Monastir


24 | P a g e

Le tableau ci-dessous résume les avantages et inconvénients respectifs


des filtre RIF et RII :

RIF RII
Stabilité Stables Ne sont pas
forcément stables
Erreurs cumulatives Moins sensibles aux Existent à cause de la
erreurs de récursivité
quantification
Sélectivité Absente
Retard de groupe Ne peut pas avoir un Peut avoir un réponse
réponse impulsionnelle
impulsionnelle symétrique et
symétrique et introduire un retard
introduire un retard sur le signal
sur le signal
Ordre Exige un ordre très Ordre petit + possède
élevé beaucoup moins de
calcul par rapport aux
RIF

IV. Conclusion :
Lors de ces séances de TP, nous avons pratiquer la manipulation des
filtres numériques en se concentrant sur la mise en œuvre du logiciel
Matlab.

Ecole nationale des Ingénieurs de Monastir


25 | P a g e

Le filtrage étant une opération fondamentale dans le traitement de


l’information, il s’appuiera, non-seulement sur la révolution du
numérique que nous vivons et dont certains outils sont proposés dans
ces TP, mais également sur l’intelligence artificielle, et en particulier,
le Deep Learning.
Vu l’importance du filtrage, Même si la période de ce TP était assez
courte, elle nous a été profitable et très enrichissante.

Ecole nationale des Ingénieurs de Monastir

Vous aimerez peut-être aussi