Práctica 2. Introducción al entorno de simulación Ptolemy
Full text
Laboratorio de Telemática 2. Introducción al Entorno de Simulación PTOLEMY 1 LABORATORIO DE TELEMÁTICA 2. PRÁCTICA 2 INTRODUCCIÓN AL ENTORNO DE SIMULACIÓN PTOLEMY Autores (por orden alfabético): Mónica Aguilar Igartua Juan José Alins Delgado Carles Badenes Montoliu Jordi Forné Muñoz Juan Luís Gorricho Moreno Xavier Hesselbach Serra The Almagest - Ptolemy 0.7
Laboratorio de Telemática 2. Introducción al Entorno de Simulación PTOLEMY 2 PRÀCTICA 2: INTRODUCCIÓ A PTOLEMY Aquesta és una petita introducció a l’entorn de disseny PTOLEMY, amb el que es realitzen les pràctiques de Laboratori de Telemàtica II. L’objectiu d’aquest document és aprendre a fer anar el PTOLEMY, conèixer les seves comandes bàsiques, construir un sistema senzill i, finalment, simular-lo. 0. PTOLEMY i PIGI PTOLEMY és un entorn CAD (Computer Assisted Design) desenvolupat per la University of California at Berkeley que consta d’una sèrie de definicions de classes en C++. L’abast de PTOLEMY és molt gran, doncs pretén ser una eina d’ús general pel disseny i la simulació de tot tipus de sistemes, encara que nosaltres només el farem servir per sistemes de transmissió de dades síncrons. PTOLEMY és freeware i el codi en C++ de totes les seves rutines està a disposició dels usuaris. Existeix una interfície gràfica que permet treballar a un nivell més alt: PTOLEMY Interactive Graphical Interface, PIGI. PIGI és tot un món, a dintre del qual s’ha de fer servir un llenguatge molt especialitzat, però té molts punts en comú amb altres entorns de simulació: els blocs funcionals són representats per icones, per facilitar la construcció de diagrames de blocs, i les icones s’organitzen en palettes, que és el nom que el sistema dóna a les seves llibreries. Cada palette o llibreria conté blocs que realitzen un cert tipus de funció: generadors de senyal, operadors aritmètics, blocs de processament de dades, etc. Juntant diversos blocs es poden aconseguir sistemes, també anomenats esquemàtics, capaços de dur a terme un ample ventall de funcions. 1. Notes biogràfiques sobre Tolomeu El programa PTOLEMY pren el seu nom de Claudius Ptolemaeus o Tolomeu, astrònom, matemàtic i geògraf grec que va viure a Alexandria entre els anys 87 i 150 d.C. aproximadament. Tolomeu va sintetitzar i estendre el sistema geocèntric o Tolemaic de l’univers tal i com es coneixia en la seva època, i va proposar un métode per calcular les posicions dels sis planetes coneguts (Mercuri, Venus, Mart, Júpiter, Saturn i el Sol, que es considerava també un planeta) mitjançant epicicles o òrbites esfèriques concatenades amb el seu centre a la Terra. El seu métode va ser el més àmpliament utilitzat i el més
Laboratorio de Telemática 2. Introducción al Entorno de Simulación PTOLEMY 3 exacte durant 15 segles, fins que Johannes Kepler va incorporar les seves lleis al sistema heliocèntric proposat per Copèrnic el 1543. Com a geògraf fou l’autoritat més reconeguda arreu d’Europa fins el segle XV, i va ser el primer en proposar una projecció de la superfície esfèrica de la Terra en un plànol (el primer planisferi). Sembla ser que un error de Tolomeu en estimar el tamany d’Àsia fou determinant en la decisió de Cristòfol Colom d’intentar trobar una ruta cap a les Índies per l’oest. Podeu trobar més informació sobre Tolomeu a l’adreça http://seds.lpl.arizona.edu/nineplanets/psc/theman . 2. Entrant al sistema S’accedeix a PIGI amb la comanda pigi, que podeu introduir directament al vostre directori arrel un cop hagueu obert un terminal. Quan el PIGI comença a executar-se, apareixen tres finestres: - La superior, VEM: finestra de comandes de baix nivell de l’editor. Apareixen escrites les accions que s’executen a la finestra que hi ha a sota. - La inferior: finestra de treball. Aquí és a on fareu els dissenys i construireu els vostres esquemàtics. No toqueu res fins que no aparegui la tercera finestra, la de benvinguda, amb el retrat de Tolomeu. A través d’aquesta finestra de benvinguda es pot accedir al manual d’usuari i a altres documents d’interés que es troben a la WEB de Berkeley. Per si teniu interés en consultar-los o baixar-vos alguna part del manual, podeu trobar els links necessaris a l’adreça de la nostra assignatura: http://maite199.upc.es/framesesp.html. 3. Construcció d'un sistema bàsic. Com a primer exemple farem un sistema que generi un soroll gaussià i una senoide, els sumi i tregui per pantalla el resultat a mesura que es calculen les mostres. Un cop generades totes les mostres, calcularem l’autocorrelació i l’histograma, farem la FFT de la suma dels senyals i treurem el seu mòdul i la seva fase per pantalla. Iconitzeu la finestra de benvinguda amb el retrat de Tolomeu. Fixeu-vos en la finestra de treball que s’ha obert (la gran, amb fons gris i text en blau i negre que està etiquetada com VEM cell init.pal: schematic) i llegiu-la atentament: aprendreu el que vol dir VEM, OCT, FACET i UNIVERSE. També aprendreu el que és la init.pal, un tipus especial de facet que es crea per defecte al vostre directori si no en teniu. Us adjuntem a l’annex la Taula 2.1 del Manual, a on teniu més informació sobre la terminologia de Ptolemy. Farem el que diu el segon paràgraf d'aquesta finestra (You will probably want to delete this
Laboratorio de Telemática 2. Introducción al Entorno de Simulación PTOLEMY 4 message... ), però primer cal aprendre com introduir-li les comandes al PIGI. Hi ha dues maneres de ferho: - Amb el ratolí. Hi ha dos menús accessibles amb el ratolí: § Prement el botó del mig, veureu el menú schematic (menú vem), on surten totes les operacions que es poden fer amb els esquemàtics, dividides en submenús. Exploreu totes les opcions per anar fent-vos una idea. § Prement shift+botó del mig veureu un altre menú (menú PIGI) on es troben totes les altres operacions que podeu fer amb PIGI. Fixeu-vos que al costat de cada comanda surt una lletra, que és la forma d’entrar la comanda amb el teclat. - Amb el teclat. És la forma més ràpida i còmoda de fer-ho tot. Us adjuntem a l’annex les Taules 2-2 i 2-3 del Manual, a on surten totes les comandes. * Aquí teniu una llista amb les més usuals: ABRIR FICHERO: ………………………. SHIFT+f ABRIR LIBRERÍA: ……………………… SHIFT+o BORRAR INSTANCIA: ………………… CTRL+u BORRAR OBJETO: …………………….. s Encima (seleccionado), SHIFT+d (eliminarlo) CERRAR VENTANA: ………………….. CTRL+d COLOCAR BLOQUE EN FICHERO: …. - Activar ventana donde del fichero; - Crear instancia; - Activar ventana donde está bloque; - Colocarse encima, c (crear) EDITAR EN UN BLOQUE: ………………… Colocarse encima bloque, e ENTRAR EN UNA LIBRERÍA: …………… i Encima EXPLICACIÓN BLOQUE: ………………. Colocarse encima bloque, “,” SALVAR FICHERO: …………………….. SHIFT+s SIMULAR: ………………………………. SHIFT+r UNDO: ………………………………… SHIFT+u ZOOM-IN: …………………………….. z ZOOM-OUT: …………………………… SHIFT+z ZOOM-TO-FIT: ………………………. F Per introduir una comanda cal tenir activa la finestra on voleu que s’executi. Algunes comandes, a més a més, necessiten “instàncies” (p. ex., a la comanda “s” de selecció, cal dir-li què es vol seleccionar). Les instàncies s’introdueixen amb el ratolí. N'hi ha de tres tipus: - Instàncies de punt: pitgeu amb el botó esquerre a qualsevol lloc d’una finestra activa;
Laboratorio de Telemática 2. Introducción al Entorno de Simulación PTOLEMY 5 - Instàncies de línia: pitgeu un cop amb l’esquerre, un altre cop i arrossegueu; - Instàncies de caixa o box: pitgeu un cop amb l’esquerre i arrossegueu en diagonal. Proveu de crear unes quantes instàncies (surten dibuixades a la finestra amb un color blau turquesa). Amb la comanda “CTRL+u” podeu esborrar totes les instàncies que teniu creades. Ara farem servir una instància per esborrar el text de la finestra init.pal tal i com ens suggereixen que fem: - Creeu una instància de caixa que abarqui tot el text. - Seleccioneu-lo pitjant "s", veureu que es posa de color blau turquesa. - Esborreu-lo amb "SHIFT+d". Seguidament construirem el sistema que haviem proposat. Per poder crear un esquemàtic cal obrir una facet o finestra associada a un directori on es guardarà tota la informació associada al sistema. Si aprofitem la facet init.pal que tot just acabem de netejar, el sistema que hi dibuixem s'obrirà cada cop que iniciem el PIGI en el directori on estem ara. Aixó pot desorientar una mica; és millor obrir una nova facet i posar-li nom, i accedir-hi explícitament cada cop que volguem: - Amb "SHIFT+f" entreu al menú d'apertura de facets, on surten tots els fitxers del vostre directori per si voleu obrir alguna facet ja creada. Si li entreu un nom al camp buit que surt a dalt i confirmeu amb el botó "OK" creareu un nou directori amb aquell nom on es guardaran els esquemàtics que dibuixeu a la facet. - Si no teniu imaginació, digueu-li "gaussian" a la nova facet i confirmeu. S'obre una nova finestra de treball. Si voleu, podeu tancar init.pal, i de fet és molt recomanable fer-ho: el PIGI fa servir moltes finestres i si en teniu massa d'obertes aviat us perdreu. Per tancar qualsevol finestra: - Activeu la finestra que volgueu tancar i situeu el cursor a sobre. - Premeu "CTRL+d". Aquesta és la forma de tancar finestres a PIGI. No feu servir el métode tradicional amb la barra d'estat i el ratolí o podeu tenir alguna sorpresa desagradable. Ara crearem el nostre sistema, afegint els blocs un a un i connectant-los de formma adient: - Amb "SHIFT+o" podeu obrir una palette o llibreria (Ep! Recordeu que les comandes del PIGI només funcionen si sou a sobre d’una finestra oberta i activa, i el cursor té forma de “mirilla telescópica”). A les palettes és on es troben els blocs funcionals.
Laboratorio de Telemática 2. Introducción al Entorno de Simulación PTOLEMY 6 - De totes les palettes que surten, la que us interessa és la SDF, Synchronous Data Flow. El seu nom complet, amb el path, que és com surt al menú, és $PTOLEMY/src/domains/sdf/icons/sdf.pal. Per seleccionar-la, busqueu-la a la llista i pitgeu al quadret que té a l’esquerra amb el botó esquerre del ratolí (veureu que es resalta el quadret). Aneu a la part de baix de la finestra i feu OK. Apareix una nova finestra amb d’icones que representen cada una de les famílies de blocs que es poden trobar en aquesta palette. Començarem per seleccionar els generadors de senyal que necessitem pel nostre sistema, que es troben a dintre de l’icona signal sources. - Poseu-vos-hi a sobre i premeu “i” (esteu executant la comanda look inside). Examineu el contingut de la palette. Fixeu-vos en que cada font té una sortida d’un color diferent segons el tipus de dades que genera (ints, floats, complex, ...). Si us interessa saber alguna cosa d’un bloc en particular, aneu-hi a sobre i pitgeu “,”, la coma: obtindreu una explicació d’allò que fa el bloc i els paràmetres que s’hi poden editar. Els blocs amb la vora de color verd estan formats a partir d’altres blocs, i amb “i” podeu veure què tenen a dins. Proveu-ho pel bloc Singen: obriu-lo, mireu com està fet i tanqueu la finestra corresponent amb “CTRL+d”. Ens interessen els blocs IID Gaussian i Singen. Si voleu enterar-vos de què fan, ja sabeu com fer-ho. Per transportar-los a la finestra on treballem (el nostre facet) cal seguir aquests passos: - Activeu la finestra on esteu dibuixant l’esquemàtic. - Creeu-hi una instància de punt on volgueu situar el bloc. - Activeu la finestra on és el bloc. - Pitgeu “c”, la comanda create. Feu-ho pels dos blocs que necessiteu. Per activar les finestres és recomanable pitjar a la barra d’estat o a la vora, perquè si no creeu instàncies de punt allà on no les voleu. Si us molesten les instàncies de punt, feu “CTRL+u” i desapareixeran. Intenteu distribuir-vos les finestres de forma intel.ligent o us perdreu de seguida. Si teniu problemes de visualització amb les finestres (per veure les lletres, per exemple) feu-les més grans i pitgeu “f”, zoom-to-fit. “z” i “SHIFT+z” són el zoom in i el zoom out respectivament.
Laboratorio de Telemática 2. Introducción al Entorno de Simulación PTOLEMY 7 El sistema final té l’aspecte de la Figura 1. A la Taula 1 trobareu una llista amb el nom dels blocs, la seva funció i el lloc on el podeu trobar a la palette SDF. Per connectar dos blocs heu de crear una instància de línia que els uneixi, d’un sol cop o a trossos, i pitjar “c”, create, quan tot el camí estigui establert. (Instància de línia: pitgeu a l’origen, torneu a pitjar i arrossegueu, deixeu anar al final). Si us equivoqueu, “SHIFT+u” és la comanda undo, i funciona de forma retroactiva tants cops com volgueu. Si aneu fent les coses bé, és molt recomanable fer un save d’alló que teniu fins el moment amb “SHIFT+s”. Cal esmentar que no existeix la comanda save as, així que aneu amb compte amb el que feu i el que guardeu. Si voleu esborrar alguna cosa, seleccioneu-la amb “s” i feu “SHIFT+d”, delete. Figura 1. Aspecte final del sistema
Laboratorio de Telemática 2. Introducción al Entorno de Simulación PTOLEMY 8 Nom del bloc Funció Palette on es troba a SDF IIDGaussian Genera soroll gaussià Signal sources Singen Genera una senoide Signal sources Add Suma Arithmetic TKPlot Visualitza el senyal a mesura que es genera Signal sinks XHistogram Genera l’histograma de tot el senyal generat Signal sinks XMGraph Visualitza tot el senyal generat Signal sinks Autocor Calcula l’autocorrelació Spectral analysis FFTCx Calcula la FFT Spectral analysis Cx to Rect Conversió complex a rectangular (binomial) Conversion Rect to Pol Conversió rectangular a polar (mòdul i fase) Conversion dB Passa a dB Nonlinear functions Unwrap Descargola la fase Spectral Analysis Taula 1. Llistat dels blocs funcionals utilitzats Un cop ho tingueu tot connectat, cal editar els paràmetress que convingui de cada bloc. Aixó ho podeu fer situant-vos a sobre del bloc i pitjant “e”, edit. Abans de fer-ho, fòra bo que miressiu tots els blocs funcionals amb la coma, “,”, per enterar-vos d’allò que fan, quin tipus de paràmetres tenen, què signifiquen i en quin format s’han d’introduir. Anant bloc per bloc, editarem: - A IID Gaussian la mitja (per exemple mean=0) i la variancia (p.e.variance =0.1). No cal que poseu aquests valors, podeu fer servir els que volgueu. - A Singen la freqüència (p.e. frequency=PI/6). També podeu posar la que us vingui de gust, però recordeu que és freqüència discreta! - Al bloc TKPlot els paràmetres xrange i yrange, segons el que hagueu triat pels dos blocs anteriors. Uns valors adequats pels que proposem són, per exemple xrange = 0 100 , yrange = –2 2. Tingueu en compte que singen treu la sortida entre –1 i 1 si no
Laboratorio de Telemática 2. Introducción al Entorno de Simulación PTOLEMY 9 li poseu un multiplicador (guany) al davant. És convenient editar també el paràmetre label per posar-li un nom a la finestra quan surti per pantalla. - Als blocs XMGraph i a Xhistogram, editeu el camp title per saber quin és quin (després surten tots quatre alhora). Si no voleu que surtin uns a sobre dels altres, cal editar també el camp options, i especificar per a cada finestra el tamany en pixels i l’offset a partir de la cantonada superior esquerra de la pantalla. Amb aquesta configuració les finestres són prou grans i no es solapen: - -bb –tk = 500x300+0+0 - -bb –tk = 500x300+550+0 - -bb –tk = 500x300+550+350 - -bb –tk = 500x300+0+350 - A autocor cal que especifiqueu: noInputsToAvg = 1024; noLags = 256; unbiased = yes; makeSymmetric = yes. Amb aixó s’estimen, a partir de 1024 mostres de senoide + soroll, 256 mostres d’autocorrelació fent servir un estimador no esbiaixat, i es simetritzen per treure 512. Per poder veure aixó per pantalla ben centrat cal que feu, al XMGraph corresponent, xunits =1; xinit=-256. - A FFTCx: order = 10; size = 512; direction =1. FFT directa d’ordre 10 calculada amb 512 mostres de l’entrada. - A dB: InputIsPower = false. Fareu la FFT d’un senyal, NO de la seva autocorrelació. - Finalment, per poder veure el módul i la fase de la FFT en funció de la freqüència discreta entre -p i p de forma convenient, cal que editeu els següents paràmetres als XMGraph corresponents: xunits = 2*PI/2048; xinit = -PI. Fixeu-vos que amb aquesta configuració sortiran també les freqüències imatge! Ara ja podeu simular el sistema: feu “SHIFT+r”, run, i us sortirà una finestra on us preguntaran When to stop. El que fa el PTOLEMY és detectar automàticament el bloc que més mostres necessita (en el nostre cas, les 1024 mostres que demana autocor) i generar tants blocs d’aquest nombre de mostres com li digueu a When to stop. Amb un bloc de 1024 mostres n’hi ha prou per aquest sistema, però aquesta opció és molt útil quan es tenen blocs que fan promitjats estadístics entre vàries tandes de mostres. Entreu “1” i accepteu pitjant al botó GO. Primer surt la finestra interactiva del TKPlot, on apareixen les mostres a mesura que es van generant, i un cop totes les mostres han estat generades i processades surten les altres quatre finestres.