[Top Page / 主頁] > [音楽ひとりごと] > ["音色"に関する数学的ハッタリ的考察-準備編-]

[Japanese / Nihongo](JPN) [Korean / Han-gug-eo](KOR)

← 前の記事へ 次の記事へ →

「音色」に関する数学的ハッタリ的考察 -準備編-附録 音色スペクトル導出算法

このサイトは「音楽」のサイト。当然読んでおられるかたは文系、 理系、音楽の專門家、職業的(=プロの)演奏家・作曲家、 アマチュア音楽愛好家など様々な人がおられると思います。

さて、文系の人には申し訳ないのですが、 今回は思いっきり「理工系」的な話を展開します。 ネタは「フーリエ變換/フーリエ変換」(Fourier Transform)、あるいは、「フーリエ解析」(Fourier Analisys)です。文系の多くの人は「フーリエ解析?どういう食べ物だ?」という状態でしょう。 一方で、理工系の大学、高専等を卒業されたかたはハハンと思うかも・・・。

「フーリエ変換」(Fourier Transform)というのは、音、その他世の中一般の「波」「振動」さらには「一般的な信号」などを分析する場合にとても重要なアイテムです。 音楽に関わり、数学に縁がない人にも是非「こういうモノがある」と知ってもらいたいと思いました。

・・・とは言ってもこの本文では数式は使わずに話をするつもりです(数式は、脚注と附録に回します)。 それに、ただ「フーリエ変換」について解説するだけではおもしろくない。 私が(文系の人にそっぽを向かれるのを覚悟で)どーしてこんな所につっこんでみたくなったかを簡単にお話しします。 実は私、以下のような疑問を持っていたのです。

其の1:ピアノで他の楽器の音を真似できないか?
其の2:弦楽四重奏では、しばしば、「チェロがヴィオラよりも上の音域で旋律を取り、ヴィオラが低音を担う」ということがある。これを音色的に説明できるか?

いかがでしょう、多少は「音楽的好奇心」をそそられたでしょうか?(笑)特に其の1など、もしできたらこれは「すごい話」になります。

しかし今回はそこまで到達しません、というよりこの文章を書いた2003年6月23日現在、明確な回答はまだ出ていません(爆)。 この結果については次回に説明することにして、 今回はそのための準備、「フーリエ変換」の中でも比較的とっつきやすい、「フーリエ級数」を道具にして、ちょっとばかり数学的な世界に戲(たわむ)れてみます。

まず前提知識。 音は「空気の振動」です。 特にクラシック音楽で用いられる多くの楽器の音は、 打楽器を例外として、「一定時間間隔で繰り返される空気の振動」です。 例をお見せしましょう。 下の図はチェロ(Cello, Violoncello)の最低音,C0音の波形を示したものです。

[Celloの最低音の音波波形(Vc_C0_wave.gif, 7.54 KB)]

横軸は時間の経過を示し、縦軸は空気の振動の具合(「変位」といいます)を示しています。 同じ波形が繰り返されていることがわかりますね。

ここで、2つの単語を導入します。

「周期」と「振動数(あるいは周波数)」はたがいに逆数の関係にあります。すなわち、[周期]×[振動数]=1です。C0音では振動数=65.4Hz(ヘルツ)-1秒間に65.4回同じ波形を繰り返す-なので(※脚注1)、周期は1÷[振動数(周波数)]=1÷65.4≒0.0153秒、となります。

さて、以前、「音はどういうときにハモるのか?」で、私は

「弦や管の振動により発生した音は、

  [実際の音と同じ振動数の純音(基音)]+[振動数2倍の純音(第2倍音)]
      +[振動数3倍の純音(第3倍音)]+[振動数4倍の純音(第4倍音)]+・・・

という具合に、 振動数nの整数倍の 『純音の和』 として表現できる。」
ここで「純音」とは、音の振動が「正弦波曲線(サイン・カーブ, Sine Curve)」で表現できるような音のことである。

旨の文章を書きました。あそこでも「実はこれは数学で言うところの『フーリエ級数展開』に他ならないのですが」と云う文章があったのを覚えておられるでしょうか。 あそこでは数学的な方面につっこむのを避けましたが、今回は正攻法で数学的方面につっこみます。お覚悟を!(笑)とは言っても、本文中では数式は用いないつもりですし、 あまり難しく書かないようにしようと思います。今回の目的は2つです。

どちらも仰々しいことでありません(…と思います^^;)。特に、(2)については、(1)の途中で出てきますので、(1)を知り終えたときには(2)も知っていただけることになります。

それでは行(い)ってみましょう。先ほどのチェロの音波が、「純音(=正弦波の音)」の合計として表されるのをお見せします。

まず、以下のような純音6つのセットを用意します。

[チェロC0音の再現-基音(基本波),(Vc_C0_Tone1.gif,2.83KB)] [チェロC0音の再現-第2倍音,(Vc_C0_Tone2.gif,3.20KB)] [チェロC0音の再現-第3倍音,(Vc_C0_Tone3.gif,3.06KB)] [チェロC0音の再現-第4倍音,(Vc_C0_Tone4.gif,3.47KB)] [チェロC0音の再現-第5倍音,(Vc_C0_Tone5.gif,3.18KB)] [チェロC0音の再現-第6倍音,(Vc_C0_Tone6.gif,2.77KB)]

