Este repositorio contiene el entorno integrado para el modelado, filtrado e identificación de sistemas de procesamiento digital de señales (DSP). La arquitectura del proyecto está estructurada como un monorepo que consta de un motor matemático en Python, un servicio backend en FastAPI para la exposición de endpoints numéricos, y una interfaz de usuario interactiva multiplataforma desarrollada en Tauri y Vue 3.
faculty/: Contiene los entregables académicos del proyecto (Jupyter Notebooks, reportes técnicos y funciones de simulación).faculty/preentrega/: Primera entrega (Parte 1: generación de señales, convolución en tiempo/frecuencia y análisis de filtros).faculty/final/: Entrega final (Parte 2: caracterización e identificación de sistemas desconocidos y coherencia espectral).
core/dsp/: Motor numérico puro implementado en Python (cálculo de transformadas de Fourier, diseño de filtros FIR/IIR y estimaciones espectrales).core/dsp/tests/: Suite de pruebas unitarias automatizadas para la validación de los algoritmos y la precisión matemática.
apps/api/: Servidor FastAPI que actúa como puente de comunicación, exponiendo el motor de cálculo en Python mediante una interfaz HTTP.apps/desktop/: Interfaz de escritorio multiplataforma (HTML/CSS/TS/Vue 3 y Tauri v2) para el análisis dinámico.
El entorno puede evaluarse e interactuarse mediante dos vías independientes, de acuerdo al nivel de profundidad y alcance requerido:
Orientado a la verificación de los desarrollos teóricos, ecuaciones de filtrado, análisis de coherencia espectral y validación del motor numérico sin necesidad de compilar la interfaz de usuario.
Esta vía requiere únicamente una instalación estándar de Python (versión 3.11 o superior). No requiere compiladores de Rust ni gestores de dependencias web.
Abra una terminal, clone el repositorio y acceda a la carpeta raíz:
git clone https://github.com/Roomwaves/dsp-lab.git
cd TP-DSPInicialice y active un entorno virtual (venv):
- En Windows (cmd):
python -m venv .venv .venv\Scripts\activate.bat
- En Windows (PowerShell):
python -m venv .venv Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process .venv\Scripts\Activate.ps1
- En macOS / Linux:
python3 -m venv .venv source .venv/bin/activate
Instale el paquete de DSP local en modo desarrollo/editable junto con los paquetes necesarios para la simulación:
pip install --upgrade pip
pip install -e .
pip install jupyter pytestInicie el entorno interactivo de Jupyter:
jupyter notebookA través del navegador web, acceda al directorio faculty/ para examinar el desarrollo y las celdas de simulación:
- Preentrega (Parte 1): faculty/preentrega/notebook.ipynb (funciones de soporte en faculty/preentrega/functions.py).
- Entrega Final (Partes 1 y 2): faculty/final/notebook.ipynb (funciones de soporte en faculty/final/functions.py).
El núcleo del sistema cuenta con pruebas unitarias (pytest) que aseguran la consistencia numérica de las operaciones matemáticas de filtrado, generación de señales y coherencia espectral en core/dsp/tests/. Para ejecutarlas, corra:
pytestOrientado a la experimentación interactiva de la herramienta completa, permitiendo la manipulación dinámica y en tiempo real de las señales y espectros generados.
- Node.js (v20 o superior).
- Rust (rustup) y herramientas de compilación nativas de C++ (Build Tools para Visual Studio en Windows).
- Python (v3.11 o superior).
- uv (opcional, administrador de paquetes de Python rápido).
-
Instalación de Dependencias Generales:
# Configuración del entorno de Python uv sync # o bien "pip install -e ." con el entorno virtual activo # Configuración del entorno frontend cd apps/desktop npm install cd ../..
-
Inicialización del Backend de Cálculo (FastAPI): Inicie la API de cálculo (por defecto en localhost:8000) ejecutando en su terminal:
npm run api:dev
(Nota: Alternativamente, si dispone de Docker, puede levantar el servicio mediante
npm run docker:up) -
Inicialización del Cliente Gráfico (Tauri + Vue 3): Abra una nueva terminal (manteniendo el backend activo), asegúrese de activar su entorno virtual de Python y ejecute:
npm run dev
El motor de compilación generará la interfaz y abrirá automáticamente la ventana nativa de escritorio del analizador.
- Ferreyra, Florencia
- Gonzalez, Tomás
- Molina, Lara
- Scafati, Jerónimo
- Ferreyra, Florencia
- Gonzalez, Tomás
- Molina, Lara
- Scafati, Jerónimo
Este proyecto se distribuye bajo la licencia PolyForm Noncommercial 1.0.0. No se permite el uso comercial sin autorización previa.

