2013/02/08

中学生ぐらいから学ぶフーリエ変換

はじめに

音処理について、数学的に学習して行こうというコーナー。また実際の処理としてプログラミングも積極的に利用するつもり。以前から書こうと思っていた内容なのだが、ようやくスタート。タイトルは、なんとも中途半端だが、その内容は息子(小学生)向けの補足資料的な扱いが強い。内容的には中学生でも理解できるようにしたいが、実際には高校数学の範囲もやることになる。ということであまり範囲を決め付けず、音処理に必要な数学ならば大学レベルでも学習したいとは思う。難しいと思えたことは詳しく解説するつもり。たぶん参考書の解説とは方向が違うので、大学の先生には怒られそうな内容になるかもしれない。調べまくった正しい解説ではなくて、こう思って使っているレベルの話が多くなるはず。ひょっとしたら誤解を招くかもしれない。

数学そのものの学習という意味合いも少しはある。音処理という方向を定めておくことで、数学やプログラミングの目的がはっきりするので、抽象的な数学でも具体的な応用例が実感できて分かりやすいと思われる。目標としてはフーリエ変換ぐらいまでとしたい。これを理解するには高校数学の広範囲の知識が必要だし、さらにプラスアルファも必要だと思う。それなりの量という感じだ。

音そのものについてや、基礎的な数学からスタートするので、何年かかるか分からないし、途中でやめてしまうかもしれない。とりあえず実際に子供に教えつつ更新して行くので、ボチボチとやっていきます。

数学とプログラミング

「コンピューター」は別の言い方をすると「計算機」と言う。パソコンやスマートフォンが日常的に使われている現在は、計算機というイメージは失われているかもしれない。それでもノイマン型コンピューターの中身は2進数の計算しかしていない。

プログラミングを実行するにはコンピューターが必要。コンピューターは計算機なのだから、プログラミングは計算式となる。計算式は算数や数学の数式とそれほど変わらない。実際にプログラミングを組めば、数学とプログラミングがとても近い関係だということが分かると思う。数学が理論的なことを教える座学だとすれば、プログラミングは数学を利用した実習となる。見方を変えれば数学は抽象的な世界であり、プログラミングは具体的な世界とも言える。この違いは膨大な計算をするかしないかということ。手計算では一生かけても終わらない計算を、現在のコンピューターは数秒でやってのける。音処理はまさにこれに当てはまる。

学校で習う数学はノートに書ける範囲で行っている。コンピューターが普及していない時代なら仕方ないが、現在はコンピューターは誰もが使っている道具。コンピューターを使うことで、抽象的な範囲でしか学習できなかった数学を、具体的な処理に移し変える事が可能で、純粋な数学とは違った面白さを提供できると思っている。

道具やソフトウェアは以下のものを使っている

数学そのものは紙(ノート)と鉛筆。殴り書きできる捨て紙は重要。裏が白い広告をガンガン使う。途中の計算式や、途中のイメージ図などを書きなぐる。

コンピューター(パソコン):Windows
具体的にはWindowsXPを使っているけど、記事の内容的にはMac、Linuxでも問題ないはず。以下のエディタ以外のソフトウェアはすべてWin,Mac,Linuxで動作可能。下写真は筐体から自作した一体型PC。ケーブルは電源ぐらいしかないので、屋内移動が楽チン。でっかい音がでるところがポイント。

関数電卓:CASIO fx-370ES
電卓は、紙と鉛筆で数式と格闘しているときには、手軽に使える良さがある。カシオの数学自然表示の関数電卓は直感的に扱えるので便利。個人的にはマニアックな HP35s を使っているけど。 パソコンが目の前で起動しているのであれば、下のMaximaという数式処理システム(ソフト)を使うのもあり。計算内容によって使い分ければよいと思う。

ソフトウェア

コンパイラー:MinGW GCC C言語
http://www.mingw.org/
コンパイラーは書いたソースコードを実行ファイルにするためのもの。プログラミング言語は基本的な言語というこでC言語。コマンドプロンプトで扱うコンソールアプリの範囲で使う。

エディタ:
Meadow http://www.meadowy.org/meadow/
TeraPad http://www5f.biglobe.ne.jp/~t-susumu/
テキストフォーマットでソースコードを書くためのもの。私はMeadowだが、子供はTeraPad。

数式処理システム:Maxima
http://maxima.sourceforge.net/
式をグラフにしてくれるので、そのような用途で使うつもり。

波形編集ソフト:Audacity
http://audacity.sourceforge.net/
音を扱うので録音したり、再生したりするために使う。

中学生ぐらいから学ぶフーリエ変換 目次はこちら