TPDSP Simulink
TPDSP Simulink
TPDSP Simulink
1. Présentation du TP
Simulink est une toolbox de Matlab qui permet de construire des « modèles » de simulation.
Elle est constituée d’une interface graphique simple et complète qui permet ainsi de simplifier
le code Matlab. La construction d’un modèle se fait par simple déplacement des blocs sur la
feuille du modèle. On appelle « bloc » une boîte possédant une ou plusieurs entrées/sorties, et
réalisant une fonction précise sur un signal donné. Par exemple, nous trouvons le bloc de la
fonction FFT (Fast Fourier Transform) qui applique l’algorithme rapide de la transformée de
Fourier sur un signal. Les liens entre les blocs se font d’une manière tout aussi simple avec le
placement d’une ligne entre 2 blocs. Les paramètres d’un bloc sont obtenus par un double-clic
sur le bloc. L’interface principale de Simulink (« Simulink Library Browser ») permet
d’accéder à tous les blocs des toolbox Matlab installées sur l’ordinateur. Par exemple, il est
possible d’accéder aux blocs de la Communication Blockset, DSP Blockset, LSP DSPLink
Blockset. Cette dernière toolbox nous permettra de communiquer et de lancer une simulation
sur la carte SignalMaster de LYR Signal Processing (LSP).
Remarque : Lors de l’utilisation d’un bloc « Acquisition » ou « Playback » dans un modèle, il est
nécessaire d’avoir un bloc « Control » sur le modèle.
Remarques :
i. Si le modèle est modifié, il est nécessaire de le recompiler.
ii. Certaines boites peuvent être modifiées pendant une simulation (exemple : les
interrupteurs), donc il n’est pas toujours utile de recompiler le modèle.
iii. Pour relancer une simulation après l’avoir arrêté, il faut transférer à nouveau le modèle
sur la carte (sans le recompiler s’il n’a pas été modifié).
5. Manipulation
Sous Matlab 6.5, créer un répertoire de travail sur le disque D et lancer Simulink :
>> !md D:\nom_rep
>> cd D:\nom_rep
>> simulink
Ouvrir le modèle C:\Matlab6p5\work\new1.mdl avec Simulink et l’enregistrer
dans votre répertoire de travail.
Pour chaque question, enregistrer le modèle sous un nom différent.
exemple : « Q4.mdl » pour le modèle de la question 4.
Questions :
La constellation d’un signal en bande de base est la représentation des différents états possibles du
signal dans le plan complexe.
Quel est la constellation du signal transmis ? Et celle du signal en sortie du canal ?
Modifier le SNR et commenter.
- Q7 : Benchmark
Mesurer le nombre de cycles (bloc Profiler) lorsque aucun, 1 ou 2 filtres fonctionnent
en même temps sur le DSP.
Conseils : placer un bloc Enabled Subsystem (Simulink Ports & Subsystems) sur la
figure, l’ouvrir et y placer le filtre de réverbération. Copier ce Subsystem afin d’en
avoir 2 sur la même sortie du bloc Acquisition. L’entrée située sur le dessus du
Subsystem permet de le rendre actif ou inactif. Pour cela, relier cette entrée du
Subsystem à la sortie d’un bloc Switch. Ce dernier aura 2 blocs « Constant » comme
entrées, l’un à 0 et l’autre à 1. Sommer les sorties des 2 Substystems et ajouter le signal
provenant directement de la sortie du bloc Acquisistion. Envoyer le signal final aux 2
entrées du bloc Playback.
Placer le bloc Profiler avec un Scope et mesurer approximativement les taux
demandés. Combien de cycles utilise un tel filtre ?
Il est possible d’utiliser des sons directement depuis Matlab. Pour cela, il faut charger un
son avec la commande >> load train (on peut utiliser chirp, laughter, handel). La
commande précédente permet d’obtenir la valeur de la fréquence d’échantillonnage du son
(Fs), ainsi que le vecteur des échantillons du son (y). Simulink a besoin d’un vecteur temps
pour lire un tel son. Pour cela un peut utiliser la ligne de commande suivante pour construire
ce vecteur temps :
>> temps=[1/Fs:1/Fs:length(y)/Fs]';
On peut alors ajouter un bloc From Workspace (Simulink Sources) sous Simulink avec le
paramètre d’entrée Data =[temps y].
Pour récupérer un son dans l’espace de travail Matlab, on mettra un bloc To Workspace
(Simulink Sinks) avec un format de type Array. Pour l’écouter, on utilisera la commande :
>> sound(simout,Fe), où Fe est la fréquence d’échantillonnage du modèle (ex :
48kHz).
Il est possible de retrouver les modèles en langage C sous le logiciel CodeComposer Studio.
Après compilation d’un modèle, on récupère les fichiers suivants :
Extension du Description
fichier
.OPTS Contient les arguments de la ligne de compilation
o les chemins des fichiers sources et des librairies utilisées :
{model}_sources.opts
o les options du compilateur : {model}_compiler.opts. Ces options sont
groupées dans un autre fichier avec la commande -@{model}.bld
o les options du lieur ( traducteur : C compilé assembleur ) :
{model}_linker.opts
o le langage assembleur utilisé pour le lieur : {model}_assembler.opts
.OBJ Fichiers compilés.
.OUT Fichier final (exécutable) à transférer et à lancer sur le DSP
.H Fichier Header du programme en C. Il y a 5 fichiers header :
o {model}.h : initialise et définit les constantes de la simulations (nombre de blocs,
nom du model, …)
o {model}_common.h : initialise les paramètres de chaque bloc sans préciser leurs
valeurs.
o {model}_prm.h : définit les valeurs des paramètres. Voir les commentaires ou
l’ordre définis dans {model}_common.h .
o {model}_reg.h : initialise les variables de transferts (vecteurs du modèle).
.C {model}_dt.c : initialise la structure des variables
- Frame Size : 1
- Transfer Mode : Polling
- Model Sample Time : durée d’échantillonnage