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