第一回 インパルス応答の採取?!SOの1
(2003.6.18)
第一回から数回にわたって、ここ1、2年ほど密かにマイブームにはまっていて、凝っているインパルス応答の採取についてお話したいと思います。
まず「インパルス応答とは何ぞや?」とい人が多い(ほとんど??汗)かと思われますので、簡単にインパルス応答の使い道と意味について書かせていただきます。

インパルス応答が何に使われるかといいますと、基本的に畳み込み(Convolution)というエフェクトのパラメータとして使います。 この畳み込みですが、ディレイとフィルタの愛の子と言いますか、両者を繋ぎ目なく扱うエフェクトだと考えて下さい。実は数学的にはディレイとフィルタは、同じものなのです。ディレイは一種のフィルタですし、フィルタは一種のディレイなわけです。ただ、従来のハードウェアでは、両者は別々の実現方法が用いられ、それぞれパラメータの有効範囲の限界が存在しましたので、両者を同じものとして扱う手段がなかったのです。ところが近年、コンピュータやDSPの処理速度が思いっきり速くなって来たため、畳み込みというデジタル処理を行うことで、両者を融合したエフェクトが可能となったのです。実際の処理のイメージは、1サンプル毎にレベルが設定できるタッピングディレイという感じです。44.1KHzのステレオ波形で、1秒の余韻を持たせるには、44100×2個のディレイタップを設けることになります。どうです一筋縄には行かない計算量だと思うでしょ?

具体的な製品としては、サンプリングリバーブと、マイク/スピーカーシミュレータが話題をさらっているように思われます。両者はいずれも、実際のハードウェアや部屋の音響特性を、忠実に再現するという目的をもっています。ディレイとフィルタの融合から、すこし跳躍しているやうにも思われるかも知れませんが、実はスピーカーやマイクの音の癖や、部屋鳴りといった現象は、畳み込みによって、ほぼ満足の行くシミュレーションが可能なのです。ほぼと書いたのは、いわゆる歪みや、ビビリ、スピーカやマイクにはよく見られる音量の変化に伴う特性の変化という現象は畳み込みでは表現できないからです。畳み込みでは、そういった現象を省いた、一定の性質を持つ周波数特性と遅延特性の組み合わせのみを再現可能です。それでもかなりソックリな音を再現できるので、音楽やオーディオ編集に使うのでしたら、ほぼ満足の行くシ・・・
というか、サンプルのMP3を載せますので、実際に聞いてみて下さい。コレが元の音、そしてコヤツが畳み込みによってテレビ風に加工した音です。どうです??本当にテレビみたいでしょう?全然似てないと思われた方は、このコラムを読むメリットはあまり感じられないかも知れません。。。(汗)

さて、次にこちらをごらん下さい。↓
 
この画面イメージは、僕が普段使っている波形編集ソフトのCool Edit Proの画面でして、 左側に波形、右側にその波形の周波数特性グラフを表示しています。
左側の波形は、1サンプルだけに音量が存在して、それ以外は0の波形に見えますよね?!。そうです実はそうなのです!!
そして、右側は、0Hzから最大周波数(44.1KHzフォーマットならば22.05KHz)まで均一に周波数成分を含んでいるように見受けられます!。そうです全くそうなのです!!
この1サンプルだけに音量が存在する波形をインパルスと呼びます。インパルスは周波数特性はもとより、各周波数の位相もぴったりと合っています。
 
で、このインパルスに1000Hz以上をカットするローパスフィルタを掛けて見ましょう。
(波形は分かりやすいようにノーマライズしています。)

 
左側の波形がグニャグニャ(?)っと変わって、右側の周波数特性は1000Hzを境に高音域が減衰しています。
インパルス応答とはこんな感じで、インパルスに何からのフィルタ処理を行って、インパルスが変化した後の波形を指します。
 
それでは早速いま作ったインパルス応答を使って実際に畳み込みを行ってみましょう。加工するのは、ホワイトノイズです。↓
 
Cool Edit Proにはその名もConvolutionというエフェクトがありますので、これに先ほどのインパルス応答波形を読み込みます。波形の開始時点から、波形がおよそ無音になる時点までを選択して、[Special]->[Convolution]を選択するとダイアログ画面が出てきますので、【Add Sel >>】ボタンを押して、選択された波形をインパルス応答データとして取り込みます。↓いや、Cool Edit Proの解説をしているつもりは無いのですが、、、操作が具体的な方が分かりやすいかなと、、
 
【OK】ボタンを押して、処理を実行すると、ホワイトノイズが下の画面のように加工されます。
 
波形を見るとそれ程変化がないようにも見えますが、周波数特性を見てみると、1000Hzから上の帯域が先ほど取り込んだインパルス応答波形の周波数特性とおよそ同じ様に減衰している事が分かります。
畳み込みを使うと、加工される波形(この場合はホワイトノイズ)と、加工する側の波形(この場合は1000Hzのローパスフィルタのインパルス応答)の周波数特性(および遅延特性)を掛け合わせた波形が生成されます。ん?言葉遣いがコンピュータ用語っぽいな、、、
掛け合わせですので、実は加工する側と加工される側の波形に本質的には差はありません。ただ、ソフトの操作性や感覚的な分かりやすさなどの都合上分けられているだけなのです。

ここまで読んで頂いて眼光の鋭い方はこう思われるかも知れません、「インパルス応答といってもただの波形っしょ?だったら何もわざわざインパルスから加工して作らなくても、好きな波形を使えばいいんじゃない?」
ええ、そうなのです。 実はそうなのです。実際、畳み込みには本来の意味でのインパルス応答以外でも、自由な波形を使うことが可能です。これを利用すれば、例えばノイズとエンベローブとフィルタを組み合わせて、大変面白いリバーブサウンドを作ったりすることも可能です。このテクニックについては、また後ほど書かせて頂こうかと思われます。
では、インパルスを使って何ができるのでしょうか?

それは、任意のフィルタの周波数/遅延特性のサンプリングです。先ほどインパルス波形に1000Hzのローパスフィルタを掛けましたが、これは見方を変えると、1000Hzのローパスフィルタの周波数/遅延特性をサンプリングしたことになるのです。インパルス応答を調べることで、そのフィルタの性質を調べることができますし、畳み込みに使うことで、そのフィルタを掛けたのと同じ結果を得る事が可能です。
波形編集ソフトに組み込まれているフィルタの特性をサンプリングする事にそれ程意味があるとは思えませんが、このテクニックをマイクやスピーカー等のハードウェア、あるいは部屋鳴りの周波数/遅延特性のサンプリングに応用することで、畳み込みを使って実際にその物理現象と、ほぼ同じ結果を得ることができるのです。

で、これから数回のコラムで、実際にどうやってインパルス応答を取得するのかという事と、畳み込みを使った妙技などを書いて行きたいと思うわけです。
次の記事 | 戻る