加算合成とは
音響信号処理における加算合成(アディティブ・シンセシス)とは、複数の
純音(
正弦波)を重ね合わせることで音を合成する技術です。この手法は、
音声合成や音楽制作において重要な役割を果たしており、その柔軟性と表現力から幅広く利用されています。
対比される合成手法としては、音に含まれる
周波数成分をフィルターで取り除く減算合成があります。加算合成は、
周波数成分を「足し合わせる」ことで音を生成するのに対し、減算合成は「引き算」の概念で音を生成する点が異なります。
概要
音響信号は、数学的な解析により
正弦波の重ね合わせで表現できることが知られています。また、人間の
聴覚には可聴域という
周波数範囲が存在し、その上限は約20kHz程度です。したがって、可聴域内の
周波数成分のみを考慮すれば、複雑な音も有限個の
正弦波の和で近似できます。
加算合成は、この原理を利用し、有限個の
正弦波を加算することで音を生成する手法です。各
正弦波は「部分音(パーシャル)」と呼ばれ、その
周波数、振幅、位相を適切に設定することで、様々な音色を生成・再現できます。部分音の中でも、特に基本
周波数の整数倍の
周波数を持つ
倍音は「ハーモニック・パーシャル(調波)」、そうでない非整数倍の
周波数の音は「インハーモニック・パーシャル(非調波)」と呼ばれます。
実装方法としては、事前に計算した波形データテーブル(ウェーブテーブル)を利用したり、逆高速
フーリエ変換を活用したりすることが一般的です。
理論的背景
フーリエ変換の理論によれば、あらゆる音響信号は
正弦波の重ね合わせで表現できます。特に、周期性を持つ信号は、
正弦波の無限和(
フーリエ級数)で表すことができます。
式で表現すると、以下のようになります。
math
y(t) = r_0 + r_1\cos(2\pi f_o t) + \cdots + r_k\cos(2\pi kf_o t) + \cdots
ここで、`y(t)` は時間 `t` における音響信号、`r_k` は各
正弦波の振幅、`f_o` は基本
周波数です。しかし、人間の可聴域には上限があるため、実際には有限個の
正弦波の和で音を表現できます。例えば、可聴域の上限を15kHzとすると、15kHz以上の
周波数成分は、
聴覚上は無視できます。つまり、無限和の式を、有限和の式で近似できるということです。
手法
加算合成は、有限個の
正弦波を加算して音を合成する手法の総称であり、様々なバリエーションが存在します。部分音の
周波数や振幅を固定するシンプルな方法から、時間とともに変化させる複雑な方法まで、音の性質や目的に応じて使い分けられます。
以下に、主な加算合成の手法をまとめます。
時不変の加算合成
最もシンプルな方法は、各部分音の
周波数と振幅を時間的に固定する方法です。
math
y(t) = \sum_{k=1}^{K} r_k \cos(2\pi f_k t + \phi_k)
ここで、`K` は部分音の総数、`r_k` は `k` 番目の部分音の振幅、`f_k` は `k` 番目の部分音の
周波数、`\phi_k` は `k` 番目の部分音の初期位相を表します。
時変振幅の加算合成
部分音の振幅を時間に応じて変化させることで、音のダイナミクスを表現できます。この方法は、
振幅変調(AM)としても知られています。
math
y(t) = \sum_{k=1}^{K} r_k(t) \cos(2\pi f_k t + \phi_k)
ここで、`r_k(t)` は時間 `t` における `k` 番目の部分音の振幅を表します。ただし、振幅の変化は、帯域制限の観点から、隣接する部分音の
周波数間隔よりも十分に遅く変化させる必要があります。
時変周波数の加算合成
部分音の
周波数を時間に応じて変化させることで、音のピッチの変化やビブラートなどを表現できます。この方法は、
周波数変調(FM)としても知られています。
math
y(t) = \sum_{k=1}^{K} r_k \cos(2\pi \int_{0}^{t} f_k(u) du + \phi_k)
ここで、`f_k(t)` は時間 `t` における `k` 番目の部分音の
周波数を表します。
時変振幅・時変周波数の加算合成
最も一般的な加算合成は、各部分音の振幅と
周波数を時間に応じて変化させるものです。この方法により、より複雑で豊かな音色を生成できます。
math
y(t) = \sum_{k=1}^{K} r_k(t) \cos(2\pi \int_{0}^{t} f_k(u) du + \phi_k)
調波加算合成
自然界に存在する多くの音は、基本
周波数の整数倍の
周波数を持つ
倍音(ハーモニック・パーシャル)を多く含んでいます。調波加算合成は、基本
周波数とその
倍音のみを加算して音を合成する手法です。
math
y(t) = \sum_{k=1}^{K} r_k \cos(2\pi kf_o t + \phi_k)
ここで、`f_o` は基本
周波数です。この方法では、部分音 `k` は `k` 次
倍音に対応します。
広義の定義
「アディティブ・シンセシス」は広義には、「単純な基本要素を足し合わせて複雑な音色を合成する」タイプのシンセシス手法全般を指すことがあります。この意味では、
正弦波に限らず、パイプオルガンや
電子オルガンも広義のアディティブ・
シンセサイザーとみなせます。また、
主成分分析で得られる基底やウォルシュ関数を用いた音響合成も、広義のアディティブ・シンセシスに分類できます。
加算分析/再合成
音声信号を分析することで、各部分音の
周波数、振幅、位相を抽出できます。この情報を加算合成に利用することで、元の音声を再構築できます。この分析と合成を一体化した音声処理を「
音声分析合成」と呼びます。分析には、帯域通過
フィルタバンク、短時間
フーリエ変換(STFT)、経験的モード分解などが用いられます。
応用例
加算合成は、楽器、
音声合成など、幅広い分野で応用されています。楽器では、
ハモンドオルガンや
シンセサイザー、
電子楽器などに利用され、複雑な音色を生成するために用いられます。
また、
言語学の研究では、合成された音声
スペクトログラムを用いて、音声の音響的な手がかりの重要性を評価するために、ハーモニック・アディティブ・シンセシスが利用されています。
実装方式
現代の加算合成の実装は、主に
デジタル処理で行われます。
オシレータ・バンク
各部分音に対応する
正弦波オシレータを複数用意したオシレータ・バンクを用いて実装できます。各オシレータの
周波数、振幅、位相を調整することで、任意の音を合成できます。
ウェーブテーブル・シンセシス
楽音がハーモニックで準周期的な場合、ウェーブテーブル・シンセシスを用いて、加算合成とほぼ同等の結果を、より少ない計算量で実現できます。また、各部分音を基本
周波数の異なるハーモニック・グループに分け、各グループごとにウェーブテーブルで合成後、ミックスする方法(グループ・アディティブ・シンセシス)もあります。
逆高速
フーリエ変換(IFFT)は、
周波数領域で表現された音響信号を時間領域に変換する手法です。加算合成では、IFFTを用いて、各
周波数成分に対応する
正弦波を効率的に合成できます。
歴史的背景
加算合成の理論的基礎は、19世紀初頭のフーリエによる
調和解析の研究に遡ります。フーリエは、
熱伝導の研究の中で、あらゆる周期的な現象を
正弦波の重ね合わせで表現できることを発見しました。この理論は、後に音響学にも応用され、音を構成する基本的な要素を理解する上で重要な役割を果たすことになります。
初期の応用例としては、ケルビン卿が製作した潮汐予測機が挙げられます。この装置は、潮汐の測定データをフーリエ解析し、得られた係数を用いて
正弦波を合成することで、将来の潮汐を予測しました。
ヘルムホルツは、音色の知覚が生理的なメカニズムに依存すると考え、電磁石で駆動する
音叉と共鳴器を組み合わせた音響合成装置を開発しました。この装置を用いて、彼は様々な音色を生成し、ハーモニック・アディティブ・シンセシスの基礎を築きました。
アディティブとサブトラクティブという用語は、1940年代後半に登場しました。初期の
電子オルガンメーカーは、多くのオシレータを必要とするアディティブ方式のコストが高すぎると判断し、代わりにサブトラクティブ方式を採用しました。しかし、アディティブ・シンセシスは、その柔軟性と表現力から、現代の
シンセサイザーでも重要な位置を占めています。
離散表現
加算合成の
デジタル実装では、連続時間形式の式を離散時間形式の式に変換する必要があります。具体的には、時間 `t` を離散的な時間インデックス `n` に対応させ、積分を和で近似することで、以下の離散時間形式が得られます。
math
y[n] = \sum_{k=1}^{K} r_k[n] \cos(\theta_k[n])
ここで、`\theta_k[n]` は、次のように定義されます。
math\theta_k[n] = \theta_k[n-1] + \frac{2\pi}{f_s}f_k[n]
この離散時間形式を用いることで、コンピュータ上で加算合成を効率的に実行できます。
まとめ
加算合成は、音を
正弦波の重ね合わせとして捉え、各
正弦波のパラメータを制御することで、様々な音を生成できる強力な手法です。その理論的背景、多様な実装方法、そして豊かな歴史的背景は、
音響信号処理の分野において、深く理解するべき重要な要素と言えるでしょう。