1 Nueva metodología de enseñanza de procesado digital de la señal utilizando la API “joPAS”...

18
1 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.

Transcript of 1 Nueva metodología de enseñanza de procesado digital de la señal utilizando la API “joPAS”...

Page 1: 1 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.

1

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.

Page 2: 1 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.

2

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

Page 3: 1 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.

3

ÍNDICE

1. Octave

2. Java

3. Diseño

4. Metodología de trabajo

5. Estructura de la API

6. Ejemplos

7. Resultados y conclusiones

Page 4: 1 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.

4

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.

Page 5: 1 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.

5

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.

Page 6: 1 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.

6

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.

Page 7: 1 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.

7

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.

Page 8: 1 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.

8

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.

Page 9: 1 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.

9

Metodología de trabajo

Page 10: 1 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.

10

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.

Page 11: 1 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.

11

Ejemplo

double a = 2;

Matrix mA= new Matrix (a,"a");

jopas.Load(mA);

jopas.execute(“b=a+1”);

Matrix mB = jopas.Save("b");

Page 12: 1 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.

12

Ejemplo de un filtro Chevichev

Page 13: 1 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.

13

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;

Page 14: 1 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.

14

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. Frecuencia de corte del filtro.2. Frecuencia de rechazo del filtro.3. Rizado en la banda de paso.4. Atenuación de la banda de rechazo.

• Dos jTextField en los que se visualizarán los siguientes datos:1. Orden del filtro2. 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.

Page 15: 1 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.

15

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");

Page 16: 1 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.

16

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.

Page 17: 1 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.

17

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

Page 18: 1 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.

18

Gracias por su atención

http://jopas.sourceforge.net