フーリエ変換とその応用

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

日付:2025年3月13日

フーリエ変換は、非周期的な信号を周波数成分に分解する強力な数学的手法です。信号処理、物理学、工学、音響分析など、さまざまな分野で活用されています。

目 次

1. はじめに

前回の記事では、フーリエ級数を使って周期関数を三角関数の和で表す方法を学びました。
今回は、フーリエ変換 について解説します。

フーリエ変換は、非周期的な信号を周波数成分に分解する 強力な数学的手法です。
信号処理、物理学、工学、音響分析など、さまざまな分野で活用されています。
本記事では、Python を使ってフーリエ変換の実装と可視化を行います。

2. フーリエ変換とは?

フーリエ変換(Fourier Transform)は、ある関数 f(t)f(t) を周波数空間に変換する数学的手法です。

フーリエ変換の定義は次の式で表されます。

F(ω)=f(t)eiωtdtF(\omega) = \int_{-\infty}^{\infty} f(t) e^{-i\omega t} dt
  • f(t)f(t) :時間領域の信号
  • F(ω)F(\omega) :周波数領域の信号(フーリエ変換)
  • ω\omega :角周波数

フーリエ変換によって、信号の周波数成分を解析できます。

3. Python でフーリエ変換を実装

Python の numpy.fft を使って、簡単なフーリエ変換を実装してみましょう。

(1) 単純なサイン波のフーリエ変換

まず、基本的なサイン波をフーリエ変換し、周波数スペクトルをプロットします。

PYTHON
import numpy as np import matplotlib.pyplot as plt from scipy.fft import fft, fftfreq # サンプリング設定(400Hz に設定して正しいピークを取得) N = 1000 # サンプル数 T = 1.0 / 400.0 # サンプリング間隔(400 Hz) # 時間軸 t = np.linspace(0.0, N*T, N, endpoint=False) # 1つ目の信号(50Hz のサイン波) signal_single = np.sin(2.0*np.pi*50.0*t) # フーリエ変換 yf_single = fft(signal_single) xf = fftfreq(N, T)[:N//2] # 50Hz のサイン波のフーリエ変換をプロット plt.figure(figsize=(6, 4)) plt.plot(xf, 2.0/N * np.abs(yf_single[:N//2]), color='blue') plt.xlabel('Frequency (Hz)') plt.ylabel('Amplitude') plt.title('Fourier Transform of a Sine Wave (50Hz)') plt.show()
Image

このグラフを見ると、50Hz のピークが現れることが確認できます。

4. 実際の信号のフーリエ変換

フーリエ変換は、複数の周波数成分を持つ信号にも適用できます。

(2) 複数の周波数成分を持つ信号のフーリエ変換

PYTHON
# 2つ目の信号(50Hz + 80Hz のサイン波) signal_mixed = np.sin(2.0*np.pi*50.0*t) + 0.5*np.sin(2.0*np.pi*80.0*t) # フーリエ変換 yf_mixed = fft(signal_mixed) # 50Hz と 80Hz のサイン波のフーリエ変換をプロット plt.figure(figsize=(6, 4)) plt.plot(xf, 2.0/N * np.abs(yf_mixed[:N//2]), color='red') plt.xlabel('Frequency (Hz)') plt.ylabel('Amplitude') plt.title('Fourier Transform of a Mixed Signal (50Hz & 80Hz)') plt.show()
Image

この結果を見ると、50Hz と 80Hz の成分がはっきりと識別されることがわかります。

5. フーリエ変換の応用

フーリエ変換は、さまざまな分野で活用されています。

  • 信号処理 :音声認識、画像圧縮(JPEG, MP3)
  • 物理学 :振動解析、量子力学
  • 医学 :MRI 画像処理
  • エンジニアリング :振動・騒音解析、回路設計

6. まとめ

本記事では、フーリエ変換の基本と Python による実装を学びました。

  • フーリエ変換は、信号を周波数成分に分解する手法
  • Python の numpy.fft を使って、信号のフーリエ変換を実装
  • 複数の周波数を持つ信号の解析も可能
  • フーリエ変換は、信号処理、物理、医学、エンジニアリングなど、多くの分野で応用されている
シリーズ一覧三角関数の基礎
8