Keyboard shortcuts

Press or to navigate between chapters

Press ? to show this help

Press Esc to hide this help

フーリエ解析

Important

この章を読む前に

この章を読むには、以下の章を先に読んでおく必要があります。

物理学や工学において、信号を周波数成分に分解するフーリエ解析 (Fourier Analysis) は欠かせないツールです。

フーリエ解析とは

複雑な波動や時間信号を、単純な正弦波(サイン・コサイン)の重ね合わせとして表現する手法です。これにより、時間領域(Time Domain)では見えにくかった信号の特徴を、周波数領域(Frequency Domain)で明確に捉えることができます。

物理学における応用例:

  • 波動の解析: 音波、光、地震波などのスペクトル分析。
  • 量子力学: 座標表現と運動量表現の間の変換。
  • 微分方程式の解法: フーリエ変換を用いることで、偏微分方程式を代数方程式に変換して解くことができます。
  • ノイズ除去: 特定の周波数成分をカットするフィルタリング。

本章の構成

  1. 離散フーリエ変換の基礎 有限個のデータ点に対して定義される離散フーリエ変換 (DFT) の定義と、その直接的な計算方法を学びます。

  2. 高速フーリエ変換 (FFT) 計算量を劇的に削減する高速フーリエ変換 (FFT) アルゴリズムの原理と、Rustでの実装・ライブラリの利用方法について学びます。

  3. スペクトル解析 実際の信号データに対してFFTを適用し、パワースペクトルの計算や窓関数の重要性について実践的に学びます。

作業テーマ

作業ディレクトリは ~/rust-computational-physics-work/ からの相対パスです。 ユニットテストで確認する具体的なケースは、解析解、境界条件、許容誤差の観点からAI coding agentと相談して決めます。

テーマ作業ディレクトリ構造化するコードユニットテスト演習拡張演習
DFTの基礎fourier/dft-basicsdft, idft, complex_expimpulseや定数列のDFTを確認するDFTとIDFTの往復誤差を出力する
FFTfourier/fftrun_fft, check_power_of_two, normalize小さい入力でDFTとFFTを比較する入力サイズごとの実行時間をCSVに出力する
スペクトル解析fourier/spectral-analysisfrequency_axis, power_spectrum, window既知周波数の正弦波でピーク位置を確認する窓関数の有無を比較する

検証と実装の観点

フーリエ解析では、配列の長さ、正規化、周波数軸の定義が少しずれるだけで、 見た目は似ていても意味の異なる結果になります。

  • 周波数が既知の正弦波を入力し、ピーク位置と振幅の正規化を確認する。
  • DFTとFFTの結果を、小さい入力で比較する。
  • 逆変換を使う場合は、元の信号に戻るかを許容誤差つきで確認する。
  • sample数、sampling interval、window、正規化規約をmetadataとして残す。