INICIO > Software  > Analizador Espectros >  
wavescope_001.jpg
ANALIZADOR DE ESPECTROS
  • MOTIVACIONES
  • Despues de haber creado el osciloscopio virtual, me surgio la idea de hacer lo mismo pero con un analizador de espectros, este analizador sera muy basico ya que no prentendo profundizar en el tema, simplemente el poder llevar a la practica conceptos teoricos aprendidos en la carrera.

  • PLANTEMAMIENTO DEL PROYECTO
  • El plantemamiento de este proyecto presenta dos retos bien diferenciados, ya que en esencia consiste en aplicar unos conceptos matematicos en un programa que dispone de un interfaz grafico de usuario GUI. Este parte del codigo fuente del osciloscopio y por ello estar programado en el lenguaje C y usara la API de Windows para crear el GUI.

    • Conceptos matematicos. En primer lugar un estudio de conceptos matematicos vistos en la carrera para el tratamiento de seņales, como son la Transformada discreta de Fourier FFT y conceptos fisicos como es el movimiento armonico simple (MAS) que sera usado para simular seņales periodicas.
    • Interfaz grafico de usuario. Esta parte del programa se encarga de mostrar los resultados en un grafico del GUI y recoge los datos que el usuario va introduccion a traves de unos mandos de controles.
  • OBJETIVOS
  • Los objetivos que me propongo en este proyecto no son solo son los concernientes a como he realizado su implementacion sino que tambien a otros objetvios que me propongo al incio del proyecto como son la actualizacion y ampliacion de conomientos matematicos y de distintas tecnologias:

  • Diseņo GUI con C. La dedicion de usar C para codificar el software es debido a que durante la carrera los programas que he realizado en Windows usaban exclusivamente la consola de Windows, esto me desperto la curiosidad por realizar la implementacion de GUI con C.
  • APIs de Windows. En la carrera he usado la API en varias asignaturas tocando conceptos como: Multitarea, eventos, semaforos, etc.
  • Codificar MAS en un ejemplo practico hecho en C.
  • Codificar en C la FFT para un uso en el sotfware.
  • Relacionar ambos conceptos matematicos en un ejemplo practico.
  • DESARRALLO DEL PROYECTO
  • Al comienzo de este proyecto dispongo de los conocimientos adquiridos del osciloscopio por lo que salvo detalles puntuales no me es necesario el refresco de nuevos conocimientos. En segundo lugar hay que plantearse la herramienta a usar para el desarrollo del programa, para ello decido usar el lenguaje C, ya que me he propuesto usar la API de windows para controlar el GUI. Es evidente que en C# o Visual Basic seria mas facil de reproducir el GUI, pero en esta primera version quiero manejar el GUI con C y asi quitarme esa espinita que se me quedo en la carrera.

    La arquitectura es la misma que la del osciloscopio: diseņo multitarea con una programacion concurrente que aunque no es necesaria y se podria hacerse con un diseņo secuencial prefiero hacerlo asi, de este modo, consiguo independizar procesos dentro del analizador, pero en contrapartida me aumenta la complejidad del diseņo, pero asi tambien practicar con la API de Windows, que de eso se trata.

  • IMAGENES DEL DISEŅO
  • Imagen global del diseņo, como se observa en la siguiente imagen dispone de una pantalla de visualizacion, en esta se muestran las seņales y permite al usuario seleccionar de la amplitud de las seņales que puede introducir, la base de tiempos y en numero de puntos a mostrar. Ademas dispone de los indicadores de actualizacion de la pantalla y el de saturacion de la zona de visualziaicon, esto lo uso para indicar si hay alguna seņal que sea de mayor amplitud que la que se puede visualizar con el valor que se ha selecionado de amplitud. Tambien se muestra un refresco del hilo principal para indicar que esta corriendo y no se ha quedado colgado en espera de alguna condicion.

    Imagen global de la pantalla

    wavescope_001.jpg

    Imagen global de la pantalla

    wavescope_001.jpg

    Imagen global de la pantalla

    wavescope_001.jpg
  • CONCLUSIONES
    • Aunque en la carrera he visto los conceptos de FFT y MAS de manera teorica y practica pero sobre el papel, la realizacion de este proyecto me ha permitido ampliar y actualizar mis conocimientos sobre ambos conceptos en un caso totalmente practico. Tambien con este proyecto he visto la relaccion directa entre ambos en un ejemplo de aplicacion a nivel de ingenieria como es un analizador de espectros.
    • Gracias a este proyecto he aumentado mi experiencia con el uso de la API para implementar procesos multihilo.
    • Para la implemtanacion de GUIs de una manera mas rapida es mejor usar lenguajes como C# o Visual Basic o LabVIEW ya que facilitan su implementacion de una manera mas facil.
  • LINEAS FUTURAS
  • Este proyecto, tal y como esta hoy diseņado e implementado, se presta a un gran numero de ampliaciones y mejoras, pudiendo agruparlas en dos grupos, por un lado ampliar la funcionalidad y por otro lado el paso del codigo a un entorno de trabajo mas comodo para la realizacion de GUIs como son C#, Visual Basic o incluso LabView son los que conozco y manejo.

    Desde el inicio de este proyecto, algo que he tenido en cuenta y que he pre-codificado ha sido la opcion de poder usar esta aplicacion con un dispositivo hardware conectado al PC desde puerto serie o USB. Este nuevo hardware podria ser un nuevo proyecto diseņado exclusivamente para usar con esta aplicacion, asi, esto me permitiria poder evaluar el software con seņales reales y no simuladas.