フーリエ級数と三角関数

三角関数の基礎
No.541
数学

日付:2025年3月13日

フーリエ級数は、物理やエンジニアリング、信号処理の分野で広く使われており、複雑な波形をサイン波とコサイン波の組み合わせで表す強力な手法です。Python を使ってフーリエ級数の可視化も行います。

目 次

1. はじめに

前回の記事では、三角関数の応用として波動や信号処理における役割を学びました。
今回は、フーリエ級数 という概念を紹介し、三角関数を使って周期的な関数を表現する方法について解説します。

フーリエ級数は、物理やエンジニアリング、信号処理の分野で広く使われており、複雑な波形をサイン波とコサイン波の組み合わせで表す 強力な手法です。
Python を使ってフーリエ級数の可視化も行います。

2. フーリエ級数とは?

フーリエ級数とは、ある周期関数 f(x)f(x) を三角関数の無限級数で近似する方法です。
基本的な形は次のようになります。

f(x)=a02+n=1(ancos(nωx)+bnsin(nωx))f(x) = \frac{a_0}{2} + \sum_{n=1}^{\infty} \left( a_n \cos(n \omega x) + b_n \sin(n \omega x) \right)

ここで:

  • a0,an,bna_0, a_n, b_n はフーリエ係数
  • ω\omega は基本角周波数( ω=2πT\omega = \frac{2\pi}{T}, TT は周期)
  • nn は高調波の次数

これを使うと、どんな複雑な周期関数も、サイン波とコサイン波の和として表現できます。

3. フーリエ級数の具体例:矩形波の近似

フーリエ級数の強力さを示すために、矩形波(square wave)を例に考えます。

矩形波は以下のように定義される周期関数です。

f(x)={1,π<x<01,0<x<πf(x) = \begin{cases} 1, & -\pi < x < 0 \\ -1, & 0 < x < \pi \end{cases}

この関数は、次のフーリエ級数で近似されます。

f(x)n=1,3,5,...N4nπsin(nx)f(x) \approx \sum_{n=1,3,5,...}^{N} \frac{4}{n\pi} \sin(n x)

Python でこの近似を視覚化してみましょう。

PYTHON
import numpy as np import matplotlib.pyplot as plt # x 軸の範囲 x = np.linspace(-np.pi, np.pi, 400) # フーリエ級数の計算 N = 10 # 近似に使う項数 f_approx = np.zeros_like(x) for n in range(1, N*2, 2): # 1, 3, 5, ... N個の奇数項 f_approx += (4 / (n * np.pi)) * np.sin(n * x) # 矩形波の理想的な形状 square_wave = np.sign(np.sin(x)) # グラフの描画 plt.figure(figsize=(6, 4)) plt.plot(x, f_approx, label=f'Fourier Approximation (N={N})', color='blue') plt.plot(x, square_wave, label='Ideal Square Wave', color='red', linestyle='dashed') plt.xlabel('x') plt.ylabel('Amplitude') plt.title('Fourier Series Approximation of a Square Wave') plt.legend() plt.show()
Image

このコードを実行すると、フーリエ級数が矩形波にどのように近づいていくかが視覚的に確認できます。

4. フーリエ級数の応用

フーリエ級数は、以下のような分野で幅広く使われています。

  • 信号処理 :音声や画像のデータ圧縮(MP3、JPEG など)
  • 電気工学 :交流電流の解析、回路設計
  • 振動解析 :機械や構造物の振動モデリング
  • 量子力学 :波動関数の展開

5. まとめ

本記事では、フーリエ級数の基本的な概念と、その応用例について学びました。

  • フーリエ級数を使うと、任意の周期関数を三角関数の無限級数で表現できる
  • 矩形波のフーリエ級数展開を Python で可視化し、近似の様子を確認
  • フーリエ級数は、信号処理や電気工学、物理学など、さまざまな分野で応用されている
シリーズ一覧三角関数の基礎
8