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).