YU2TA7KA's BLOG ~take one step at a time~

派生開発、組み込み開発周りのこと。

フーリエ級数展開から周波数解析までの地図

はじめに

昨年、基礎から学ぶ 組込みRustInterfaceの2冊に出会いました。いずれも組込みのフーリエ変換に言及した部分があったのですが、私はフーリエ変換をあまり解っていなかったです*1。そこで、いろいろ書籍やネットで調べて改めて勉強しました*2。本記事では、実フーリエ級数展開から高速フーリエ変換、周波数解析までの地図を示し、数学から工学へ至る道のりを概観したいと思います。

フーリエ級数展開から周波数解析までの地図

Step 解析名 数学的意味 物理的意味 工学的意味
6 周波数解析 雑音検出を始め様々な応用が可能
5 高速フーリエ変換 データ点数に制約を与えて計算量を減らしたもの コンピュータに現実的な処理速度で実装可能、計算量はO(NlogN)
4 離散フーリエ変換 離散時間領域の信号から離散周波数領域の信号へ変換するもの コンピュータに実装可能、ただし計算量はO(N^2)
3 フーリエ変換 複素フーリエ級数を非周期信号へ拡張したもの*3 連続時間領域の信号から連続周波数領域の信号へ変換するもの
2 複素フーリエ級数展開 計算しやすくするため、複素数に拡張して表現したもの コンピュータにとっても複素数を導入したほうが処理がしやすくなる?
1 実フーリエ級数展開 ある周期信号を三角関数(sinとcos)の和で表現したもの

フーリエ変換によって、時間領域から周波数領域へ変換できることが中核で、Step3までが数学的な理論で、それ以降Step4以降は数学でありつつ工学での実装を目指した解析と理解しました。

必要な数学的知識

  • 級数
  • 三角関数
  • 積分
  • ベクトル
  • 極座標
  • 角速度
  • 複素数
  • 自然数
  • オイラーの公式

参考

参考書籍


数多あるフーリエ変換の書籍をいろいろ眺めて、私には本書が一番解りやすかったです。フーリエ変換の工学的な意味を最初に解説してくれるのが嬉しかったです。フーリエ変換を数学的に説明してくれつつ、物理的な解説もしてくれており、腑に落ちやすいです。私は工学をしたいので、数学、物理、工学すべての観点のある本書がぴったりでした。

高速フーリエ変換までの概観

jp.mathworks.com
とても美しくまとまっています。企業のWebページなのでしっかりと添削が入っているからだと思います。

実装練習

基礎(三角関数から)の実装練習ができます。

次はこれを理解して、ACしたいです。

その他参考

全部載っているものです。ネットにあるので、ふとした時にざっと眺めてひっかかりがないか、理解の確認として有効と思います。

おわりに

ようやく自分なりにフーリエ変換の概要を掴めたような気がしています。次はAtCoderの高速フーリエ変換をやっていきたいと思います。そして、組込みRust本の簡易スペクトルアナライザをSTM32F411ボードで実装完了がゴールです*4

*1:間違いなく大学の講義を受けたのですが、忘れてましたし、当時から理解が不十分でした。

*2:情報が溢れているので、自分にとってわかり易いものを探すのにもある程度時間をかける価値があると思いました。

*3:この発想がすごい!

*4:ちょっと調べた感じ、音入力部分がやっかいそう。。。