フーリエ変換は、非周期的な信号を周波数成分に分解する強力な数学的手法です。信号処理、物理学、工学、音響分析など、さまざまな分野で活用されています。
前回の記事では、フーリエ級数を使って周期関数を三角関数の和で表す方法を学びました。
今回は、フーリエ変換 について解説します。
フーリエ変換は、非周期的な信号を周波数成分に分解する 強力な数学的手法です。
信号処理、物理学、工学、音響分析など、さまざまな分野で活用されています。
本記事では、Python を使ってフーリエ変換の実装と可視化を行います。
フーリエ変換(Fourier Transform)は、ある関数 を周波数空間に変換する数学的手法です。
フーリエ変換の定義は次の式で表されます。
フーリエ変換によって、信号の周波数成分を解析できます。
Python の numpy.fft
を使って、簡単なフーリエ変換を実装してみましょう。
まず、基本的なサイン波をフーリエ変換し、周波数スペクトルをプロットします。
PYTHONimport 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()
このグラフを見ると、50Hz のピークが現れることが確認できます。
フーリエ変換は、複数の周波数成分を持つ信号にも適用できます。
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()
この結果を見ると、50Hz と 80Hz の成分がはっきりと識別されることがわかります。
フーリエ変換は、さまざまな分野で活用されています。
本記事では、フーリエ変換の基本と Python による実装を学びました。
numpy.fft
を使って、信号のフーリエ変換を実装回 | タイトル | リンク |
---|---|---|
第 1 回 | 三角比の基本 | 詳 細 |
第 2 回 | 単位円と三角関数 | 詳 細 |
第 3 回 | 三角関数のグラフ | 詳 細 |
第 4 回 | 三角関数の基本公式 | 詳 細 |
第 5 回 | 「ラジアン」について | 詳 細 |
第 6 回 | 三角関数の応用(物理・工学) | 詳 細 |
第 7 回 | フーリエ級数と三角関数 | 詳 細 |
第 8 回 | フーリエ変換とその応用 | この記事 |
当サイトの情報は、一般的な参考情報として提供しております。
正確な情報の掲載に努めておりますが、その内容の正確性・完全性・最新性を保証するものではありません。
記事の内容をご利用の際は、ご自身の責任において判断し、必要に応じて専門家にご相談ください。
当サイトの情報の利用により生じたいかなる損害についても、一切の責任を負いかねますのでご了承ください。
※ 本ページでは、著作権法に基づき、適正な引用の範囲内でコンテンツを紹介しています。
オリジナルの情報は発信元をご確認ください。
もし問題がありましたら、こちら からお問い合わせください。