FIRTERパッチによるFIRフィルターの応用と可能性。
-フィルターサンプリングの時代に向けて-
京都精華大学 芸術学部 映像分野 平野砂峰旅
0:ABSTRACT
MAX4/MSP2になり追加された中でbuffir~というオブジェクトがある。今回は、このオブジェクトを使って制作したFIRTERパッチを紹介しながらFIR
Filterの基本的な原理とその応用について考察していきたい。
1:FIR Filter
FIR Filterとは、Finite Impulse Response Filterの略で、FIRは、「有限インパルス応答」と訳される。*1)有限インパルス応答(FIR)とは異なる、無限インパルス応答(Infinite
Impulse Response:IIR)もあり、これを実現するためのオブジェクトの代表的なものがbiquad~である。*2),*3)インパルス応答(インパルスレスポンス)とは、フィルターなどのシステムに単位インパルスを入力したときの出力(応答)をあらわす。単位インパルスとは、ディジタル信号処理においては、1サンプルだけゼロでない値を持ち、他の時刻の値はすべて0であるような信号と定義される。MAX4/MSP2の場合、この信号はclick~オブジェクトで簡単に生成することができる。FIRとIIRの違いは、つまりこのインパルス応答が有限(finite)か無限(infinite)かの違いである。
Fig.1にそれぞれIIRフィルター、FIRフィルターの構成図と差分方程式を示す。

IIRフィルターでは、出力された信号が再び入力される、フィードバックがある。そのためにフィードバックの係数の値(IIRフィルターの式でのb1,b2)によっては、有限の入力(たとえば単位インパルス)に対して無限の出力が得られる場合がある。身近な例では、ハウリングを思いうかべてもらえばイメージしやすい。一方、FIRフィルターの例では、出力が一時的に非常に大きな値をとることはあっても、決して無限の出力が得られるわけではない。Fig.1のFIRフィルターの式にn=0のときのみ1の値を持つインパルスが入力されたときの、出力はこの数式の系数列(a0〜an)の値をそのまま表していることがみてとれる。逆に、あるFIRフィルターのインパルス応答がわかれば、そのFIRフィルターの係数列はわかってしまうということでもある。では、FIRフィルター以外のフィルターの場合はどうなるのであろうか。一般的には、LTI(Linear
Time-Invariant:線形時不変)システムにおいては、そのシステムはインパルス応答によって完全に再現されることが証明されている。時不変システムをひらたく言うと、システムの特性が時間的に変化していくシステムと言える。具体的な音響機器を挙げれば、コーラスやフランジャーなどモジュレーション系のエフェクトは、時不変システムではない。また、線形システムにおいては、そのシステムに入力する信号がa倍になれば、そのシステムの出力もa倍になる。だから、ディストーション、コンプリミッタ−といったものは、線形システムとは言えない(こういうものを非線形システムと呼ぶ)。LTIシステムに成り得ない例ばかりをあげてきたが、LTIシステムである信号処理であればインパルスレスポンスを測定し、その結果をFIRフィルターに適用すれば、同じ特性を再現できるということである。
2:FIRTERパッチ
ここまでの議論を踏まえて、インパルスジェネレータとFIRフィルターを組み合わせた、FIRTERというパッチを制作した。Fig.2にそのユーザーインターフェイス部を、Fig.3にbuffir~によるフィルター部を示す。このFIRTERパッチによって、インパルスレスポンスの測定(任意のLTIシステムにインパルスを入力しその出力を記録(録音))が可能であり、その測定結果を即座にFIRフィルターの系数列とすることで、測定したLTIシステムを再現することが可能となる。ただし、MAX/MSPのbuffir~オブジェクトは、最大128次(式2のjが0〜127までの計128個)のFIRまでしか構成できない。このため、長く尾を引くインパルスレスポンスを持つシステム(例えば急峻なピークを持つバンドパスフィルター)では、buffir~一個ではその特性を再現することができない。しかし、buffir~を複数個使用することによってより次数の高いFIRフィルターを実現することは可能である。(Fig.3)さらに、このFIRTERパッチに音楽制作に利用するための機能を付け加えている。ひとつは、FIRフィルターの系数列をmultisliderオブジェクトにより、マウスで自由に描くことが可能な機能である。MSP2になって、新しく導入されたfiltergraph~オブジェクトのように、周波数特性を描くわけではないので、描いたグラフとフィルターの特性が直接的に結びつくわけではない。しかし、気の向くままに描いたグラフによってさまざまな、風変わりなフィルター効果がつくり出されるような機能があっても音楽向けの機能としては、許されるのではなかろうか。biquad~などのIIRフィルターの系数をいろいろ変化させても様々なフィルターを実現できるが、IIRフィルターは再帰型の演算を行っているために係数の値によっては、発振したりすることがある。一方、FIRフィルターは原理的に発振を起こすことはないので、安心してさまざまな試行が可能になる。たとえば、multisliderによる手書き以外にも、音声ファイルのデータをそのままインパルスレスポンスの係数列として使用することも可能である。また、2つのインパルスレスポンスの係数列を補間することにより、あるフィルター効果から別のフィルター効果へある時間かけて次第に変化していく効果も可能である。実際は、それぞれの係数が一定時間後に、目的の係数の値になるように直線補間しているだけである。同様なことをIIRフィルターでおこなおうとすると、変化している途中で発振してしまう可能性があるために、上記の係数の直線補間という方法は実用的でない。一方、FIRTERパッチで使用したフィルター移行の効果は、HPF、BPFなどのフィルターの種類とは無関係な結果をもたらす。このことは、中心周波数100HzのBPF(Band
Pass Filter)から中心周波数1kHzのBPFに移行する場合、中心周波数が100Hzから1kHzにスイープするような効果は期待できないことを示している。ただ単に、フィルターの特性が徐々に変化していくだけである。

