シェルビングフィルタとは、正規化した減衰率付き微分回路とローパスフィルタ(LPF)を用いて、zの領域で以下のように図式化できるデジタルフィルタのことです。
つまり、詳細に図式化すると以下です。Aの条件は0<=A<1、Bの条件はー1<B<=0です。
シェルビングフィルタは、時間領域で1サンプル毎に以下の計算を行うことにより、実現できます。x_[i]]は入力データ、y_[i]]は出力データです。
___Out__=x_[i]]1/B+1+___buf 1__・B
___buf 1__=x_[i]]1/B+1
y_[i]]=(1-A)___Out__+___buf 2__・A
___buf 2__=y_[i]]
シェルビングフィルタのデジタルフィルタの伝達関数H(z)は、正規化した減衰率付き微分回路の伝達関数とローパスフィルタの伝達関数を掛けたものになります。
上記の伝達関数H(z)を使って、シェルビングフィルタの周波数特性を調べます。
まず、H(z)を周波数領域の関数H( f )に変換しますが、正規化した減衰率付き微分回路のH( f )とローパスフィルタのH( f )を掛けたものがシェルビングフィルタのH( f )となります。よって、H( f )の実部と虚部は以下です。
なお、上記の導出過程において、三角関数の基本公式fcos^[2]]θ+fsin^[2]]θ=1を利用しています。
実部と虚部を使った複素数平面上の座標(___Re__(H( f )) , ___Im__(H( f )))を2次元の極座標(r_[f]] , θ_[[f]])に変換します。
なお、r_[f]]は、正規化した減衰率付き微分回路のr_[f]]とローパスフィルタのr_[f]]を掛けたものです。また、位相は±90°以内に収まるので、θ_[f]]は、___arctan__を利用しています。
減衰率Aを0.88、減衰率Bを-0.998、サンプリング周波数fsを48kHz、fを周波数の対数スケール、振幅倍率であるr_[f]]を電圧比のデシベルでグラフにすると以下になります。
このとき、ターンオーバー周波数は約15Hz、最大振幅倍率に対するカットオフ周波数は約978Hzです。
同様に、減衰率Aを0.998、減衰率Bを-0.88、サンプリング周波数fsを48kHz、fを周波数の対数スケール、振幅倍率であるr_[f]]を電圧比のデシベルでグラフにすると以下になります。
このとき、カットオフ周波数は約15Hz、最小振幅倍率に対するターンオーバー周波数は約978Hzです。
正規化した減衰率付き微分回路の一番傾斜のある箇所は、1オクターブ当たり約6dBゲインが上がり、ローパスフィルタの一番傾斜のある箇所は、1オクターブ当たり約6dBゲインが下がっていることを利用して、後半の周波数でフラットな特性を作ります。
つまり、正規化した減衰率付き微分回路で前半の周波数の振幅倍率を持ち上げた後、ローパスフィルタで後半の周波数の振幅倍率を下げると、上記の一つ目の特性になります。ローパスフィルタで前半の周波数の振幅倍率を下げた後、正規化した減衰率付き微分回路で後半の周波数の振幅倍率を持ち上げると、上記の二つ目の特性になります。
減衰率Aを0.88、減衰率Bを-0.998、サンプリング周波数fsを48kHz、fを周波数の対数スケールで位相θ_[f]]をグラフにすると以下になります。
同様に、減衰率Aを0.998、減衰率Bを-0.88、サンプリング周波数fsを48kHz、fを周波数の対数スケールで位相θ_[f]]をグラフにすると以下になります。
シェルビングフィルタは、ナイキスト周波数の位置で最大振幅倍率もしくは最小振幅倍率となります。よって、振幅倍率であるr_[f]]のfにfs / 2を代入すれば求められます。
つまり、0<=A<1、ー1<B<=0の条件で以下のように求まります。
シェルビングフィルタのターンオーバー周波数は、正規化した減衰率付き微分回路のターンオーバー周波数と同じです。
シェルビングフィルタのカットオフ周波数は、ローパスフィルタのカットオフ周波数と同じです。
上記で示したシェルビングフィルタは一例です。伝達関数が同じになるのであれば、zの領域の関係式を組み替えて、別のシェルビングフィルタを構成しても問題ありません。時間領域での計算量が少ないシェルビングフィルタを構成できる場合もあります。