これら6つの純音の振幅を示すと、以下の棒グラフのようになります。

基音から第6倍音までの振幅(Vc_C0_spectrum1_6.gif, 3.79 KB)

この純音のセットをどうやって作るのか※脚注2を見ていただくことにして、今は、この6つの純音を1つずつ足し合わせていきましょう。

[基音,(Vc_C0_partial1.gif, 4.12 KB)] [第2倍音までの和,(Vc_C0_partial2.gif, 4.49 KB)] [第3倍音までの和,(Vc_C0_partial3.gif, 4.58 KB)] [第4倍音までの和,(Vc_C0_partial4.gif, 4.72 KB)] [第5倍音までの和,(Vc_C0_partial5.gif, 4.81 KB)] [第6倍音までの和,(Vc_C0_partial6.gif, 4.80 KB)]

上のグラフがその結果を示しています。点線はチェロC0音の波形であり、実線で強調しているのが倍音を足し合わせた波形です。基音から第2倍音、第3倍音・・・と足し合わせていくにつれて、チェロC0音の音波波形に次第に近づいているのがご覧いただけると思います。

更に高い倍音を足しこんでいくことで、どんどんオリジナルのチェロの音波波形に近づけることができます。それをお見せする前に、まず、以下のグラフをご覧ください。

[チェロC0音の基音~第20倍音までの振幅(Vc_C0_spectrum1_20.gif, 3.26 KB)]

これは、チェロのC0音を構成する倍音の振幅を第20倍音まで並べたものです。 棒グラフの横軸が基音および各倍音の番号(番号1は基音、番号2,3,4,・・・はそれぞれ第2倍音,第3倍音,第4倍音,・・・の意味)、 縦軸がそれぞれの部分音の振幅を示しています。

ではお見せしましょう、これに基づき、第10倍音、および、第20倍音まで足し合わせた結果は以下のとおりです。

[第10倍音までの和,(Vc_C0_partial10.gif, 5.03 KB)] [第20倍音までの和,(Vc_C0_partial20.gif, 5.09 KB)]

いかがでしょう?第10倍音までの総和はチェロC0音波波形に大枠で一致しています。更に、第20倍音まで足し合わせたものは、細かいギザギザまで再現していますね。 このように、いわゆる「楽音」は、複数の純音の和として表現することができるのです。

では次は「周波数スペクトル」の説明です。先ほどグラフを色々出す途中でお見せした、「倍音ごとの振幅をしめす棒グラフ」をもう一度ご覧下さい。 横軸の数字1,2,3はそれぞれ基音、第2倍音、第3倍音のことですが、 この数字それぞれにチェロC音の周波数(振動数)65.4(Hz)を掛け算すると、 横軸はそのまま「振動数(あるいは周波数)」として読み替えることができます。 すなわち、このグラフは、 「チェロC0音の音波では、どの振動数(あるいは、どの周波数)の純音がどのくらいの強さで出ているか」を示しているわけです。 このように、横軸に振動数(あるいは周波数)をとり、縦軸に各々の振動数(あるいは周波数)での純音の振幅を示したグラフを「周波数スペクトル」と呼びます。

さて、ここは一応ピアノのサイトなので(まだ言うか^^;)今度は「ピアノ」で先ほどのチェロと同じC0音を出し、先ほどと同じように「純音の合成」で再現してみます。まず、ピアノのC0音の波形をお見せします。

[ピアノのC0音の音波波形(Pf_C0_wave.gif, 7.16 KB)]

チェロの最低音と同じ高さの音なので、振動数(周波数)や周期はチェロの最低音と同じです。 しかし波形そのものはチェロのときとは違っています。 とは言っても、 どこがどう具体的に違うのかを数量で把握するのはなかなか難しい。 そこで、 先程のように純音の和で表現し、その特徴を見てみます。

まず、純音を足し合わせていった結果をいきなり示します。

[ピアノC0音の基音波(Pf_C0_partial1.gif,4.17KB)] [ピアノC0音. 第4倍音までの和(Pf_C0_partial4.gif, 4.80KB)] [ピアノC0音. 第8倍音までの和,(Pf_C0_partial8.gif,4.83KB)] [ピアノC0音. 第20倍音までの和(Pf_C0_partial20.gif, 5.16KB)]

少し端折っていますが、順に、「基音のみ」「第4倍音までの合計」「第8倍音までの合計」「第20倍音までの合計」を示しています。先程と同じく、 オリジナルのピアノC0の音波波形が再現されていくのが分かります。

「周波数スペクトル」は以下の通りです。

[ピアノC0音の周波数スペクトル,(Pf_C0_spectrum1_20.gif, 2.92KB)]

チェロの周波数スペクトルと隨分違いますね。一般に、同じ高さの音でも、楽器が違った場合、すなわち、「音色」が異なった場合、周波数スペクトルはお互いに異なった形になるのです。 さらに、 周波数スペクトルを見れば、
「ピアノのC0は第2倍音が大変強い」
「第2倍音以外の音は、チェロよりも全体的に弱いようだ」
等々、 チェロとピアノとではどこがどう違うのかも数値的に把握することができます。

