2024-09-01
数学之美
00

目录

傅里叶级数与傅里叶变换
背景
公式
示例题目
详细讲解
Python代码求解
实际生活中的例子
一个python例子

傅里叶级数与傅里叶变换

背景

傅里叶级数和傅里叶变换是数学和工程领域中的重要工具,特别是在信号处理、图像处理和物理学中。傅里叶级数用于将周期函数表示为正弦和余弦函数的和,而傅里叶变换用于将任意函数表示为频率的函数。

公式

  • 傅里叶级数:给定周期函数 f(t)f(t),其傅里叶级数表示为:

    f(t)=a0+n=1(ancos(2πntT)+bnsin(2πntT)) f(t) = a_0 + \sum_{n=1}^{\infty} \left( a_n \cos \left( \frac{2\pi n t}{T} \right) + b_n \sin \left( \frac{2\pi n t}{T} \right) \right)

    其中:

    a0=1T0Tf(t)dt a_0 = \frac{1}{T} \int_{0}^{T} f(t) \, dt
    an=2T0Tf(t)cos(2πntT)dt a_n = \frac{2}{T} \int_{0}^{T} f(t) \cos \left( \frac{2\pi n t}{T} \right) \, dt
    bn=2T0Tf(t)sin(2πntT)dt b_n = \frac{2}{T} \int_{0}^{T} f(t) \sin \left( \frac{2\pi n t}{T} \right) \, dt
  • 傅里叶变换:给定函数 f(t)f(t),其傅里叶变换表示为:

    F(f)(ω)=F(ω)=f(t)eiωtdt \mathcal{F}(f)(\omega) = F(\omega) = \int_{-\infty}^{\infty} f(t) e^{-i\omega t} \, dt

    其逆变换为:

    f(t)=12πF(ω)eiωtdω f(t) = \frac{1}{2\pi} \int_{-\infty}^{\infty} F(\omega) e^{i\omega t} \, d\omega

示例题目

题目:求周期函数 f(t)=tf(t) = t 在区间 [π,π][-\pi, \pi] 上的傅里叶级数表示。

详细讲解

  1. 计算 a0a_0

    a0=12πππtdt=0 a_0 = \frac{1}{2\pi} \int_{-\pi}^{\pi} t \, dt = 0
  2. 计算 ana_n

    an=1πππtcos(nt)dt=0 a_n = \frac{1}{\pi} \int_{-{\pi}}^{\pi} t \cos(nt) \, dt = 0
  3. 计算 bnb_n

    bn=1πππtsin(nt)dt=2(1)n+1n b_n = \frac{1}{\pi} \int_{-\pi}^{\pi} t \sin(nt) \, dt = \frac{2(-1)^{n+1}}{n}

因此,傅里叶级数为:

f(t)=n=12(1)n+1nsin(nt) f(t) = \sum_{n=1}^{\infty} \frac{2(-1)^{n+1}}{n} \sin(nt)

Python代码求解

python
import numpy as np import matplotlib.pyplot as plt # 定义周期函数 def f(t): return t # 定义傅里叶级数展开的项数 N = 10 # 定义傅里叶级数 def fourier_series(t, N): result = np.zeros_like(t) for n in range(1, N + 1): result += (2 * (-1)**(n + 1) / n) * np.sin(n * t) return result # 生成时间点 t = np.linspace(-np.pi, np.pi, 1000) # 计算傅里叶级数近似 f_approx = fourier_series(t, N) # 绘图 plt.plot(t, f(t), label='Original function') plt.plot(t, f_approx, label='Fourier series approximation') plt.legend() plt.xlabel('t') plt.ylabel('f(t)') plt.title('Fourier Series Approximation') plt.grid(True) plt.show()

实际生活中的例子

在实际生活中,傅里叶变换用于信号处理,例如将音频信号转换为频谱,以分析不同频率的声音成分。傅里叶级数则在分析周期信号(如振动和电波)时非常有用。通过将复杂的周期信号分解为简单的正弦和余弦分量,可以更容易地理解和处理这些信号。

一个python例子

dart
import numpy as np import matplotlib.pyplot as plt # 定义周期函数的频率和系数 T = 2 * np.pi # 周期 N = 5 # 傅里叶级数的项数 # 定义时间范围 t = np.linspace(-np.pi, np.pi, 1000) # 定义傅里叶级数的各项 def fourier_series_terms(t, N): terms = [] for n in range(1, N + 1): term = (2 * (-1)**(n + 1) / n) * np.sin(n * t) terms.append(term) return terms # 计算傅里叶级数的各项 terms = fourier_series_terms(t, N) # 绘图 plt.figure(figsize=(12, 8)) # 原始函数 plt.subplot(2, 1, 1) plt.plot(t, t, label='Original function') plt.title('Original Function') plt.xlabel('t') plt.ylabel('f(t)') plt.legend() plt.grid(True) # 各项的和 plt.subplot(2, 1, 2) sum_terms = np.zeros_like(t) for i, term in enumerate(terms): sum_terms += term plt.plot(t, sum_terms, label=f'Term {i+1}') plt.title('Sum of Fourier Series Terms') plt.xlabel('t') plt.ylabel('Sum of terms') plt.legend() plt.grid(True) plt.tight_layout() plt.show()

在这里插入图片描述

如果对你有用的话,可以打赏哦
打赏
ali pay
wechat pay

本文作者:Dong

本文链接:

版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC。本作品采用《知识共享署名-非商业性使用 4.0 国际许可协议》进行许可。您可以在非商业用途下自由转载和修改,但必须注明出处并提供原作者链接。 许可协议。转载请注明出处!