2. Synthèse de filtres RIF - Free
Traitement Numérique du Signal TP n°1. Ce TP a pour objet l'étude des filtres à
Réponse Impulsionnelle Finie. Ce rapport est constitué d'une brève présentation
suivie de l'étude des différentes méthodes de synthèse d'un filtre RIF. .... Cet
exercice va nous permettre d'analyser l'influence du choix de la fenêtre de ...
Part of the document
Traitement Numérique du Signal
TP n°1
Ce TP a pour objet l'étude des filtres à Réponse Impulsionnelle Finie. Ce
rapport est constitué d'une brève présentation suivie de l'étude des
différentes méthodes de synthèse d'un filtre RIF.
Table des matières
1.Les filtres RIF 2
2.Synthèse de filtres RIF 2
2.1 Synthèse d'un RIF par la méthode de la fenêtre 2
2.1.1 Calcul explicite des 5 premiers coefficients du filtre passe bas
idéal 2
2.1.2 Réponse impulsionnelle et réponse fréquentielle du filtre généré
2
2.1.3 Fenêtrage de Hamming pour la synthèse du filtre 3
2.2 Synthèse d'un RIF par MATLAB 4
2.2.1 Calcul de l'ordre minimal du filtre passe bas 4
2.2.2 Réalisation par MATLAB du filtre correspondant 4
2.2.3 Synthèse de filtre par MATLAB avec des fenêtres différentes 5
2.2.4 Synthèse de filtre par MATLAB avec un nombre de coefficients
supérieur 6
2.2.5 Calcul des zéros du filtre 7
2.2.6 La valeur de N donnant un filtre respectant le gabarit 8
2.2.7 Processus MA(0,11) 8
2.3 Synthèse d'un RIF par la méthode de Parks & Mac Clellan 9
2.3.1 Fonctionnement de remez 9
2.3.2 Synthèse d'un filtre RIF d'ordre N 10
Les filtres RIF
Ce sont des systèmes linéaires discrets invariants dans le temps définis
par une équation selon laquelle un nombre en sortie y(n), représentant un
échantillon du signal filtré, est obtenu par sommation pondérée d'un
ensemble fini de nombres d'entrée, représentant les échantillons du signal
à filtrer x(n).
Les coefficients h de la sommation pondérée constituent la réponse
impulsionnelle du filtre et un ensemble fini d'entre eux seulement prennent
des valeurs non nulles.
Synthèse de filtres RIF
Le gabarit et les hypothèses sont donnés dans l'énoncé.
2.1 Synthèse d'un RIF par la méthode de la fenêtre
Lorsqu'un filtre est spécifié dans le domaine des fréquences par sa réponse
en fréquence, les coefficients h du filtre RIF sont donnés par la relation
en fréquence réduite :
Pour limiter le nombre de coefficients de ce filtre, on multiplie ensuite
la réponse impulsionnelle obtenue par une fenêtre temporelle.
2.1.1 Calcul explicite des 5 premiers coefficients du filtre passe bas
idéal
En reprenant le gabarit, on obtient les coefficients par la relation en
fréquences réduites en prenant soin de symétriser le passe bas autour de 0.
On obtient la relation suivante :
[pic]
On constate qu'il va donc exister une infinité de coefficients pour la
réponse impulsionnelle. En prenant soin de symétriser la porte, et de ne se
préoccuper que des 11 coefficients centrés autour de 0, on réalise en fait
un fenêtrage par une fenêtre rectangulaire :
h = [ -0.0637 0.0468 0.0328 -0.1514 0.2575 0.7000 0.2575
-0.1514 0.0328
0.0468 -0.0637]
2 2.1.2 Réponse impulsionnelle et réponse fréquentielle du filtre généré
On obtient les figures suivantes :
On constate de faibles ondulations en bande passante qui pourraient êtres
améliorées afin d'obtenir une réponse plus plane. Dans la zone de
transition, la réponse plonge convenablement, mais ensuite des ondulations
importantes apparaissent dans la bande coupée, dépassant même le gabarit.
Ces ondulations sont dues à l'utilisation de la fenêtre rectangulaire qui a
pour effet d'accentuer ces lobes secondaires.
On se propose donc de regarder l'effet d'autres fenêtres aux angles moins
abruptes que celle de la fenêtre rectangulaire.
3 2.1.3 Fenêtrage de Hamming pour la synthèse du filtre
La fonction Hamming retourne les coefficients à multiplier avec ceux de la
réponse impulsionnelle. La figure suivante présente la pondération des
coefficients de Hamming qui vont être appliqués à la réponse
impulsionnelle, la réponse impulsionnelle modifiée et la réponse en
fréquence correspondante.
On constate que les coefficients de Hamming tendent de manière continu vers
zéro en bord de fenêtre.
Ceci a pour effet de quasiment annuler les coefficients de la réponse
impulsionnelle du filtre les plus excentrés.
Au final dans le domaine fréquentiel, l'opération a fait totalement
disparaître les ondulations en bande passante et en bande coupée mais ce au
détriment de la raideur de la réponse en bande de transition et en bande
coupée. En effet, la réponse ne respecte plus du tout le gabarit de départ.
Il y a donc un compromis à trouver au niveau de la fenêtre pour obtenir des
ondulations pas trop importantes sans perdre en raideur dans les bandes
d'atténuation et les bandes coupées et ce bien sur en respectant le gabarit
du filtre.
2 2.2 Synthèse d'un RIF par MATLAB
A l'aide de la fonction fir1, MATLAB propose la synthèse d'un filtre RIF
d'ordre paramétrable que nous allons déterminer en première partie.
1 2.2.1 Calcul de l'ordre minimal du filtre passe bas
A partir de la formule et à l'aide de la fonction ceil qui effectue un
arrondi à l'entier supérieur, on obtient directement l'ordre N minimal du
filtre passe bas.
N=ceil (2/3*log10 (1/(10*delta1*delta2))*fe/(f2-f1))
donne :
N=10
2 2.2.2 Réalisation par MATLAB du filtre correspondant
La figure suivante compare les réponses impulsionnelles générées par la
méthode de la fenêtre de Hamming et par la fonction fir1 de MATLAB.
On remarque une superposition quasi-parfaite des réponses impulsionnelles
et des réponses en fréquences. C'est normal car par défaut la fonction fir1
de MATLAB calcule les coefficients du filtre d'ordre N avec un fenêtrage de
Hamming. Il est donc tout à fait normal de voir les courbes se superposer.
On observe donc les mêmes résultats que pour la question II-1-3 ou l'on
avait synthétisé le RIF par la méthode de la fenêtre de Hamming.
3 2.2.3 Synthèse de filtre par MATLAB avec des fenêtres différentes
Cet exercice va nous permettre d'analyser l'influence du choix de la
fenêtre de pondération sur notre filtre à N constant.
La figure suivante donne simultanément les réponses impulsionnelles et
fréquentielles pour le même filtre avec différentes fenêtres. Comparons
l'influence de chacune sur la réponse en fréquence.
|Fenêtre |Observation de la réponse en fréquence |
|Rectangulai|Elle fait apparaître le plus d'ondulation, mais donne une |
|re |bonne raideur de coupure malgré les quelques dépassements en |
| |bande coupée |
|Hamming |Elle fait apparaître le moins d'ondulation, mais sa raideur de|
| |coupure est très mauvaise puisque la réponse en fréquence |
| |n'atteint pas l'atténuation minimum requise en bande coupée |
|Blackman |Elle fait apparaître une légère diminution continue du gain en|
| |fonction de la fréquence en bande passante, ce qui peut être |
| |gênant. D'autre part, la raideur de coupure obtenue est |
| |déplorable puisque c'est avec cette fenêtre qu'on obtient |
| |l'atténuation minimum en bande coupée. |
|Hanning |Elle a les mêmes qualités et défaut que la fenêtre de Hamming |
| |mais fait apparaître des ondulations en bande coupée plus |
| |rapidement que cette dernière |
On voit donc que le choix de la fenêtre a une grande influence sur la
réponse en fréquence du filtre. L'atténuation en bande coupée que l'on
souhaite obtenir nous permet de choisir la fenêtre adéquate
4 2.2.4 Synthèse de filtre par MATLAB avec un nombre de coefficients
supérieur
On reprend les mêmes fenêtres que précédemment pour une synthèse de filtre
à 30 coefficients.
On dégage alors les observations suivantes en comparant à la figure
précédente :
. Le nombre de lobes secondaires augmente avec N
. La largeur des lobes diminue quand N augmente
. La raideur de coupure augmente avec N
. La largeur de bande de transition diminue avec N
Globalement, on a tendance à modifier le comportement du filtre en bande de
transition. La raideur et la largeur de cette bande varient avec le nombre
de coefficients N.
5 2.2.5 Calcul des zéros du filtre
La fonction roots nous donne les zéros du filtre.
Les relations données dans l'énoncé sont bien vérifiées.
|Zéros |Zi=Zj* |Zi=1/Zj |Zi=1/Zj* |
|Z1=3.2000 | |Z1=1/Z10 | |
|Z2=1.3753 + |Z2=Z3* | |Z2=1/Z9* |
|2.7794i | | | |
|Z3=1.3753 - |Z3=Z2* | |Z3=1/Z8* |
|2.7794i | | | |
|Z4=-2.5717 | |Z4=1/Z7 | |
|Z5=-1.2413 | |Z5=1/Z6 | |
|Z6=-0.8056 | |Z6=1/Z5 | |
|Z7=-0.3888 | |Z7=1/Z4 | |
|Z8=0.1430 + |Z8=Z9* | |Z8=1/Z3* |
|0.2890i | | | |
|Z9=0.1430 - |Z9=Z8* | |Z9=1/Z2* |
|0.2890i | | | |
|Z10=0.3125 | |Z10=1/Z1 | |
D'autre part l'affichage de la phase de la réponse en fréquence du filtre
est bien linéaire quand on la déroule avec la fonction unwrap.
C'est normal car on a bien à faire à un filtre RIF dont les
caractéristiques suivantes sont vérifiées :
. Il n'y a pas de pôles et le système est donc complètement stable
. Le fait que tous les zéros soient liés par des relations d'inverse