逆に、 この「周波数スペクトル」が決まれば、 音色も決まります。 音色を分析するためには、 「周波数スペクトル」を分析すれば良い。 ポイントはここです。(※脚注3)

このように波形を正弦波(音の場合には「純音」)の組み合わせで表現し、 周波数スペクトルを算出して解析する手法は、 波形や信号を分析する際の必須アイテム! こうした解析手法を考え出したのは、 19世紀前半、 フランスのフーリエ(Jean Baptiste Joseph Fourier)というおっさん・・・ではなくて(阿呆)数学者です。 「フーリエ(Fourier)解析」という呼称もこれに由來します。 また、音波などの波形から「周波数スペクトル」をはじき出す手法を「フーリエ変換」と呼びます。

さて、ここまで読んでみると、 当然、 「周波数スペクトルの形と音色はどの樣な関係にあるのか」、 更に進んで、 「演奏者や作曲家はこれをどう扱えばよいのか?」など、 いろいろな考えが浮かんできます・・・え、そんな考えは浮かばない? 浮かぶことにしてください(笑) しかし私は疲れました(^.^;)。 とりあえず「準備編」としてはここまでにして、文章を一旦擱筆して寢ます(爆)。 え?もう全部読んじゃった?次の文章を早く書け? そう言う人は「附録:音色スペクトル導出算法」で時間をつぶしてください。 なお、この「附録」は数式がたっぷりです(^-^)b☆\(--;)コラ。

その後、「実践編」を新たに書きました。おまたせしました、こちらからごらんください。 (2006 June 03 追記)




※脚注1:C0=65.4(Hz)の求めかたを説明します。
今日(こんにち)、a1音の振動数は440(Hz)とされています。
12等分平均律では[半音]=[2の12乘根]です。 短3度は半音3つ分の音程差ですから、 振動数比は
[2の12乘根]×[2の12乘根]×[2の12乘根]=[2の3/12乘根]=[2の4乘根]=1.189...。
從って、a1音の短3度上のc2音の振動数は
440×[2の4乘根]=523.25...(Hz)。
C0音はc1音よりも3オクターブ低い。 また、 音が1オクターブ下がると振動数は半分になります。 したがって、 [C0音の振動数]
= [c0音の振動数]×(1/2)
= [c1音の振動数]×(1/2)×(1/2)
= [c2音の振動数]×(1/2)×(1/2)×(1/2)
= 440×[2の4乘根]×(1/2)×(1/2)×(1/2)=65.40...(Hz).
本文中の数字は、この「12等分平均律」で計算した値です。
参考までに、 「純正律」および「ピタゴラス調律」でも計算してみます。
まず純正律。
純正律では、 [短3度の振動数比]=5:6
ですから、短3度上のc2音は
440×(6/5)=528(Hz).
C0音はこれの3オクターブ下の音です。 1オクターブ下がると振動数は半分になりますから、
[c1音の振動数]=528×(1/2)(Hz),
[c0音の振動数]=528×(1/2)×(1/2)(Hz),
[C0音の振動数]=528×(1/2)×(1/2)×(1/2)=66(Hz)
を得ます。
続いて、 「ピタゴラス調律(調弦)」です。
これは完全5度を純正に取るもので、 ヴァイオリン系の弦楽器などの調弦は事実上これです。
この場合、 a音から完全5度ずつ下げていくことでc音が求まります。
[完全5度の振動数比]=2:3
ですから、
[d1音の振動数]=440×(2/3)=293.3...
[g0音の振動数]=440×(2/3)×(2/3)=195.5...
[c0音の振動数]=440×(2/3)×(2/3)×(2/3)=130.37...
C0音はc0音の1オクターブ下の音ですから、
[C0音の振動数]=440×(2/3)×(2/3)×(2/3)×(1/2)=65.185...(Hz)
ということになります。本文中の値は12等分平均律の値を使用しています。 ・・・というわけで、 この丸印●を 選択すると読みかけの部分に戻ります(^^)

※脚注2附録(ここからご覧いただけます)にたっぷり書いておきました。 この丸印●を 選択すると読みかけの部分に戻ります(^^)

※脚注3:波動論に詳しいかたなら、 「初期位相」はどうなったんだ? とおっしゃるかもしれません。 実は樂音の場合、 初期位相が異なっていても、 フーリエ係数が決まれば、 音色が決まってしまいます。 「倍音の強さが決まれば、 同じ波形でなくても音色は1つに決まる」ということです。 従って、この文章および関連する文章では、 初期位相に関しては言及せずに話を進めます・・・というわけで、 この丸印●を 選択すると読みかけの部分に戻ります(^^)



(2003 June 23)
(2006 June 03追記)

← 前の記事へ 次の記事へ →

[Back]「音楽ひとりごと」目次に戻る

ご意見などありましたら、メールまたは掲示板でどうぞ


[Top]Return to Top Page / トップページに戻る