# 🔬 Microfono Laser — Reconstruccion de Sonido por Vibracion de Vidrio
**Fisica Ondas, Oscilaciones y Espacios Vectoriales**
**Autor:** Alejandro B. E.
---
[](https://matlab.mathworks.com/open/github/v1?repo=Richard7987/Proyecto-Fisica-2do)
## Descripcion
Sistema optico-electronico que captura el sonido dentro de una caja insonorizada **sin contacto fisico**, usando la vibracion que el audio imprime sobre un vidrio. Un laser de 650 nm apunta al vidrio; el reflejo modulado por las vibraciones es capturado por un fotodiodo BPW34, amplificado por un TIA LM358 y un MAX9814, y digitalizado via el jack de microfono de la PC. MATLAB aplica la Transformada de Fourier para reconstruir el audio original.
```
Bocina → vibra vidrio → laser reflejado → BPW34 → TIA LM358 → MAX9814 → jack PC → MATLAB FFT
```
---
## Resultados
### Sistema completo — pipeline BPW34 → TIA → MAX9814 → FFT

| Señal | Frec. base | Error RMS | SNR (dB) | Correlacion |
|------------------------|-------------|-------------|--------------|-------------|
| Tono puro | 1000 Hz | 2.79 × 10⁻⁶ | **102.1 dB** | 1.0000 |
| Acorde Do Mayor | 262 Hz | 2.87 × 10⁻⁴ | **62.1 dB** | 1.0000 |
| Barrido chirp | 100–1000 Hz | 1.06 × 10⁻² | **30.5 dB** | 0.9996 |
| Compleja (5 armonicos) | 262 Hz | 3.00 × 10⁻⁴ | **63.1 dB** | 1.0000 |
---
### Analisis SVD — Espacios Vectoriales

La descomposicion en valores singulares revela la estructura del espacio vectorial de cada senal. El tono puro concentra el 99% de su energia en 1 modo; el acorde en 3 modos (uno por nota); la senal compleja en 5 modos (uno por armonico).
---
### Reconstruccion FFT

---
### Simulacion 3D del montaje experimental

Escena 3D animada del montaje completo: caja insonorizada, vidrio vibrante,laser industrial D18x65mm 650nm 5mW sobre soporte Neiko, BPW34 en tubo negro, ESP32 como fuente 5V, circuito TIA LM358 + MAX9814 + modulo jack ShillehTek en protoboard 830pts, y laptop con MATLAB.
---
### Diagrama de circuito

---
## Hardware
| Componente | Funcion | Valor clave |
|------------------------------|----------------------------|----------------------------------|
| Laser D18x65mm 650nm 5mW | Fuente de luz, enfocable | P = 5 mW, punto continuo |
| BPW34 (fotodiodo PIN) | Luz → corriente | R = 0.3 A/W @ 650 nm |
| LM358 (TIA) | Corriente → voltaje | Rf = 10 kΩ, Cf = 100 pF |
| Capacitor C_ac | Bloqueo DC | 10 µF |
| MAX9814 HiLetgo | Amplificador AGC | Av = 40 dB (GAIN flotante) |
| Capacitor C_sal | Bloqueo offset salida | 47 µF |
| Modulo Jack ShillehTek 3.5mm | Interfaz PC | Entrada microfono, breakout TRRS |
| ESP32 DIYables | Fuente de alimentacion 5V | Pin VIN → rail protoboard |
| Soporte Neiko con pinzas | Posicionar laser en angulo | Ajuste ~30° sobre el vidrio |
**Alimentacion:** ESP32 VIN (+5V) + GND → protoboard
---
## Software
### Estructura del repositorio
```
Proyecto-Fisica-2do/
├── Scripts/
│ ├── script_prueba_demostracion.m # Simulacion completa del sistema
│ ├── simulacion_3d_laser.m # Visualizacion 3D animada
│ └── diagrama_circuito.m # Esquematico del circuito
├── Imagenes/
│ ├── Sistema Laser-Fotosensor — Resultados Completos.png
│ ├── Analisis SVD — Espacios Vectoriales.png
│ ├── Reconstruccion FFT.png
│ ├── Simulacion 3D — Microfono Laser.png
│ └── Diagrama de Circuito — Microfono Laser.png
└── LICENSE
```
### Uso
```matlab
% 1. Simulacion matematica completa (no requiere hardware)
run('Scripts/script_prueba_demostracion.m')
% 2. Simulacion 3D animada del montaje (presionar Q para detener)
run('Scripts/simulacion_3d_laser.m')
% 3. Diagrama de circuito esquematico
run('Scripts/diagrama_circuito.m')
% Guardar en alta resolucion:
print(gcf, '-dpng', '-r300', 'diagrama_circuito.png')
```
**Requisitos:** MATLAB (base) + Signal Processing Toolbox
No requiere Simulink ni Simscape.
---
## Metodo
### Pipeline optico-electronico
```
1. Audio dentro de la caja → vibra el vidrio (Δx ~ µm)
2. Vidrio vibrante modula la intensidad del reflejo del laser
P_luz(t) = P_laser × [1 + m × audio(t)] (m = profundidad de modulacion)
3. BPW34 convierte luz en corriente:
I_foto = R × P_luz (R = 0.3 A/W)
4. TIA LM358 convierte corriente en voltaje:
V_TIA = I_foto × Rf (Rf = 10 kΩ)
5. C_ac elimina el offset DC
6. MAX9814 amplifica con AGC automatico (40 dB)
7. Modulo Jack ShillehTek 3.5mm → jack microfono PC → MATLAB
```
### Reconstruccion por FFT
```matlab
Y = fft(senal_capturada);
umbral = max(abs(Y)) * 0.1; % conservar componentes > 10%
mascara = abs(Y) > umbral; % filtro espectral
mascara = mascara | flipud(mascara); % simetria hermitiana
senal_rec = real(ifft(Y .* mascara)); % reconstruccion
```
### Analisis SVD
La matriz de trayectoria M ∈ ℝ^(ventana × cols) captura la estructura temporal de la senal. Su descomposicion M = UΣVᵀ revela cuantos modos son necesarios para representar el contenido espectral — directamente relacionado con el numero de frecuencias presentes.
---
## Licencia
Distribuido bajo los terminos del archivo [LICENSE](LICENSE).
---
*Proyecto integrador — Fisica 2do Semestre · Ondas, Oscilaciones y Espacios Vectoriales*