Simulador para el estudio de señales digitales programado en Python.
Esta aplicación de escritorio permite el estudio de señales no convencionales, cuyos símbolos pueden ser ingresados por el usuario, con la finalidad de verificar cuáles son los cambios que ocurren en los distintos indicadores clave de una señal digital, como la ocupación espectral y la fortaleza frente al ruido.
Además tambien permite simular los resultados de señales clásicas como códigos de línea RZ, NRZ, Manchester y modulaciones BPSK, OOK, FSK, QPSK, 8-PSK y 16QAM.
Este simulador funciona a partir del siguiente diagrama de bloque simplificado:
Los bloques representan:
-
Codificador de Línea // Modulador: Se genera la señal digital. El simulador posee dos opciones:
- Señales clásicas: señales estandarizadas con características conocidas y aplicaciones prácticas
- Señales no convencionales: señales cuyos símbolos que la conforman son definidas por el usuario. Las señales no convencionales pueden ser ingresadas de dos formas:
- Símbolos: especificando directamente la forma de sus símbolos.
- Bases: especificando las bases de la señal para luego ingresar las coordenadas de cada símbolo en el diagrama de constelación.
-
Canal AWGN: La señal generada es transmitida por un canal con ruido aditivo blanco gaussiano.
-
Receptor Óptimo Gram-Schmidt: se utiliza un receptor basado en el proceso de ortogonalización Gram-Schmidt para recuperar la señal transmitida con la menor cantidad de errores posibles.
- main.py es el archivo ejecutable del programa.
- Funciones_GUI.py es un archivo con todas las funciones comunes que utilizan las ventanas del simulador.
Los demás archivos son las distintas ventanas que componen el simulador:
-
MainWindow.py es el menú inicial del simulador, y SenalesNoConvencionales.py es el menú del módulo de señales no convencionales.
-
numCiclos.py es la ventana de la verificación de Número de Ciclos en Sinusoides y documentacion.py es la ventana de documentación.
-
SenalesClasicas.py, ScreenSimbolos2.py, ScreenSimbolos3.py, ScreenSimbolos4.py, ScreenBases2.py, ScreenBases3.py, y ScreenBases4.py son las ventanas principales que contiene los resultados de los distintos módulos del simulador.
-
Este proyecto utiliza las librerías numPy, matplotlib y PyQt5.
- Documentación_Simulador.pdf es el documento en PDF con la documentación completa del simulador.
- En la carpeta /UIs/ se encuentran los archivos .ui utilizados por las ventanas del simulador, y los archivos .png que se utilizan en el programa.
En este canal de Youtube podrás encontrar el funcionamiento del programa e instrucciones para su instalación.
En esta carpeta de Drive podrás encontrar los instaladores del simulador tanto para Windows como MacOS.
Este PDF contiene un documento que resume el trabajo realizado.