はじめに
昨年、基礎から学ぶ 組込みRust、Interfaceの2冊に出会いました。いずれも組込みのフーリエ変換に言及した部分があったのですが、私はフーリエ変換をあまり解っていなかったです*1。そこで、いろいろ書籍やネットで調べて改めて勉強しました*2。本記事では、実フーリエ級数展開から高速フーリエ変換、周波数解析までの地図を示し、数学から工学へ至る道のりを概観したいと思います。
フーリエ級数展開から周波数解析までの地図
Step | 解析名 | 数学的意味 | 物理的意味 | 工学的意味 |
---|---|---|---|---|
6 | 周波数解析 | 雑音検出を始め様々な応用が可能 | ||
5 | 高速フーリエ変換 | データ点数に制約を与えて計算量を減らしたもの | コンピュータに現実的な処理速度で実装可能、計算量はO(NlogN) | |
4 | 離散フーリエ変換 | 離散時間領域の信号から離散周波数領域の信号へ変換するもの | コンピュータに実装可能、ただし計算量はO(N^2) | |
3 | フーリエ変換 | 複素フーリエ級数を非周期信号へ拡張したもの*3 | 連続時間領域の信号から連続周波数領域の信号へ変換するもの | |
2 | 複素フーリエ級数展開 | 計算しやすくするため、複素数に拡張して表現したもの | コンピュータにとっても複素数を導入したほうが処理がしやすくなる? | |
1 | 実フーリエ級数展開 | ある周期信号を三角関数(sinとcos)の和で表現したもの | ||
フーリエ変換によって、時間領域から周波数領域へ変換できることが中核で、Step3までが数学的な理論で、それ以降Step4以降は数学でありつつ工学での実装を目指した解析と理解しました。
必要な数学的知識
- 級数
- 三角関数
- 積分
- ベクトル
- 極座標
- 角速度
- 複素数
- 自然数
- オイラーの公式
参考
参考書籍
数多あるフーリエ変換の書籍をいろいろ眺めて、私には本書が一番解りやすかったです。フーリエ変換の工学的な意味を最初に解説してくれるのが嬉しかったです。フーリエ変換を数学的に説明してくれつつ、物理的な解説もしてくれており、腑に落ちやすいです。私は工学をしたいので、数学、物理、工学すべての観点のある本書がぴったりでした。
高速フーリエ変換までの概観
jp.mathworks.com
とても美しくまとまっています。企業のWebページなのでしっかりと添削が入っているからだと思います。
解析ごとの参考
- フーリエ級数展開の公式と意味 | 高校数学の美しい物語
- 複素数型のフーリエ級数展開とその導出 | 高校数学の美しい物語
- 【画像45枚あり】フーリエ変換を宇宙一わかりやすく解説してみる | ロボット・IT雑食日記
- 離散フーリエ変換(DFT:Discrete Fourier Transform)の直感的理解 | イメージングソリューション
- 高速フーリエ変換(FFT) | technical-note
それぞれざっとしか見れていませんが、個別言及で必要な情報が十分に載っているものを抜粋しました。
その他参考
全部載っているものです。ネットにあるので、ふとした時にざっと眺めてひっかかりがないか、理解の確認として有効と思います。
おわりに
ようやく自分なりにフーリエ変換の概要を掴めたような気がしています。次はAtCoderの高速フーリエ変換をやっていきたいと思います。そして、組込みRust本の簡易スペクトルアナライザをSTM32F411ボードで実装完了がゴールです*4。