Pages

samedi 8 mai 2021

Réaliser une interface graphique permettant de tracer le gain d'un filtre passe-bas avec Python

### Article en cours de rédaction, susceptible d'être modifié/amélioré (surtout amélioré ;-) )###


 Je vous propose ici une application pour Windows (en exécutable) mais transférable sur toutes les plateformes avec le fichier source .py qui permet de tracer le gain (Bode) d'un filtre passe-bas du premier ordre (RC).

L'application permet de calculer la fréquence de coupure à -3dB, d'afficher la courbe sur une échelle semi-logarithmique et de sauvegarder l'image horodatée.

Au lancement, nous avons cette interface :


Après avoir saisi les valeur du résistor et et du condensateur, on peut soit cliquer sur "calcul FC" qui affiche la fréquence de coupure à -3 dB, soit cliquer sur "Tracer gain" pour afficher la courbe :


ou :

Vous pouvez saisir un nom sans extension dans la case ci-dessus et cliquer sur "sauvegarder 'png'. Cela génèrera un fichier image identique à l'affichage et dont le nom sera horodaté :


Le fichier image est enregistré là où se trouve l'exécutable :


Bien entendu, des améliorations sont à apporter tant du point de vue technique (courbe de phase, choix passe-haut...) qu'esthétique (ce n'est toujours pas mon point fort 😆)

Pour la réalisation, j'ai utilisé Python, Matplotlib et Tkinter. L'exécutable est compilé avec auto-py-to-exe (aussi sur ce blog). L'IDE est Visual Studio Code.

Extrait du code :



Le fichier source est documenté afin de comprendre le fonctionnement global.
Je ne détaille pas davantage ici le fonctionnement et le principe, tout est dans le fichier source.


Si vous voulez le fichier source, pas de souci, il suffit de m'envoyer un courriel gentil 😇