content: add Fourier analysis sample post with math and code
This commit is contained in:
61
content/posts/hybrid-post.mdx
Normal file
61
content/posts/hybrid-post.mdx
Normal file
@@ -0,0 +1,61 @@
|
||||
---
|
||||
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.
|
||||
Reference in New Issue
Block a user