ぼくたちは音に囲まれています。この音は物理的には空気の振動が波として伝わる現象です。もう少し具体的に書きましょう。ギターを弾きます。弦は振動します。これは1秒間に何百回のスピードです。ぶるぶる震える弦の近くでは空気が瞬間的に圧縮されたり薄くなったりすることを繰り返し、その「圧縮されたり薄くなったり」の状態がどんどん弦から離れて空気の中を伝わります。その速さは毎秒340mくらい(これが音速)なのでした。耳のところで空気が圧縮されたり薄くなったりが繰り返され、「ギターの音が聞こえている」と感じるのです。人間が「ギターの音色でミの高さ、かなり強い音」などと感じていたとしても瞬間瞬間には耳のところで「空気がどの程度の強さで圧縮されている」という事実しかありません。音の音色も高さも、「空気の圧縮の程度がどのように変化するか」で決まるのです。空気が圧縮されたり薄くなったりする。これが繰り返されるだけで、人間はなぜか「ギターの弱いソの音だ」とか「クラリネットの強いファの音」とか感じるのです。ぼくはこれ自体不思議なんですが、世の中がそうできているので仕方ない、とりあえず納得しておきましょう。
さて、マイクでこの音を拾ってその信号を適当な機械に通すと、波形を見ることができます(これは実際の音の波形ではなく、お見せするためのサンプルです)。
実は、この複雑な波が、例えば以下のように単純なサインカーブ(sin x のグラフ)を上下左右に伸ばしたり縮めたり周期を変えたりしたものの和で表せます。
理論的には、図のように4個の和ではなく無限個の和ということになりますが、実用上は50個とかで済ませたりします。こうしてサインカーブの和に分解すると、例えば1番目のサインカーブの振動の強さを8割程度に小さくし(上下につぶす)、2番目を1.3倍に大きくし、………と適切に操作することによって、その和をクラリネットの音にしたりできるのです。あるいは速く振動しているサインカーブを上下に大きくして再び加え直せば、元の音の高音域だけをを強調できるのです。いわゆるイコライザを自分で作れます。
この「複雑な波形をサインカーブの和で表す」、そしてその逆操作「サインカーブの和で複雑な波形を作る」には数学の知識が必要です。それぞれ、離散フーリエ変換、逆離散フーリエ変換と言います。離散フーリエ変換の式は以下の通り。2つ書いておきました。
どちらも同じ事実を主張しています。何だか難しそうですが、ちゃんと勉強すれば理解できるようになります。式の中のxが各時刻の音の強さを表します。要するに「聞こえている音」です。これにW(の累乗)を掛けてシグマで総和します。計算結果のXはサインカーブの振幅(上下、高さの差の半分)です。あるいは、2番目の式のように「行列(1とWがたくさん並んでいる部分)」というものを用いても書けます(この例は説明のためのもので、実際にはもっと大きなサイズの行列を使います)。上の式の中のWはとある虚数で「回転子(かいてんし)」と呼ばれます。この式は何となく言うと「複雑な音にいろんな虚数をガンガン掛けて総和するといくつもの単純なサインカーブに分かれる」となります。きちんと理屈を勉強すればなぜそれが可能なのか分かります(が、理解した上でぼくは、こんなことでサインカーブに分かれることがなお不思議でなりません)。
数学でこんなことができる!という例です。工学部あたりなら、実験をして離散フーリエ変換をして何か結果を出してレポートを書いて提出、みたいなこともあるでしょう(実際に友だちもやっていた)。しかしせっかくそういう機会があっても、意味を分かっていなければ面白くありません。きちんと理解して数学を使って何かをできたとき、例えば「問題が解けたからうれしい!」とはまるで違う、「自然界の謎を数学を使ってひとつ解いた!」みたいな感動を味わうことができるでしょう。
勉強のための本は以前の記事に載せてありますのでご覧ください。