3:FIRフィルターの応用
フィルターというと、シンセサイザーで使われるBPF,LPF,HPFなどが電子音楽では一般的である。通常、これらはIIRフィルター(MAX/MSPでは、reson~,lores~,biquad~)で実現した方が簡単でしかも、計算コストが少なくてすむ。そのため、ここではIIRフィルターでは実現困難なフィルターを考えていく。まずは、そのひとつとして、音像定位について考えてみたい。音源の位置が変われば、頭部や耳介による回折効果も変化し、聴取者の鼓膜に到達する音も変化する。この音源から鼓膜位置までの音の伝達経路をシステムと考え、その特性をHRTF(頭部伝達関数:Head
Related Transfer Function)と呼ぶ。このHRTFのインパルスレスポンス測定結果をFIRフィルターの系数列に用いることによってその音の伝達経路のフィルターを実現できる。たとえば、A地点の音源位置のときに測定したHRTFを別の位置から出力される音にたいして摘要することによって、その音があたかもA地点で鳴っているように感じさせることが可能になる。このHRTFの測定は、原理的にはインパルスレスポンスの測定と同様の方法で可能である。ということは、FIRTERパッチでも可能では、ある。しかし、測定するには耳道に挿入する特殊な形状のマイクロホン等が必要になるうえ、データの後処理も必要なので個人レベルでの精度の高い測定は、困難である。しかしながら、たとえば
http://www.itakura.nuee.nagoya-u.ac.jp/HRTF/
には、HRTFのデータベースがある。またローランドのRSS10等は、HRTFを利用したエフェクターなので、こういった機器のインパルスレスポンスを測定して利用する方法もある。ただし、このデータに著作権があるのかどうなのか、またそれは、このような使用方法の場合、自由に使用できるのかどうかは、使用者自身で確認して欲しい。FIRフィルターの応用として次に、リバーブ音を例にあげる。近年発売された、SONYのDRE-S777やYAMAHAのS-REV1といったサンプリングリバーブの基本的な技術は、あるホールの残響をシミュレートするのに、そのホールのインパルスレスポンスを測定しその結果をFIRフィルターを使って再現している。今まで述べて来たFIRフィルターでは、その次数が数十から数千で実現可能なものだった。しかしリバーブの場合は、インパルスレスポンスが数秒も継続することになる。仮にインパルスレスポンスが2秒あったと仮定すると、サンプリング周波数が44.1KHzの場合、44100*2=88200次のFIRフィルターが必要となる。この計算量は、現在のMacintoshでリアルタイムでは、不可能である。サンプリングリバーブでは、これらの演算をリアルタイムで行う専用のハードウエアでなのである。(このことを考えれば、サンプリングリバーブの値段の高さにもある程度うなずける。)MSP2になってからはnon-realtimeの信号処理も可能であるから、そのホールやスタジオのインパルスレスポンスデータがあれば時間をかけてそのリバーブ効果を実現できるわけである。また、スプリングリバーブや高級なリバーブレータの音もシミュレートできることになる。ただし、Lexiconなどでは、リバーブのパラメータをLFOで変調しているアルゴリズムもある。こういった場合は、時不変システムではないので、以前に述べたようにFIRフィルターでは、シミュレートできないことになる。
これまで、FIRフィルターによって実現可能なエフェクトについて見て来た。リバーブなどに関しては、PCでは演算速度が間に合わないという部分はあるものの、インパルスレスポンスとFIRフィルターの組み合わせによって、従来の音そのもののサンプリングからフィルター等の信号処理の特性自体をサンプリングできる時代になってきたことを実感できる。
[参考文献]
1)信号とシステム(1) A.V.Oppenheim/A.S.Willsky著 伊達玄訳 コロナ社
2)MSP2.0 Manual Book
3)コンピュータと音楽 -歴史、テクノロジー、アート- Curtis Roads著 青柳龍也他訳
東京電機大学出版
Download :FIRTER patch (Sorry ! There are no documentations now.)