Guía 2 - Ejercicio 7: FFT vs Serie

Resolución Ejercicio 7 - FFT Numérica vs Serie Teórica

El Puente entre lo Analítico y lo Numérico

La Serie de Fourier asume que conocemos la ecuación matemática exacta de la función y nos permite calcular coeficientes integrando hasta el infinito. Sin embargo, en el mundo real, los ingenieros no tenemos funciones matemáticas; tenemos muestras discretas obtenidas de un sensor o un conversor Analógico-Digital (ADC).

Para hallar el espectro de esas muestras, utilizamos la Transformada de Fourier Discreta (DFT), que en la práctica siempre se implementa a través de la Transformada Rápida de Fourier (FFT), un algoritmo que reduce la complejidad temporal de O(N2)\mathcal{O}(N^2) a O(Nlog⁡N)\mathcal{O}(N \log N).

El Ejercicio 7 busca que comprobemos empíricamente que ambos caminos llevan a Roma: si tomamos una onda cuadrada, la discretizamos, le aplicamos la FFT y la normalizamos adecuadamente, los picos resultantes en la frecuencia deben coincidir exactamente con los coeficientes analíticos de la Serie de Fourier calculados con lápiz y papel.

Onda Cuadrada Estándar (Impar)

Para este test, utilizamos la función scipy.signal.square. Por defecto, genera una onda cuadrada simétrica sin componente continua (oscila entre -1 y 1) y con simetría impar (f(−t)=−f(t)f(-t) = -f(t)).

Para esta onda impar, el coeficiente a0=0a_0 = 0 y todos los an=0a_n = 0. Solo sobreviven los coeficientes seno:

bn=4Anπpara n imparb_n = \frac{4A}{n\pi} \quad \text{para } n \text{ impar}

Comparación Visual

En el script ejercicio7.py hicimos lo siguiente:

  1. Sampleamos la onda cuadrada a fs=1000 Hzf_s = 1000\text{ Hz} por 2 s2\text{ s} para obtener mucha resolución.
  2. Le aplicamos scipy.fft.fft.
  3. Extrajimos la magnitud absoluta y la normalizamos dividiendo por N/2N/2 (este paso es innegociable para señales reales, como vimos en el Ejercicio 2).
  4. Calculamos por fórmula el valor de bnb_n para los primeros armónicos.

Al graficar:

Comparativa FFT vs Serie

Superpusimos los picos devueltos por la FFT (bastones azules) con los valores exactos arrojados por la fórmula de bnb_n (cruces rojas).

El resultado es un match perfecto. La cruz roja cae exactamente en la punta de cada bastón azul.

[!infobox] Ejercicio 7: FFT vs Coeficientes Teóricos Contexto: Validación cruzada del algoritmo de Transformada Discreta contra la teoría analítica de Fourier. Resolución Analítica/Numérica: Se usó la implementación de scipy.fft sobre una onda cuadrada discretizada. El vector de magnitudes se normalizó como ∣Yk∣/(N/2)|Y_k| / (N/2). Se comparó contra la fórmula de armónicos impares de la onda cuadrada bn=4A/(nπ)b_n = 4A/(n\pi). Advertencia/Clave: La concordancia perfecta demuestra que la FFT no es solo una abstracción, sino un estimador preciso de los coeficientes de Fourier de la señal subyacente, siempre y cuando se normalice correctamente y se cumpla el criterio de Nyquist para evitar aliasing.