Utilisation de l'applet Synthèse de Filtres

 

 1 Chargement du logiciel

 2 Description de l'applet et de ses différents éléments

 2.1 Description générale

 2.2 Synthèse de filtres numériques

 2.3 Quantification des coefficients

 2.4 Tableau de valeurs

 2.5 Génération de code




 

1 Chargement du logiciel

Deux méthodes sont possibles pour lancer le programme :

- Utilisation de l'application appletviewer fournie avec le JDK (Java Development Kit). Il suffit de taper la commande suivante : appletviewer Java_Filtre.html .

- Utilisation d'un viewer de fichier html tel que les browsers Internet Explorer ou Netscape. Dans ces logiciels, il suffit de faire Open File puis de sélectionner le fichier Java_Filtre.html .
 

L'applet Java_Filtre doit alors avoir l'allure suivante à l'écran :
 
 

- Figure 1 -



2 Description de l'applet et de ses différents éléments

2.1 Description générale

L'interface de l'applet se veut intuitive. Toutes les commandes sont accessibles à partir des trois boutons de la souris.
L'interface se décompose en deux parties distinctes :
- La partie gauche dont le rôle est de visualiser les reponses impulsionnelle et fréquentielle du filtre.
- La partie droite qui se divise elle-même en quatre volets détaillés ci-dessous.

2.1.1 Les fonctionnalités de l'applet

(1) L'applet permet la synthèse de filtres numériques :
- Filtre à réponse impulsionelle finie ( RIF ) selon les méthodes de Parks McLellan, d'échantillonnage et fenêtrage.
- Filtre à réponse impulsionelle infinie ( RII ) de type Butterworth ou Chebychev.

(2) L'applet offre également la possibilité de quantifier selon des algorithmes de troncature ou d'arrondi les coefficients
des filtres synthétisés.

(3) Il est aussi possible de visualiser les coefficients des filtres et un tableau de valeur du module pour les fréquences comprises
entre 0 Hz et la fréquence d'échantillonnage.

(4) Enfin l'applet génère le code équivalent dans les langages C, VHDL et assembleur.

Ces quatres volets sont accessibles à partir du bouton MENU ( voir figure 1 ). Celui-ci propose quatre directions :
- Synthèse du filtre       (1)
- Quantification            (2)
- H(k) et h(n)                (3)
- Programmation         (5)

2.1.2 La visualisation des réponses

Les deux graphes permettant la visualisation des réponses impulsionnelle et fréquentielles, offrent la possibilité de :
- Zoomer sur une partie intéressante des courbes. Pour cela, il suffit de cliquer sur le bouton gauche de la souris et de délimiter
la zone voulue tout en laissant le bouton gauche appuyé.
- Dé-zoomer en cliquant sur le bouton droit de la souris.
- Suivre la courbe en cliquant au plus près de celle-ci sur le bouton gauche de la souris. Un curseur apparait alors sur la courbe voulue,
et par des mouvements latéraux de la souris, il se déplace sur celle-ci. De nouveau cliquer sur le bouton gauche pour effacer le curseur.

Le graphe de la réponse fréquentielle permet de visualiser la courbe dans deux repères ( orthonormé ou semi-logarithmique ).
Ce choix s'opère en cliquant sur les boutons y=f(x) pour le repère orthonormé ou y=20.log f(x) pour celui en semi-log

Remarque : l'applet est localisable en Français et en Anglais. Ce choix se fait en cliquant sur le bouton bleu CLICK HERE FOR ENGLISH VERSION.
 

2.2 Synthèse des filtres numériques

Le choix entre les deux types de filtre ( RIF ou RII ) est realisé en cliquant sur les boutons de même nom.
Une interface commune est proposé, permettant ainsi de fixer dans les champs de saisie correspondant l'ordre du filtre ( entre 1 et 200 )
et la fréquence d'échantillonnage ( > 0 Hertz ). Un ordre minimum est indiqué, en dessous duquel le filtre ne rentre plus dans le gabarit imposé.

Remarque : pour les filtres RIF, l'ordre s'arrondit à la valeur paire supérieure.

Il est posible de choisir le type de gabarit souhaité ( passe-bas, passe-haut, passe-bande, coupe-bande )

Le gabarit du filtre se dessine à l'aide de la zone graphique en bas à droite. Des lignes verticales et horizontales représentent le gabarit dans
lequel le filtre doit entrer. Pour choisir quelle ligne doit être déplacée, il suffit de cliquer sur le bouton Paramètres.  Il est ainsi proposé de
fixer :
- fp, fs ou fsL, fpL,  fpU, fsU les fréquences de coupures.
- delta1, delta2.
A chaque paramètre correspond une ligne. Ces lignes se déplacent en cliquant dessus avec le bouton gauche de la souris.

Remarque : il est fortement déconseillé de faire toucher les fréquences de coupure entre elles ainsi que delta1 à 1 et delta2 à 0. Cela impose
un gabarit avec trop de contraintes. Si tel est le cas, l'applet risque de planter ou de calculer la réponse du filtre aprè plusieurs secondes.
 

Il est possible également de visualiser les pôles et les zéros du filtre en cliquant sur le bouton du même nom. Un pôle est symbolisé par
une croix, un zéro par un cercle. Il est possible que le calcul des racines demandent du temps, surtout si l'ordre du filtre est important.

2.2.1 Filtre à réponse impulsionelle finie

La réponse du RIF se calcule par les algorithmes suivant :
- Parks McLellan
- Echantillonnage
- Fenetrage

Des nuances apparaissent avec le choix de la méthode de l'Echantillonnage et celle du Fenetrage.
Pour la première, la difference intervient dans le dessin du gabarit. En effet, l'applet n'impose plus le choix
entre un passe-bas ou un passe-haut. Il est maintenant possible de dessiner le gabarit souhaité dans la zone graphique
adéquate. Pour un cela, un clic sur le bouton gauche de la souris dessine une droite. Un clic sur le bouton droit efface la
dernière droite  dessinée.

2.2.2 Filtre à réponse impulsionelle infinie

 

2.3 Quantification des coefficients

- Figure 2 -

2.4 Tableau de valeurs

- Figure 3 -

Ce volet affiche les valeurs de la réponse fréquentielle en haut, et celles de la réponse impulsionnelle en bas.
 

2.5 Génération de code

- Figure 4 -