🙋
このシミュレーターで「極」と「零点」をプロットしてるみたいだけど、これって何を見てるんですか?
🎓
大まかに言うと、デジタルフィルタの「性格」を決めるポイントだね。極はシステムが応答を「増幅・発振」させやすい周波数の位置、零点は「減衰・ブロック」させやすい位置だ。例えば、上のスライダーで分母係数 a を動かして極を単位円の外側に動かすと、「安定性」が赤く表示されて不安定になるのがわかるよ。発振するフィルタは実用できないね。
🙋
え、そうなんですか!じゃあ、周波数応答のグラフで、振幅がピンと尖ってるところは極の近くの周波数ということですか?
🎓
その通り!シミュレーターで試してみよう。分子係数 b を [1](そのまま)、分母係数 a を [1, -1.5, 0.9] くらいに設定してみて。Z平面に2つの極が現れるはず。その時、周波数応答の振幅特性を見ると、極の角度(位相)に対応する周波数付近で振幅が大きくなっている(ピークが立っている)のが確認できるよ。これが共鳴現象だ。
🙋
インパルス応答って、実際の設計ではどう使うんですか?グラフがだんだん減衰してるものと、振動してるものがありますね。
🎓
実務では、このインパルス応答の形が「フィルタの実装コスト」に直結するんだ。減衰が早い(短い)フィルタは計算量が少なくて済む。でも、振動が続く(長い)フィルタは鋭い選特性が得られる代わりに計算負荷が高い。パラメータを変えながらインパルス応答の長さと周波数応答の鋭さのトレードオフを体感してみるといいよ。
極や零点の位置からシステムの安定性をどのように判断すればよいですか?
全ての極がz平面上の単位円(|z|=1)の内側にあれば安定です。一つでも単位円上または外側にあると不安定と自動判定されます。零点は安定性に直接影響しませんが、周波数応答の形状に影響します。
伝達関数H(z)の係数はどのように入力すればよいですか?
分子多項式B(z)と分母多項式A(z)の係数を、zの降べきの順(最高次から定数項まで)で入力します。例えばH(z)=(z+1)/(z^2-0.5z+0.25)なら、分子は[1,1]、分母は[1,-0.5,0.25]と入力してください。
周波数応答のグラフから何が読み取れますか?
振幅特性(ゲイン)と位相特性を確認できます。極付近の周波数でゲインがピークになり、零点付近でゲインが低下します。フィルタの通過帯域や遮断周波数、共振の有無を視覚的に把握するのに役立ちます。
インパルス応答が収束しない場合、どう解釈すればよいですか?
インパルス応答が時間とともに減衰せず発散または振動し続ける場合、システムは不安定です。極が単位円上または外側にあることが原因です。フィルタ設計や制御系では、極を単位円内に配置するよう係数を調整する必要があります。
IIRデジタルフィルタ設計: バターワースやチェビシェフといったアナログ設計理論を基に、双一次変換などで得られた伝達関数 H(z) の係数をこのツールで入力し、周波数応答を確認・調整します。オーディオ機器のイコライザーや通信システムの帯域制限フィルタに使われます。
振動・騒音データのリアルタイムフィルタリング: 回転機械の監視では、特定の回転数(周波数)に起因する振動成分を抽出または除去する必要があります。ツールで設計した帯域通過/阻止フィルタを組み込みシステムに実装し、ノイズの多いセンサーデータから目的の信号成分を取り出します。
デジタル制御系の設計: 連続時間で設計したPID制御器等を、離散時間(z領域)で実装するための変換を行います。得られたデジタル制御器の伝達関数の極配置をこのツールで確認し、システムの安定性と応答速度をシミュレーションします。
FFT前処理のためのウィンドウ関数設計: スペクトル解析の前に信号にかけるウィンドウ(ハミング窓など)は、一種のFIRフィルタと見なせます。そのZ変換を解析することで、メインローブ幅とサイドローブ減衰量のトレードオフを定量的に評価し、用途に最適なウィンドウを選択するのに役立ちます。
まず最初に、「極が単位円の外にある=絶対に使えないフィルタ」とは限らない という点に注意だ。確かに、入力信号に対して発散する「不安定な」システムになることが多い。しかし、例えば「ピークホールド」や特定の音響効果を意図した一時的な発振を利用する場合など、特殊な用途ではあえて不安定な極を設計に組み込むこともある。ただし、その実装には無限に成長する信号をクリッピングするなどの特別な処理が必須で、ツールで赤く「不安定」と表示されたら、まずは「通常のフィルタとしては使えない」と理解しておこう。
次に、係数のスケーリングを見落としがち だ。ツールでは分母の先頭係数 a0 が 1 に正規化されていることが多い。でも、実際に他の教科書や設計ソフトから係数を持ってくるときは、全体が定数倍されていることがある。例えば、分母が [2, -1, 0.5] だったら、全体を2で割って [1, -0.5, 0.25] として入力しないと、同じ周波数応答にはならない。係数をそのまま入力して「思った応答と違う!」とならないよう、確認が必要だ。
最後に、「インパルス応答が有限=FIR、無限=IIR」と単純に混同しない こと。確かに、分母多項式がない(a=[1]のみ)システムはFIRフィルタで、インパルス応答は有限長だ。しかし、分母があるIIRフィルタでも、極が原点に非常に近ければインパルス応答は実質的にすぐに減衰する。逆に、極が単位円に非常に近いと、減衰に非常に長い時間がかかる。グラフの見た目だけで判断せず、伝達関数の構造そのものから理解を深めよう。