Download joPAS - jenui 2006

Document related concepts
no text concepts found
Transcript
Nueva metodología de enseñanza de
procesado digital de la señal utilizando la
API “joPAS”
J. VICENTE, B. GARCÍA, I. RUIZ, A. MENDEZ , O. LAGE
Departamento de Arquitectura de los Computadores, Automática,
Electrónica y Telecomunicaciones.
Universidad de Deusto.
1
Motivación
• El desarrollo de la API de programación “joPAS” surge
de la necesidad del grupo de investigación PAS de
proporcionar a sus algoritmos de un interface de
usuario.
• La finalidad de “joPAS” es proporcionar una
herramienta que permita el rápido desarrollo de
aplicaciones.
• La API “joPAS” permite no tener que reimplementar el
código desarrollado en OCTAVE.
• Diseño atractivo de prácticas de laboratorio de
procesado digital de señal
2
ÍNDICE
1.
2.
3.
4.
5.
6.
7.
Octave
Java
Diseño
Metodología de trabajo
Estructura de la API
Ejemplos
Resultados y conclusiones
3
OCTAVE I
• Octave es un lenguaje de alto nivel para
el cálculo numérico.
• Sus principales diferencias con otros
lenguajes de programación.
• Operaciones matriciales nativas.
• Operaciones con números complejos nativas
• Lenguaje interpretado.
4
OCTAVE II
• Octave es el lenguaje ideal para el desarrollo
de algoritmos de procesado de señal,
procesado digital de imagen, sistemas de
control...
• Dispone de multitud de toolboxes que permiten
al usuario evitar tener que comenzar desde
cero al trabajar en una temática en concreto.
• Esta clase de toolboxes, tan especializados no
se encuentran en otros lenguajes de
programación, por ejemplo en java.
5
Desventajas de OCTAVE
• Octave es un lenguaje de programación
interpretado.
• No dispone de entorno gráfico.
• Los algoritmos desarrollados y validados
en Octave generalmente se tienen que
recodificar en otro lenguaje para
obtener aplicaciones finales de usuario.
6
JAVA
• Lenguaje de programación que fue diseñado
para ser independiente de la plataforma.
• Tiene una sintaxis más sencilla que C++.
• Gestión sencilla de la memoria, gracias a la
robusta maquina virtual.
• Multihilo para aplicaciones de alto rendimiento
que necesiten realizar actividades en paralelo.
• Es más complicado programar cálculos
científicos en java que en otros lenguajes de
programación específicos para dicha tarea.
7
Diseño
• Tomando como premisa la necesidad de reutilizar el
código desarrollado en Octave, en vez de reescribirlo
en otro lenguaje de programación, y también
considerando la necesidad de disponer de interfaces
gráficos de usuario, la mejor propuesta es la siguiente:
– El interface de usuario se implementa en JAVA, manteniendo
el cálculo científico en Octave.
– La API joPAS se utiliza como nexo de unión entre JAVA y
Octave.
– joPAS permite el intercambio de variables entre los dos
lenguajes de programación además de la ejecución de
sentencias de Octave desde JAVA.
8
Metodología de trabajo
9
Estructura de la API joPAS
• La API joPAS contiene numerosas clases, las más
importantes son las siguientes:
– Jopas  Esta es la clase fundamental de la API, es la
encargada de gestionar la comunicación con Octave mediante
tres métodos, load, save y execute.
– Matrix  Esta clase contiene el tipo de datos que entiende la
clase jopas. Esta clase es un contenedor de matrices, que
pueden ser reales o complejas. La clase jopas admite en el
método load ese tipo de datos y en el método save siempre
devuelve un objeto tipo Matrix.
– JopasLabel  Esta clase es una reimplementación de la clase
JLabel de Java, la cual tiene un método importante llamado
print. El método print se encarga de realizar la representación
grafica de una señal en el label.
10
Ejemplo
double a = 2;
Matrix mA= new Matrix (a,"a");
jopas.Load(mA);
jopas.execute(“b=a+1”);
Matrix mB = jopas.Save("b");
11
Ejemplo de un filtro Chevichev
12
Sentencias de Octave para el
diseño de un filtro
[N,W]=cheb1ord(FC/10000,FR/10000,R,A);
[B,A]=cheby1(N,R,W);
[H,F]=freqz(B,A,512,20000);
modulodB=20*log10(abs(H));
fase=unwrap(angle(H)); Fc=W*10000;
13
Estructura de la API joPAS
La interface de usuario consta de:
•
•
Dos JopasLabel, en el superior se representará el módulo de la respuesta
frecuencial y en el inferior se representará la fase de la respuesta
frecuencial del filtro
Cuatro jTextField en los que se introducirá los siguientes parámetros.
1.
2.
3.
4.
•
Frecuencia de corte del filtro.
Frecuencia de rechazo del filtro.
Rizado en la banda de paso.
Atenuación de la banda de rechazo.
Dos jTextField en los que se visualizarán los siguientes datos:
1. Orden del filtro
2. Frecuencia de corte del filtro diseñado.
•
Un botón para lanzar el proceso de diseño del filtro. En el método de
actionPerformed se realizarán las llamadas necesarias para implementar el
filtro.
14
Código de la Demo joPAS
//Read the values of the input textFields of the GUI
String FC = jTFFrecCorte.getText();
String FR = jTFFrecRechazo.getText();
String R = jTFRizado.getText();
String A = jTFAtenuacion.getText();
//Generate de OCTAVE variables
jopas.Load(Double.parseDouble(FC), "FC");
jopas.Load(Double.parseDouble(FR), "FR");
jopas.Load(Double.parseDouble(R), "R");
jopas.Load(Double.parseDouble(A), "A");
//Executes the Octave commands using local variables
jopas.Execute("[N,W]=cheb1ord(FC/10000,FR/10000, R , A )");
jopas.Execute("[B,A]=cheby1(N," + R + ",W)");
jopas.Execute("[H,F]=freqz(B,A,512,20000)");
jopas.Execute("modulodB=20*log10(abs(H))");
jopas.Execute("fase=unwrap(angle(H))");
jopas.Execute("Fc=W*10000");
15
Resultados
– Mediante esta API se permite que la implementación
del algoritmo de procesado digital de señal se
realice en un lenguaje de programación indicado para
esta tarea, “Octave”.
– Por el otro, la implementación de la interfaz de
usuario en “Java”, un lenguaje de programación más
indicado para este tipo de tareas.
– Gracias a esta división entre la parte algorítmica y la
de visualización se consigue que las aplicaciones se
diseñen de una forma más rápida.
16
Resultados II
– Gracias al uso de la API joPAS en el desarrollo de
prácticas de procesado de señal se ha conseguido
aumentar la motivación de los alumnos
– Más alumnos han mostrado interés en realizar sus
proyectos de fin de carrera en el área de procesado
de señal.
– dsPICgp
– Diagnóstico de patologías a partir de imágenes de
densitometrías óseas
17
Gracias por su atención
http://jopas.sourceforge.net
18