Exemple de fichier SQ pour Sysquake
Les programmes pour Sysquake, appelés fichiers SQ, ne comportent que la définition des figures et la façon dont l'utilisateur interagit avec elles. Sysquake gère automatiquement la synchronisation des figure, le zoom, la fonction d'annulation et les fichiers.
Pour vous montrer à quel point les fichiers SQ peuvent être simples, en voici un qui affiche dans la même figure l'amplitude de la réponse harmonique d'un système à temps continu et celle de sa version échantillonnée à une fréquence que vous pouvez ajuster avec la souris. Le théorème de Shannon, qui dit que la fréquence d'échantillonnage doit être au moins deux fois plus élevée que la bande passante du signal à échantillonner pour éviter de perdre de l'information (cela revient à dire qu'il faut assez d'échantillons pour enregistrer les changements les plus rapides), et l'effet de repliement spectral qui se produit quand il n'est pas respecté, sont bien plus faciles à comprendre qu'avec une démonstration mathématique ou des figures statiques.
Voici le code de ce fichier SQ:
variable Ts // période d'échantillonnage init Ts = init // gestionnaire d'initialisation figure "Frequency Response" // définition de figure draw drawFreq(Ts) // gestionnaire d'affichage mousedrag Ts = dragFreq(_id, _x1) // gestionnaire de manipulation avec la souris functions {@ function Ts = init Ts = 0.2; subplots('Frequency Response'); function drawFreq(Ts) scale('linlin/logdb', [0,20*pi]); // échelle par défaut Ac = poly([-2,-1+10j,-1-10j]); // fonction de transfert temps continu Bc = Ac(end); // définie par ses pôles bodemag(Bc, Ac); // affichage de la réponse harmonique (Bd, Ad) = c2dm(Bc, Ac, Ts, 'z'); // échantillonnage dbodemag(Bd, Ad, Ts, 'r'); // réponse harmonique en rouge line([1,0], pi / Ts, 'b', 1); // fréquence de Nyquist affichée comme // une droite bleue qu'on peut manipuler function Ts = dragFreq(id, x) if ~same(id, 1) // pas la fréquence de Nyquist cancel; // on annule la manipulation end Ts = pi / x; // nouvelle période d'échantillonnage @}
Ouvrez ce fichier avec Sysquake, déplacez la fréquence de Nyquist (moitié de la fréquence d'échantillonnage, représentée par une ligne verticale bleue) avec la souris, et voici ce que vous pouvez observer:
Plus la fréquence de Nyquist est basse, moins bien le signal échantillonné (en rouge) approxime le signal continu (en noir).