いぬおさんのおもしろ数学実験室

おいしい紅茶でも飲みながら数学、物理、工学、プログラミング、そして読書を楽しみましょう

FFTの原理、バタフライ演算の分かりやすい解説書!

 FFT(高速フーリエ変換)を勉強中の皆様! 大抵の本に「バタフライ演算」というものが出てきますよね。難しいです。たくさんの本があり、筆者の先生方は頑張って易しく書いてくださっていると思うんですが、ぼくには難しいです。PythonならNumPyやSciPyにFFTを使うための優れたライブラリがあり、そういう意味では別にFFTの原理なんて分からなくてもいい!……という考えもあるでしょう。それも人生。しかし、「使えればいい」では済まないケースだってあるかも知れませんし、数学が専門の人などは「理屈が分からないライブラリを使うのは気持ち悪い」という人もいるかも知れません。

 ここでFFTとは……。数学にフーリエ級数というのがあります。条件はありますが、周期関数は様々の周期の三角関数(sin, cos)の和(フーリエ級数)で書ける、という定理があるのです(無限項の和ということもある)。例えば人間の声を××Hzの音と、●●Hzの音と、▲▲Hzの音が混ざっている、などというように異なる「周波数成分」に分けることができます。応用は非常に広いです。ただ、これはコンピュータが扱う離散データ(音楽もPCが扱えるのは離散データです)には向きません。このフーリエ級数をPC向けに直したものがDFT(離散フーリエ変換)です。これに高速化の工夫を施したものがFFTなのです。

 この記事に直接関連した内容の書籍をブログ管理人が出版しました。記事をリファインして、極力詳しく解説しています。見ていただけるとうれしいです(2022年5月15日(日))↓

 

 自分でプログラムを書いてFFTの実験をしようとしても、バタフライ演算など、何をやっているのか分かっていないと無理です。きっと、挫折した人たちも少なくないと想像します。そこで『道具としてのフーリエ解析』(涌井良幸,涌井貞美2014日本実業出版)を勧めます。

FFTのロジック(バタフライ演算を含む)について極めて分かりやすい説明が載っており、ぼくはこの部分だけでも買う価値があると思いました。今、FFTの使い方を自分でまとめているところです。そのために不足している部分は勉強しているんですが、今回改めて「難しい……」と思っていたところでした。そこで涌井先生のこの本です。強力にお勧めしておきます。

 どんな分野だって、蜘蛛の糸みたいに上に登ろうとする人を制限でもするつもりかと思えるような難しい本はあるものです。しかしこんなに易しく解説した本もある。ありがたいことです。

 涌井先生の本はいくつか持っています。

これはディープラーニングについて書いた本でぼくが最初に読みました。やはり分かりやすい入門書でした。

大変よくまとまった、統計のリファレンスです。重宝しています。