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
(4)
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 -