pfc josé maría paredes lorenzo
TRANSCRIPT
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
55
4. LA APLICACIÓN
En este capítulo llegamos por fin al nivel más alto de todos, el nivel de
usuario. En este capítulo describiremos los objetivos de nuestro trabajo así
como el funcionamiento de nuestra aplicación.
4.1 OBJETIVOS Y REQUISITOS
El objetivo principal de esta aplicación no es servir para el cálculo de
complejos procesos en tiempo discreto, sino de ayudar al aprendizaje y
comprensión de los procesos y cálculos de este tipo de señales. Será, por
tanto, una aplicación en la que primen la facilidad de uso y la intuitividad
frente a la eficiencia en el cálculo de resultados.
Como en todo proyecto de desarrollo software, como paso previo a la
edición del código, se han establecido unos requisitos básicos que la
aplicación deberá cumplir con objeto de ser validada. Estos criterios son los
siguientes:
• Interfaz gráfica: La interactuación con la aplicación debe ser lo más
gráfica posible, permitiendo al usuario configurar los cálculos que
necesite mediante esta interfaz, sin necesidad de ejecutar complejas
instrucciones en línea de comando.
• Facilidad de uso: La aplicación debe ser lo más intuitiva posible,
requiriendo poco tiempo de adiestramiento para comenzar a
utilizarla. El usuario no debe desmotivarse al primer contacto con la
aplicación debido a su complejidad.
• Implementación de estructuras: Si bien no debe ser la función
principal ni estar optimizada para ello, debe permitir el cálculo de
estructuras simples.
• Implementación de operaciones básicas: Las operaciones básicas
mínimas que debe contener la aplicación son: suma, desplazamiento
en el tiempo, multiplicación por escalar y convolución.
• Implementación de operaciones en frecuencia: La aplicación debe
ofrecer al usuario la posibilidad de realizar cálculos así como
visualizar el espectro en frecuencia de las secuencias calculadas
dentro de la aplicación.
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
56
• Comparativa de resultados: La aplicación debe ofrecer al usuario la
posibilidad de realizar comparativas entre diferentes secuencias de
manera rápida y sencilla.
• Extensibilidad: Este requisito se refiere al código fuente desarrollado.
La aplicación debe ser fácilmente modificable, permitiendo añadir
nuevas operaciones y funcionalidades de manera rápida y sencilla.
Debe seguir el criterio de modularidad que se le exige al desarrollo
software.
4.2 HERRAMIENTAS UTILIZADAS
Para realizar el desarrollo de una aplicación Java se necesita, como
herramienta fundamental el kit de desarrollo de Java (Software
Development Kit, SDK) y el entorno de ejecución de Java (Java Runtime
Environment, JRE). Todo ello ejecutado bajo entorno Windows 7. Aunque
existen SDK/JRE específicos para otros sistemas operativos, como por
ejemplo Linux, me he decantado por ejecutarlo bajo Windows 7 por la
sencilla razón de que el soporte a Windows es mucho mayor en la red de
redes y mi conocimiento del entorno Windows es mayor que el de Linux.
El SDK incluye un compilador por línea de comandos y como editor se
puede utilizar cualquier editor de texto plano, como por ejemplo, el Bloc de
Notas de Windows. No obstante, a pesar de que estas herramientas son las
únicas suficientes para editar una aplicación en Java, la edición del código
fuente en un editor de texto plano y la compilación del código de una
aplicación de cierta envergadura puede resultar bastante árida, como se
puede comprobar en las imágenes siguientes.
SOFTWARE PARA
Es por esta razón por la que exi
desarrollo integrados (Integrated Development Environment, IDE). Para el
caso que nos ocupa, existen dos IDE fundamentales:
• Eclipse: Desarrollado originalmente por IBM y mantenido en la
actualidad por la Fundación Eclipse. E
tanto para desarrollos en Java como para muchos otros
desarrollos en lenguajes diferentes. Es un IDE de Software Libre
licenciado bajo la Eclipse Public License.
• Netbeans: Auspiciado por Sun Microsystems, es un proyecto de
código abierto programado netamente en Java. Su principal
utilidad es la programación en Java, aunque también se pueden
realizar desarrollos en otros lenguajes de programación. Está
licenciado bajo la GPL versión 2.
Debido a mi mayor conocimiento del IDE Ne
el desarrollo de la aplicación íntegramente en dicho entorno.
En el momento de la edición de la aplicación
últimas versiones de las herramientas que se han descrito, siendo estas las
que se han utilizado para desarrollarla:
PARA CÁLCULO Y APRENDIZAJE DE SEÑALESDISCRETAS
57
Es por esta razón por la que existen en el mercado entornos de
desarrollo integrados (Integrated Development Environment, IDE). Para el
caso que nos ocupa, existen dos IDE fundamentales:
: Desarrollado originalmente por IBM y mantenido en la
actualidad por la Fundación Eclipse. Es el IDE por excelencia,
tanto para desarrollos en Java como para muchos otros
desarrollos en lenguajes diferentes. Es un IDE de Software Libre
licenciado bajo la Eclipse Public License.
: Auspiciado por Sun Microsystems, es un proyecto de
abierto programado netamente en Java. Su principal
utilidad es la programación en Java, aunque también se pueden
realizar desarrollos en otros lenguajes de programación. Está
licenciado bajo la GPL versión 2.
Debido a mi mayor conocimiento del IDE Netbeans, he decidido realizar
el desarrollo de la aplicación íntegramente en dicho entorno.
En el momento de la edición de la aplicación eran las siguientes las
últimas versiones de las herramientas que se han descrito, siendo estas las
para desarrollarla:
SEÑALES
sten en el mercado entornos de
desarrollo integrados (Integrated Development Environment, IDE). Para el
: Desarrollado originalmente por IBM y mantenido en la
s el IDE por excelencia,
tanto para desarrollos en Java como para muchos otros
desarrollos en lenguajes diferentes. Es un IDE de Software Libre
: Auspiciado por Sun Microsystems, es un proyecto de
abierto programado netamente en Java. Su principal
utilidad es la programación en Java, aunque también se pueden
realizar desarrollos en otros lenguajes de programación. Está
tbeans, he decidido realizar
eran las siguientes las
últimas versiones de las herramientas que se han descrito, siendo estas las
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
58
• SDK/JRE 1.7.45
• Netbeans 7.3.1
4.3 MANUAL DE USUARIO
Para conocer en profundidad el código desarrollado para esta aplicación,
es fundamental conocer el funcionamiento de la aplicación a alto nivel. Por
esta razón, además de por facilitar al usuario la utilización de la aplicación,
se describe el funcionamiento y posibilidades de la aplicación en esta
sección.
4.3.1 Pantalla Inicial
La aplicación dispone de dos medios de ejecución diferentes:
• Applet
• Standalone
La ejecución por medio de Applet se puede realizar desde cualquier Web
Browser habilitado para ejecutar la JVM. En la siguiente figura se puede
observar un ejemplo de ejecución de Applet dentro del conocido Google
Chrome.
Este medio de ejecución tiene el pequeño inconveniente del tiempo de
cálculo que, para cálculos algo complejos puede ser algo elevado. Como
ventaja principal de este medio de ejecución cabe destacar la posibilidad de
ser incrustado en cualquier web como por ejemplo la Enseñanza Virtual y
permitir el acceso a decenas de usuarios con un simple click, sin necesidad
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
59
de realizar descargas ni instalaciones de archivos. También permite al
usuario ejecutar siempre la última versión instalada en el Servidor.
Por otro lado, está la aplicación Standalone, es decir, una aplicación que
permite la posibilidad de ejecutar el programa sin necesidad de Web
Browser ni conectividad a Internet. Este medio de ejecución tiene como
principal ventaja el menor tiempo de cálculo necesario para desarrollar
cálculos complejos. La principal desventaja que tiene este medio de
ejecución es que requiere la participación activa del usuario para ejecutar
siempre la última versión (descargando la versión del servidor e
instalándola en su propio equipo).
Para ejecutar la aplicación Standalone tan sólo basta con hacer doble
click en el archivo TDSApplication (ver figura siguiente). Una vez realizada
esta acción, aparecerá la pantalla inicial de la aplicación.
En la figura siguiente se muestra la pantalla inicial que aparecerá como
consecuencia de ejecutar el archivo TDSApplication.
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
60
Como se puede observar en las figuras anteriores, el parecido entre
las pantallas iniciales de ambos medios de ejecución es casi idéntico. Esto
permite que la experiencia de usuario no se vea alterada dependiendo del
medio de ejecución que elija.
Una vez se ha realizado el acceso a la aplicación por cualquiera de los
dos medios descritos anteriormente, basta con hacer click en el botón Start
Application para acceder a la pantalla principal de la aplicación.
4.3.2 Pantalla Principal
En la figura siguiente se puede comprobar el aspecto que tiene la
pantalla principal de la aplicación.
• En 1 tenemos la Barra de Título. En ella se recoge el nombre de la
aplicación y la versión de la misma.
• En 2 tenemos los Botones de Control (en este caso de Windows).
Estos botones permiten realizar el control básico de la ventana
como minimizar, maximizar y cerrar.
• En 3 tenemos la Barra de Menú. En ella están contenidos todos los
menús que permiten el control de la aplicación. Los menús son los
siguientes (en apartados posteriores se explicará la utilidad de
cada uno):
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
61
- Application
- Actions
- Edit
- Others
• En 4 tenemos el Panel de Operaciones. En él se pueden insertar
las cajas con las distintas operaciones y cálculos a realizar. Si se
realiza click con el botón derecho del ratón en ella, aparece un
menú desplegable ofreciéndonos distintas opciones según sobre el
elemento sobre el que hagamos click.
4.3.3 Barra de Menús
Los menús disponibles de la Barra de Menús permiten ejercer el control
casi absoluto de la aplicación. A continuación se mostrarán imágenes de
cada uno de los menú y se detallarán las distintas acciones que permiten
ejercer.
4.3.3.1 Menú Application
El menú Application tiene como único elemento disponible la acción Exit.
Al hacer click en esta acción se cierran automáticamente la Pantalla
Principal y la Pantalla Inicial, saliendo por completo de la aplicación.
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
62
4.3.3.2 Menú Actions
El segundo de estos menús es el menú Actions.
Este menú contiene los siguientes elementos, activos dependiendo del
elemento seleccionado en el Panel de Operaciones:
• Add: Al seleccionar este elemento se abre un cuadro de diálogo
que permite añadir operaciones y elementos al Panel de
Operaciones.
• Delete: Permite borrar el elemento seleccionado del Panel de
Operaciones.
• Show Cartesian: Permite visualizar la parte real e imaginaria de la
secuencia de manera gráfica.
• Show Polar: Permite visualizar el módulo y fase de la secuencia de
manera gráfica.
• Print Numeric Values: Permite visualizar la parte real, parte
imaginaria, módulo y fase de la secuencia en formato tabulado.
• Properties: Al seleccionar este elemento se abre un cuadro de
diálogo que permite visualizar y modificar las distintas
propiedades del elemento seleccionado en el Panel de
Operaciones.
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
63
4.3.3.3 Menú Edit
El tercero de estos menús es el menú Edit, que tiene como único
elemento disponible la acción Options.
4.3.3.4 Menú Others
El cuarto y último menú disponible es el menú Others, el cual tiene
sólo dos opciones disponibles.
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
64
Estas opciones son las siguientes:
• About: Esta acción abre un cuadro de diálogo que ofrece datos
básicos de la aplicación como la versión de la aplicación, autor,
año de edición, etc.
• Contact: Esta acción abredirectamente una ventana de nuevo
e-mail del gestor de correo electrónico predeterminado del
sistema, permitiendo al usuario ponerse en contacto con el
desarrollador de la aplicación.
4.3.4 Menús desplegables
Los menús desplegables aparecen al hacer click con el botón derecho del
ratón sobre el Panel de Operaciones o sobre cualquier elemento del Panel
de Operaciones. Dependiendo del elemento seleccionado o no seleccionado
en el Panel de Operaciones, aparecen diferentes menús desplegables.
4.3.4.1 Sin selección
Si no hay ningún elemento seleccionado, aparece un desplegable con las
siguientes opciones disponibles:
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
65
• Add: Al seleccionar este elemento se abre un cuadro de
diálogo que permite añadir operaciones y elementos al Panel
de Operaciones.
• Close: Cierra el menú desplegable.
• About: Esta acción abre un cuadro de diálogo que ofrece datos
básicos de la aplicación como la versión de la aplicación, autor,
año de edición, etc.
4.3.4.2 Seleccionado Plot o Plot Compare
Si al hacer click con el botón derecho del ratón está seleccionada una
caja Plot o Plot Compare, aparece un menú desplegable con las siguientes
opciones:
• Properties: Al seleccionar este elemento se abre un cuadro de
diálogo que permite visualizar y modificar las distintas
propiedades del Plot seleccionado en el Panel de Operaciones.
• Show Cartesian Plot: Permite visualizar la parte real e
imaginaria de la secuencia de manera gráfica.
• Show Polar Plot: Permite visualizar el módulo y fase de la
secuencia de manera gráfica.
• Print Numeric Values: Permite visualizar la parte real, parte
imaginaria, módulo y fase de la secuencia en formato
tabulado.
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
66
• Delete: Permite borrar el elemento seleccionado del Panel de
Operaciones.
• Close Cierra el menú desplegable.
• About: Esta acción abre un cuadro de diálogo que ofrece datos
básicos de la aplicación como la versión de la aplicación, autor,
año de edición, etc.
4.3.4.3 Seleccionado Edge
Si al hacer click con el botón derecho del ratón está seleccionado un
Edge, aparece un menú desplegable con las siguientes opciones:
• Delete: Permite borrar el elemento seleccionado del Panel de
Operaciones.
• Close Cierra el menú desplegable.
• About: Esta acción abre un cuadro de diálogo que ofrece datos
básicos de la aplicación como la versión de la aplicación, autor,
año de edición, etc.
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
67
4.3.4.4 Seleccionados otros elementos
Si al hacer click con el botón derecho del ratón está seleccionado
cualquier otro elemento, como por ejemplo una secuencia, un filtro o
cualquier otra operación que no sea ni un Plot ni un Edge, aparece un menú
desplegable con las siguientes opciones:
• Properties: Al seleccionar este elemento se abre un cuadro de
diálogo que permite visualizar y modificar las distintas
propiedades del elemento seleccionado en el Panel de
Operaciones.
• Delete: Permite borrar el elemento seleccionado del Panel de
Operaciones.
• Close Cierra el menú desplegable.
• About: Esta acción abre un cuadro de diálogo que ofrece datos
básicos de la aplicación como la versión de la aplicación, autor,
año de edición, etc.
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
68
4.3.5 Diálogos
Los cuadros de diálogo principales son los siguientes:
• Add
• Show Cartesian
• Show Polar
• Print Numeric Values
• Color Chooser Menu
• Properties
• About
• Contact
• Options
4.3.5.1 Add
Al cuadro de diálogo Add se puede acceder a través de Actions�Add o a
través del menú desplegable del Panel de Operaciones, siempre y cuando
no haya ningún elemento del Panel de Operaciones seleccionado.
Como se puede ver en la figura siguiente, el cuadro de diálogo está
estructurado en forma de árbol y dividido en diferentes categorías.
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
69
Las diferentes categorías del árbol y los diferentes módulos que
permite insertar este diálogo se describen a continuación.
• Source
- Sequence
- Frequency Sequence
- Fast Sequence
- Frequency Fast Sequence
• Sink
- Plot
- Plot Compare
• Basic Operations
- Addition
- Convolution
- Circular Convolution
- Delay
- Circular Delay
- Time Invert
- Circular Time Invert
- Multiplication by a number
- Multiplication
- Power
- Conjugation
- Symmetric Conjugate Part
- Antisymmetric Conjugate Part
- FIR Window
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
70
• Frequency Operations
- FFT
- Inverse FFT
4.3.5.2 Show Cartesian
Al cuadro Show Cartesian se puede acceder a través de Actions�Show
Cartesian o a través del menú desplegable del Panel de Operaciones,
siempre y cuando esté seleccionado un elemento Plot o Plot Compare del
Panel de Operaciones seleccionado. También se puede acceder a través del
cuadro de diálogo Properties de un elemento Plot o Plot Compare.
En este cuadro se muestran las distintas muestras de la secuencia de
entrada al cuadro Plot en formato parte real y parte imaginaria. A la
izquierda se muestra la parte real y a la derecha la parte imaginaria. En
caso de ser un Plot Compare, se muestran en la parte superior las muestras
de la entrada 1 y en la parte inferior las muestras de la entrada 2.
4.3.5.3 Show Polar
Al igual que el cuadro anterior, al cuadro Show Polar se puede acceder a
través de Actions�Show Polar o a través del menú desplegable del Panel de
Operaciones, siempre y cuando esté seleccionado un elemento Plot o Plot
Compare del Panel de Operaciones seleccionado. También se puede acceder
a través del cuadro de diálogo Properties de un elemento Plot o Plot
Compare.
En este cuadro se muestran las distintas muestras de la secuencia de
entrada al cuadro Plot en formato módulo y fase. A la izquierda se muestra
el módulo y a la derecha la fase. En caso de ser un Plot Compare, se
muestran en la parte superior las muestras de la entrada 1 y en la parte
inferior las muestras de la entrada 2.
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
71
4.3.5.4 Print Numeric Values
Al cuadro de diálogo Print Numeric Values se puede acceder a través de
Actions�Print Numeric Values o a través del menú desplegable del Panel de
Operaciones, siempre y cuando esté seleccionado un elemento Plot o Plot
Compare del Panel de Operaciones seleccionado.
Este cuadro de diálogo muestra de manera tabulada las distintas
muestras de la secuencia de entrada al cuadro Plot en formato parte real y
parte imaginaria o módulo y fase. En caso de ser un Plot Compare, se
muestran en la parte izquierda de la tabla los valores de la entrada 1 y en la
parte derecha de la tabla los valores de la entrada 2.
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
72
4.3.5.5 Color Chooser Menu
Al cuadro de diálogo Color Chooser Menu tan sólo es posible acceder a
través del cuadro de diálogo Properties de un elemento Plot o Plot Compare.
Se accede clicando sobre los cuadros Select Color de este menú. Su función
básica es la de seleccionar el color que se quiere asignar a la gráfica o al
fondo de la gráfica con la que se visualizan las secuencias.
Permite no sólo seleccionar colores siguiendo la escala normal RGB, sino
también seleccionarlos utilizando otras escalas como la HSV o la HSL, por
poner un ejemplo.
4.3.5.6 Properties
De todos los cuadros de diálogos, el cuadro Properties es el que tiene
mayor cantidad de visualizaciones diferentes. Dependiendo del elemento
seleccionado en el panel de operaciones, el diálogo Properties se presenta
de manera diferente al usuario, por lo que nos vamos a detener un poco
más en este apartado y vamos a presentar las diferentes visualizaciones
que tiene.
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
73
4.3.5.6.1 Properties básico
El menú Properties básico contiene los siguientes campos:
• Operation: Este campo no editable indica el tipo de operación
seleccionado.
• Title: Este campo, que sí es editable, muestra el texto interno del
elemento. Al modificar este campo, se modifica la indicación
mostrada en el Panel de Operaciones de este elemento.
Estos campos son comunes a todos los diálogos Properties y funcionan
de manera idéntica.
Este cuadro básico se muestra para los elementos que no tienen partes
configurables más allá del texto que se muestra sobre la caja del Panel de
Operaciones. Estos elementos son:
• Addition
• Convolution
• Time Invert
• Multiplication
• Conjugation
• Symmetric Conjugate Part
• Antisymmetric Conjugate Part
4.3.5.6.2 Properties Sequence y Frequency Sequence
Este es el cuadro de diálogo Properties de un elemento Sequence y
Frequency Sequence. Además de los ya mencionados campos Operation y
Title tiene los siguientes otros campos y botones:
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
74
• Min. Time: Este campo puede tomar valores enteros y siempre
menores o iguales que Max. Time. Con este campo se configura el
tiempo donde comienza la secuencia.
• Max. Time: Este campo puede tomar valores enteros y siempre
mayores o iguales que Min. Time. Con este campo se configura el
tiempo donde termina la secuencia.
• Type: Este campo es una lista desplegable donde se puede
seleccionar el tipo de secuencia que queremos obtener. Los tipos
de secuencias disponibles son:
- All Zeros
- All Ones
- Complex e
- Delta
- Exponential
- Inverted Step
- N
- Sinc
- Sine
- Step
• Customized: Este toggle permite personalizar los valores de la
secuencia original clicando sobre la tabla de la derecha.
• Reset: En caso de ser modificados los valores de la secuencia, al
hacer click en este botón, deshacemos la modificación y se
devuelven los valores de la secuencia a su valor por defecto.
• Parameters: En caso de ser necesario algún parámetro más,
aparecen las diferentes opciones debajo de este epígrafe. Las
secuencias que necesitan parámetros extra son:
- Complex e
- Exponential
- Sinc
- Sine
• Tabla de valores: Esta tabla muestra la parte real e imaginaria de
la secuencia seleccionada. En caso de estar pulsado el toggle
Customized, se pueden modificar sus valores haciendo doble click
en el campo que se quiera modificar e introduciendo el valor
deseado en el mismo. Estos valores pueden ser de tamaño
double.
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
75
4.3.5.6.3 Properties Fast Sequence y Frequency Fast Sequence
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
76
Este es el cuadro de diálogo Properties de un elemento Fast Sequence y
Frequency Fast Sequence. A diferencia del cuadro de diálogo del Sequence
normal, este permite al usuario introducir una secuencia personalizada de
manera rápida a través del teclado. Es por esto por lo que sólo tiene un
único campo, además de los ya mencionados Operation y Title; este campo
es el campo Values.
El método de introducción de valores tiene el siguiente formato:
zero_position; complex0, complex1, complex2, complex3,…
El primer campo, zero_position, indica la posición del origen del eje
temporal respecto de la cadena de caracteres posterior. Si queremos indicar
que el cero temporal está en el elemento complex1, introduciremos 1. Si
queremos indicar que el cero temporal está en el elemento complex0,
introduciremos 0. Si por el contrario queremos indicar que el cero está
ubicado más a la izquierda del complex0, introduciremos el valor numérico
negativo que indique la cantidad de posiciones que queremos correr la
secuencia hacia la derecha.
Por su parte, los campos complex indican el valor de cada una de las
muestras de la secuencia. El formato es el siguiente:
± Real ± Imaginario i
Cualquiera de las dos e inclusive las dos partes que componen el campo
complex pueden estar ausentes. Así, para introducir el valor cero, se puede
introducir el carácter numérico “0” o no introducir nada, por poner un
ejemplo. También pueden estar intercambiadas sus posiciones,
introduciendo primero el campo imaginario y después el campo real. El
carácter para denotar el valor imaginario es i latina minúscula “i” (no
confundir con el carácter jota minúscula “j”).
El campo zero_position está separado del resto de valores por el carácter
delimitador punto y coma “;”, mientras que el resto de valores complex
están separados entre sí por el carácter delimitador coma “,”.
En caso de incumplir estas simples normas de formato y tratar de
introducir esta secuencia errónea, el sistema nos indicará del error de la
siguiente manera.
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
77
4.3.5.6.4 Properties Plot y Plot Compare
Este es el cuadro de diálogo Properties de un elemento Plot o Plot
Compare. Además de los ya mencionados campos Operation y Title tiene los
siguientes otros campos y botones:
• Plot Cartesian: Al hacer click en este botón se nos muestra una
ventana nueva con un cuadro Show Cartesian.
• Plot Polar: Al hacer click en este botón se nos muestra una
ventana nueva con un cuadro Show Polar.
• Pestañas de selección: Haciendo click en estas pestañas
accedemos a la configuración de cada uno de los elementos que
componen los cuadros Show Cartesian y Show Polar (parte real,
parte imaginaria, módulo y fase).
• Line Color: Haciendo click en este elemento se nos despliega un
diálogo que permite elegir el color con el que se quieren
representar las muestras de la gráfica.
• Background Color: Haciendo click en este elemento se nos
despliega un diálogo que permite elegir el color con el que se
quiere representar el fondo de la gráfica.
• Auto X: Al activar esta casilla permitimos que el sistema calcule el
máximo y el mínimo del eje X entre los cuales representar la
gráfica.
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
78
• Auto Y: Al activar esta casilla permitimos que el sistema calcule el
máximo y el mínimo del eje Y entre los cuales representar la
gráfica.
• Min. X: Si la casilla Auto X está desactivada, se puede elegir
manualmente el mínimo del eje X que se quiere representar en la
gráfica.
• Max. X: Si la casilla Auto X está desactivada, se puede elegir
manualmente el máximo del eje X que se quiere representar en la
gráfica.
• Min. Y: Si la casilla Auto Y está desactivada, se puede elegir
manualmente el mínimo del eje Y que se quiere representar en la
gráfica.
• Max. Y: Si la casilla Auto Y está desactivada, se puede elegir
manualmente el máximo del eje Y que se quiere representar en la
gráfica.
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
79
4.3.5.6.5 Properties Circular Convolution
Este es el cuadro de diálogo Properties de un Circular Convolution.
Además de los ya mencionados campos Operation y Title tiene otro campo
más, el campo N points. Este indica el módulo de la operación de
convolución circular.
4.3.5.6.6 Properties Circular Time Invert
Este es el cuadro de diálogo Properties de un Circular Time Invert.
Además de los ya mencionados campos Operation y Title tiene otro campo
más, el campo N points. Este indica el módulo de la operación de inversión
temporal circular.
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
80
4.3.5.6.7 Properties Delay y Circular Delay
Este es el cuadro de diálogo Properties de un elemento Delay o Circular
Delay. Además de los ya mencionados campos Operation y Title tiene otro
campo más, el campo Delay.
El campo Delay tan sólo permite introducir números enteros y nos
permite desplazar hacia la izquierda o la derecha tantas posiciones como se
indiquen en este campo. Para desplazar una secuencia hacia la derecha
basta con introducir un entero positivo, mientras que para desplazarla hacia
la izquierda bastaría con introducir un entero negativo.
El campo N points sólo está disponible para el elemento Circular Delay e
indica el módulo de la operación de desplazamiento circular.
4.3.5.6.8 Properties Multiplication by a number
Este es el cuadro de diálogo Properties de un elemento Multiplication by
a number.
Al igual que el cuadro de diálogo anterior, tan sólo tiene un campo
adicional a los de Operation y Title; este campo es el campo Constant. El
campo Constant está dividido en dos, parte real y parte imaginaria, y
permite introducir la constante (compleja) por la cual se multiplicará la
secuencia de entrada a este elemento.
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
81
4.3.5.6.9 Properties Power
Este es el cuadro de diálogo Properties de un elemento Power.
Al igual que el cuadro de diálogo anterior, tan sólo tiene un campo
adicional a los de Operation y Title; este campo es el campo Factor. El
campo Factor está dividido en dos, parte real y parte imaginaria, y permite
introducir el factor (complejo) por al cual se elevará la secuencia de entrada
a este elemento.
4.3.5.6.10 Properties FFT e Inverse FFT
Este es el cuadro de diálogo Properties de un bloque FFT y otro Inverse
FFT. Además de los ya mencionados campos Operation y Title tiene otro
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
82
campo más, el campo N points. Este indica el módulo de la operación de
cálculo de la FFT y la FFT inversa.
4.3.5.6.11 Properties FIR Window
Este es el cuadro de diálogo Properties de un elemento FIR Window. Este
cuadro de diálogo guarda ciertas similitudes con el cuadro de diálogo de un
elemento Sequence. Este cuadro de diálogo permite modificar la respuesta
impulsiva del filtro.
Además de los ya mencionados campos Operation y Title tiene los
siguientes otros campos y botones:
• M: Este campo puede tomar valores enteros y siempre mayores o
iguales que 1. Con este campo se configura el tamaño de la
ventana.
• Type: Este campo es una lista desplegable donde se puede
seleccionar el tipo de ventana que queremos configurar. Los tipos
de ventanas disponibles son:
- Rectangular
- Bartlett
- Hanning
- Hamming
- Blackman
• Tabla de valores: Esta tabla muestra la parte real e imaginaria de
la ventana configurada. A diferencia de la tabla de valores del
elemento Sequence, en esta tabla no se permite modificar los
valores de la ventana FIR.
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
83
4.3.5.7 About
Al cuadro de diálogo About se puede acceder a través de
Others�Contact o a través de cualquier menú desplegable del Panel de
Operaciones. Este cuadro de diálogo ofrece datos básicos de la aplicación
como la versión de la aplicación, autor, año de edición, etc.
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
84
4.3.5.8 Contact
Al seleccionar Others�Contact se abre, no un cuadro de diálogo
tradicional, sino una ventana de Nuevo Mensaje de la aplicación
predeterminada de Gestión de E-Mail. En esta ventana están recogidos
todos los datos necesarios para ponerse en contacto con el desarrollador de
la aplicación.
4.3.5.9 Options
Al seleccionar Edit�Options se abre un cuadro de diálogo que permite
personalizar el número total de iteraciones a realizar cuando existe un bucle
en el grafo de operaciones del Panel de Operaciones. A mayor número de
iteraciones, mayor tiempo de cálculo y mayor cantidad de muestras
obtenidas.
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
85
4.3.6 Bloques funcionales
4.3.6.1 Descripción
Hasta ahora hemos visto cuáles son los distintos menús de la aplicación,
pero todavía no se ha comentado nada acerca del funcionamiento de la
aplicación ni de las posibilidades que ésta tiene.
La aplicación permite realizar de manera gráfica las operaciones con
secuencias descritas en los subapartados siguientes. Cada operación está
asociada a un bloque funcional visual del Panel de Operaciones. Estos
bloques funcionales constituyen los vértices del grafo del Panel de
Operaciones.
Todos estos bloques funcionales pueden ser añadidos desde el menú
Actions�Add o desde cualquier menú desplegable al realizar click derecho
con el ratón en el Panel de Operaciones (recordemos que sin seleccionar
ningún elemento de dicho panel).
A grandes rasgos, podemos dividir los bloques funcionales en tres
grandes grupos:
• Source
• Sink
• Intermediate
4.3.6.2 Sources
Como Sources están catalogados los bloques funcionales que actúan
como fuentes de información dentro del grafo del Panel de Operaciones.
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
86
Como tales, estos bloques funcionales tan sólo tienen salidas. Al menos un
bloque funcional de este tipo es necesario para realizar los cálculos en el
Panel de Operaciones.
4.3.6.2.1 Sequence y Fast Sequence
Este bloque funcional, con una única salida, permite la introducción de
una secuencia temporal y otra secuencia frecuencial en el Panel de
Operaciones.
4.3.6.2.2 Fast Sequence y Frequency Fast Sequence
Al igual que el bloque funcional Sequence y Frequency Sequence, este
también tiene una única salida y también permite la introducción de una
secuencia en el Panel de Operaciones. La única diferencia radica en la
manera de configurar la secuencia; mientras que el bloque Sequence
requiere de varios pasos para su configuración, el bloque Fast Sequence tan
sólo requiere introducir de manera manual los valores deseados de la
secuencia vía teclado, siendo este método de introducción más rápido que
el primero, de ahí su nombre.
4.3.6.3 Sink
Como Sink están catalogados aquellos bloques funcionales que actúan
como sumideros de información dentro del grafo del Panel de Operaciones.
Como tales, estos bloques sólo tienen entradas. Al menos un bloque
funcional de este tipo es necesario para realizar los cálculos en el Panel de
Operaciones.
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
87
4.3.6.3.1 Plot
Al contrario que los dos bloques anteriores, este bloque funcional sólo
tiene una única entrada y, al actuar como sumidero, permite visualizar las
secuencias que en él entran de manera gráfica.
4.3.6.3.2 Plot Compare
Este bloque también actúa como sumidero de información y, a diferencia
del bloque funcional Plot, este bloque tiene dos entradas. El bloque Plot
Compare permite visualizar y comparar las dos secuencias que en él entran
de manera gráfica.
4.3.6.4 Intermediate
A diferencia de los bloques funcionales tipo Sink o tipo Source, estos
bloques funcionales combinan diferentes números de entradas y salidas (al
menos una entrada y una salida). Estos bloques no actúan ni como fuentes
ni como sumideros de información, simplemente transforman la información
que a ellos llega y la devuelven ya transformada.
Estos bloques han de estar colocados obligatoriamente entre una fuente
y un sumidero de información, aunque no es necesario que dichas fuentes o
sumideros sean nodos adyacentes a este bloque en el grafo del Panel de
Operaciones. No es imprescindible tampoco que haya ningún bloque de este
tipo aunque, si queremos realizar algún cálculo más complejos que crear
una secuencia y visualizarla, sí que son necesarios.
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
88
4.3.6.4.1 Addition
Este bloque funcional tiene dos entradas y una salida. Como su propio
nombre indica, este bloque devuelve la suma, muestra a muestra, de las
dos secuencias de entrada.
4.3.6.4.2 Convolution
Al igual que el bloque anterior, este bloque también tiene dos entradas y
una salida. Este bloque devuelve la convolución entre las dos secuencias de
entrada.
4.3.6.4.3 Circular Convolution
Este bloque funcional realiza el cálculo de la convolución circular entre
las secuencias de entrada.
Hay que tener en cuenta que lassecuencias de entrada deben ser
causales(si no lo son se “causalizan” automáticamente multiplicándose por
la secuencia escalón).
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
89
4.3.6.4.4 Delay
Este bloque funcional realiza el desplazamiento temporal de la secuencia
de entrada devolviendo como salida la secuencia entrante desplazada en el
tiempo.
4.3.6.4.5 Circular Delay
Este bloque funcional realiza el desplazamiento circular temporal de la
secuencia de entrada. Al igual que el bloque Circular Convolution, requiere
que la secuencia de entrada sea causal (si no lo es se “causaliza”
automáticamente multiplicándose por la secuencia escalón)
4.3.6.4.6 Time Invert
Este bloque realiza la inversión temporal de la secuencia de entrada.
4.3.6.4.7 Circular Time Invert
Este bloque realiza la inversión temporal circular de la secuencia de
entrada. La secuencia de entrada debe ser causal (si no lo es se “causaliza”
automáticamente multiplicándose por la secuencia escalón).
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
90
4.3.6.4.8 Multiplication by a number
Este bloque realiza la multiplicación de la secuencia de entrada por un
escalar (real o complejo). La configuración del escalar se realiza dentro del
cuadro de diálogo Properties de este bloque funcional.
4.3.6.4.9 Multiplication
Este bloque realiza la multiplicación, muestra a muestra, entre las dos
secuencias de entrada, devolviendo a la salida el resultado de la misma.
4.3.6.4.10 Power
Este bloque calcula la potencia, muestra a muestra, de la secuencia de
entrada. El factor de la potencia al que se elevan las muestras se configura
en el diálogo Properties de este bloque funcional, pudiendo ser este tanto
real como complejo.
4.3.6.4.11 Conjugation
Este bloque realiza la conjugación de la secuencia de entrada.
Evidentemente, si la secuencia de entrada es real, a la salida de este bloque
se encontrará la misma secuencia que a la entrada.
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
91
4.3.6.4.12 Symmetric Conjugate Part
Este bloque realiza el cálculo de la parte simétrica conjugada de la
secuencia de entrada. Si la secuencia de entrada es real, da como resultado
la parte par de la secuencia de entrada.
4.3.6.4.13 Antisymmetric Conjugate Part
Este bloque realiza el cálculo de la parte antisimétrica conjugada de la
secuencia de entrada. Si la secuencia de entrada es real, da como resultado
la parte impar de la secuencia de entrada.
4.3.6.4.14 FIR Window
Este bloque realiza la limitación de la secuencia de entrada
multiplicándola por la ventana elegida dentro del diálogo Properties del
bloque. Es necesario para construir un filtro FIR, pero no es suficiente sólo
con él, hay que hacer pasar la respuesta impulsiva del filtro ideal por él
para construir la respuesta impulsiva completa del filtro.
4.3.6.4.15 FFT
Este bloque realiza el cálculo de la Fast Fourier Transform, devolviendo a
su salida una secuencia cuyas muestras son el resultado de la FFT. Al igual
que si de una secuencia normal se tratase, se puede operar con esta
secuencia con los bloques funcionales anteriores.
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
92
4.3.6.4.16 Inverse FFT
Este bloque realiza el cálculo de la FFT inversa de la secuencia de
entrada, pasando del dominio de la frecuencia a la entrada al dominio del
tiempo a la salida.
4.3.6.5 Movimientos con bloques funcionales
Una vez descritos todos los bloques funcionales procedemos a describir
los movimientos que se pueden realizar con ellos.
4.3.6.5.1 Selección
Para seleccionar un bloque funcional basta con situar el ratón encima de
él y hacer click simple con el botón izquierdo del ratón sobre él.
Automáticamente su aspecto cambiará y se podrá observar sobre él un
resaltado con 8 cuadros verdes sobre las 4 esquinas del bloque y los centros
de las aristas.
4.3.6.5.2 Añadido
Ya se ha descrito anteriormente la manera de añadir un bloque
funcional, aunque no está de más volver a explicarlo. Existen dos métodos:
• Hacer click con el botón derecho sobre cualquier espacio vacío del
Panel de Operaciones y seleccionar Add en el menú desplegable,
pudiéndose elegir en el cuadro de diálogo Add el bloque deseado.
• Sin nada seleccionado en el panel de operaciones, acceder al
menú Actions�Add, pudiéndose elegir en el cuadro de diálogo Add
el bloque deseado.
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
93
4.3.6.5.3 Eliminado
El eliminado de un bloque funcional se puede hacer de dos maneras
diferentes.
• Haciendo click con el botón derecho del ratón sobre el bloque
funcional y seleccionar Delete en el menú desplegable.
• Haciendo click simple con el botón izquierdo del ratón sobre el
bloque funcional para seleccionarlo y pulsar en la barra de menús
Actions�Delete.
4.3.6.5.4 Desplazamiento
Para desplazar un bloque funcional basta con seleccionarlo tal y como se
ha descrito anteriormente. Una vez hecho esto ubicar el ratón encima del
bloque funcional (en cualquier zona menos en uno de los 8 cuadros verdes)
y mantener pulsado el botón izquierdo del ratón mientras se arrastra a la
zona donde se desee ubicarlo. Una vez allí, soltar el botón izquierdo del
ratón.
4.3.6.5.5 Cambio de tamaño
Para cambiar el tamaño de un bloque funcional basta con seleccionarlo
tal y como se ha descrito anteriormente. Una vez hecho esto ubicar el ratón
encima de cualquiera de los 8 cuadros verdes y mantener pulsado el botón
izquierdo del ratón mientras se arrastra hasta conseguir el tamaño deseado.
Una vez conseguido el tamaño deseado, soltar el botón izquierdo del ratón.
4.3.7 Aristas
4.3.7.1 Descripción
Las aristas son, en el grafo del Panel de Operaciones los elementos que
unen los distintos bloques funcionaleso vértices con el objeto de realizar el
trasvase de información de un bloque a otro. Estas aristas otorgan sentido
al grafo del Panel de Operaciones.
Las aristas en nuestro grafo son aristas con dirección, es decir, nuestro
grafo es un grafo dirigido, teniendo las aristas un origen y un destino.
El aspecto de las aristas es el siguiente:
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
94
4.3.7.2 Movimientos con aristas
Una vez descritas las aristas, procederemos a describir los movimientos
que se pueden realizar con ellas.
4.3.7.2.1 Selección
Para seleccionar una arista basta con hacer click simple con el botón
izquierdo del ratón sobre ella. Una vez seleccionada, su aspecto visual
cambiará a este otro, apareciendo un cuadro verde en el centro y dos
cuadros azules a cada uno de sus extremos.
4.3.7.2.2 Añadido
Para añadir una arista basta pasar el ratón sobre el puerto de salida del
bloque funcional deseado. Al pasar el ratón se destacará en verde el puerto
de salida. En este momento basta con mantener pulsado el botón izquierdo
del ratóny arrastrar hasta el puerto de entrada de otro bloque funcional. Al
momento de pasar el ratón sobre el puerto de entrada del bloque funcional,
este se destacará en verde, entonces es el momento de soltar el botón
izquierdo del ratón.
Como restricciones al añadido de aristas tenemos las siguientes:
• Un puerto de entrada no puede actuar como salida de una arista.
• Un puerto de salida no puede actuar como entrada de una arista.
• Un puerto de entrada sólo puede tener una arista de entrada.
• Un puerto de salida puede tener tantas aristas de salida como se
quiera.
• No puede haber aristas sin conectar en el grafo (si las hay, la
aplicación dará error a la hora de realizar los cálculos).
4.3.7.2.3 Eliminado
El eliminado de una arista se puede hacer de dos maneras diferentes.
• Haciendo click con el botón derecho del ratón sobre la arista y
seleccionar Delete en el menú desplegable.
• Haciendo click simple con el botón izquierdo del ratón sobre la
arista para seleccionarla y pulsar en la barra de menús
Actions�Delete.
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
95
4.3.7.2.4 Cambio de origen o destino
Para realizar el cambio de origen o destino de la arista habría que
seleccionar la arista tal y como se ha descrito anteriormente y, una vez
seleccionada, mantener pulsado el botón izquierdo del ratón sobre el cuadro
azul que queramos mover y arrastrar hasta el puerto de entrada o salida
deseado. Una vez el puerto se destaque en verde, soltar el botón izquierdo
del ratón.
4.3.7.2.5 Re-rutado de arista
Para cambiar la ruta que sigue la arista habría que seleccionar la arista
tal y como se ha descrito anteriormente y, una vez seleccionada, mantener
pulsado el botón izquierdo del ratón sobre el cuadro verde del centro de la
arista y arrastrar hasta la posición deseada. Una vez allí, soltar el botón
izquierdo del ratón.
4.3.7.2.6 Desplazamiento
Para mover la arista basta con seleccionar la misma como se ha
explicado anteriormente, mantener pulsado el botón izquierdo del ratón
sobre el cuerpo de la misma (cualquier punto es válido exceptuando los dos
cuadros azules de los extremos y el cuadro verde central) y arrastrar. Una
vez se ubique en el lugar deseado basta con soltar el botón izquierdo del
ratón.
Cabe destacar que este movimiento elimina la conexión con el puerto de
entrada y de salida de los bloques, por lo que habría que volver a
conectarlos de nuevo.
4.3.8 Proceso de ejecución
Para conseguir realizar los cálculos deseados habría que seguir el
siguiente proceso:
• Iniciar el applet o la aplicación.
• Pulsar el botón Start Application.
• Añadir los bloques funcionales deseados.
- Recordar que al menos una fuente y un sumidero deben ser
añadidos.
• Conectar todos los bloques funcionales.
SOFTWARE PARA CÁLCULO Y APRENDIZAJE DE SEÑALES DISCRETAS
96
- Recordar que si existe un bloque funcional con algún puerto
sin conectar la aplicación informará del error a la hora de
visualizar los resultados.
- Recordar también que la aplicación informará de error a la
hora de visualizar los resultados en caso de que queden
aristas con al menos uno de sus extremos sin conectar.
- Recordar, por último, que en caso de montar un lazo de
realimentación entre los bloques funcionales, dicho lazo
deberá contener un retraso de al menos una muestra (hacia
adelante o hacia atrás). En caso contrario, el sistema
también informará del error al tratar de visualizar los
resultados.
• Visualizar el resultado de los cálculos a través de los bloques
funcionales Plot y Plot Compare (bien gráficamente o bien
numéricamente).
• En caso necesario, modificar la arquitectura del grafo, añadiendo o
quitando bloques funcionales y añadiendo, quitando o modificando
la interconexión entre ellos, cumpliendo siempre las restricciones
mencionadas anteriormente.