Guía 2 - Ejercicio 2: Generación y DFT

Resolución Ejercicio 2 - Análisis Espectral de una Señal Compuesta

Construcción de la Señal

El problema nos pide generar una señal y(t)y(t) compuesta por la suma de tres armónicos sinusoidales de fase nula:

y(t)=3sin⁡(2π⋅1⋅t)+1sin⁡(2π⋅4⋅t)+0.5sin⁡(2π⋅7⋅t)y(t) = 3\sin(2\pi \cdot 1 \cdot t) + 1\sin(2\pi \cdot 4 \cdot t) + 0.5\sin(2\pi \cdot 7 \cdot t)

Para llevar esto al dominio digital, debemos samplear (discretizar) la señal continua. El teorema de muestreo de Nyquist-Shannon establece que la frecuencia de muestreo fsf_s debe ser estrictamente mayor al doble de la máxima frecuencia presente en la señal (fs>2fmaxf_s > 2f_{max}). Como nuestro componente más rápido vibra a 7 Hz, cualquier fs>14 Hzf_s > 14\text{ Hz} reconstruirá la señal sin aliasing. El enunciado nos pide fs=100 Hzf_s = 100\text{ Hz}, por lo que estamos muy holgados (oversampling), asegurando una reconstrucción visual sumamente suave.

Relación entre el vector k y las frecuencias físicas

Cuando calculamos la DFT sobre NN puntos tomados con una frecuencia fsf_s, los coeficientes complejos devueltos XkX_k se mapean a las frecuencias reales ("físicas") del fenómeno mediante:

fk=k⋅fsNf_{k} = k \cdot \frac{f_s}{N}

Donde fs/Nf_s/N se conoce como la resolución espectral (Δf\Delta f). Indica el "ancho" en hertz que representa cada "casillero" de nuestro vector. Por ejemplo, si sampleamos 2 segundos de señal, tenemos N=200N = 200. Nuestra resolución será Δf=100/200=0.5 Hz\Delta f = 100 / 200 = 0.5\text{ Hz}. Podremos "ver" picos de frecuencia con ese nivel de precisión.

Magnitud y Normalización

La DFT estándar (por su misma sumatoria) escala las magnitudes linealmente con la cantidad de muestras NN. Específicamente, para armónicos puros (senos y cosenos reales), la amplitud de la delta espectral en la frecuencia fundamental resulta ser A⋅N/2A \cdot N / 2, donde AA es la amplitud de la onda original temporal.

Para que los ejes del gráfico de frecuencia muestren directamente las magnitudes físicas correctas (amplitudes 33, 11 y 0.50.5), debemos normalizar el vector obtenido tomando su módulo absoluto y dividiendo por N/2N/2:

Amplitud Fıˊsico-Real=∣Xk∣N/2\text{Amplitud Físico-Real} = \frac{|X_k|}{N/2}

Simetría Hermítica

Dado que nuestra señal de entrada es estrictamente real (no tiene parte imaginaria en el dominio del tiempo), su espectro de Fourier presenta lo que se denomina Simetría Hermítica: el espectro para frecuencias negativas es el complejo conjugado del espectro para frecuencias positivas. Esto implica que la parte superior de nuestro vector devuelto por la DFT (que abarca desde la frecuencia de Nyquist fs/2f_s/2 hasta fsf_s) es redundante. Por eso, al graficar, comúnmente truncamos el eje XX en la mitad (N/2N/2).


El script de generación de señal, cálculo espectral y ploteado está disponible en: ejercicio2.py.

Gráfico Espectral

El gráfico resultante confirma empíricamente la presencia exclusiva de las deltas de Dirac ubicadas con total precisión en 1 Hz, 4 Hz y 7 Hz, replicando exactamente las amplitudes paramétricas del enunciado (3, 1 y 0.5 respectivamente).

[!infobox] Ejercicio 2: Generación de Ondas y Análisis Espectral Contexto: Composición en el dominio del tiempo y descomposición en el dominio de la frecuencia mediante la Transformada de Fourier Discreta. Resolución Numérica: Generamos el vector temporal respetando fs=100f_s=100Hz. Para visualizar correctamente el espectro, convertimos los índices de la DFT en Hertz multiplicando por la resolución frecuencial (fs/Nf_s/N). Además, normalizamos la amplitud dividiendo el módulo ∣Xk∣|X_k| por N/2N/2. Graficamos usando stem() limitando a Nyquist (N/2N/2). Advertencia/Clave: Un error de principiante masivo es olvidarse de normalizar la amplitud. Si ploteas directamente abs(fft(x)), vas a ver valores enormes dependientes de cuán larga hiciste tu grabación NN, perdiendo toda noción de la magnitud real de la señal original. Siempre escalá los armónicos dividiendo por la mitad del número de muestras (N/2N/2).