---
title: "Fourier Analysis: From Math to Code"
date: "2025-03-10"
excerpt: "Bridging the gap between Fourier's mathematical theory and practical implementation."
---

Fourier analysis reveals a profound truth: any periodic function can be decomposed into a sum of simple sine and cosine waves.

## The Math

The Fourier series of a function $f(x)$ with period $2\pi$ is:

$$f(x) = \frac{a_0}{2} + \sum_{n=1}^{\infty} \left( a_n \cos(nx) + b_n \sin(nx) \right)$$

where:

$$a_n = \frac{1}{\pi} \int_{-\pi}^{\pi} f(x)\cos(nx)\,dx$$

$$b_n = \frac{1}{\pi} \int_{-\pi}^{\pi} f(x)\sin(nx)\,dx$$

## Python Implementation

Let's approximate a square wave using the first few terms:

```python
import numpy as np
import matplotlib.pyplot as plt

def fourier_square_wave(x, n_terms):
    """Approximate a square wave using Fourier series."""
    result = np.zeros_like(x)
    for n in range(1, n_terms + 1, 2):  # odd harmonics only
        result += (4 / (n * np.pi)) * np.sin(n * x)
    return result

x = np.linspace(-np.pi, np.pi, 1000)
plt.figure(figsize=(10, 6))
plt.plot(x, np.where(x >= 0, 1, -1), 'k--', label='Square wave')

for terms in [1, 3, 7, 15]:
    plt.plot(x, fourier_square_wave(x, terms), label=f'{terms} terms')

plt.legend()
plt.title('Fourier Series Approximation of a Square Wave')
plt.grid(True, alpha=0.3)
plt.savefig('fourier.png', dpi=150)
```

## Understanding Convergence

The Gibbs phenomenon shows that near discontinuities, the approximation overshoots by approximately:

$$9\%$$

This is mathematically expressed as:

$$\lim_{N \to \infty} \text{overshoot} \approx 1.08949 \times \text{jump}$$

## Conclusion

The connection between the elegant mathematics and practical code demonstrates how theory informs implementation. Fourier analysis is the foundation of signal processing, image compression, and countless other applications.
