« 簡単1次IIRフィルタに連続パルス入力入れた出力波形 | トップページ | 係数1/8の一次IIIRフィルタの正弦波入力応答 »

2008年11月30日

係数1/8の一次IIIRフィルタのステップ応答、インパルス応答

一次IIIRフィルタの簡単な実装の記事を続ける。以前の

http://robotcontroller.cocolog-nifty.com/blog/2008/11/iir-ecd2.html

の記事から

一次遅れのIIRフィルタの計算式は

 y(nT) = x(nT) +  e^(-T/τ)*y{(n-1)T}  (式8)

となることがわかった。この式を変形すると

 y(nT) = x(nT) - {1-e^(-T/τ)}*y{(n-1)T} + y{(n-1)T}

    (式9)

となる。ブロック図で書くと

1stiir_const2

となる。今までの記事では、係数{1-e^(-T/τ)}を

   {1-e^(-T/τ)} = 1/16 

すなわち、右シフト演算4回として、実装した場合の各種波形グラフを見てきた。ディジタルフィルタの計算式は、

  y(nT) = x(nT) - 1/16*y{(n-1)T} + y{(n-1)T}

    (式11)

である。このとき、たとえばサンプリング周期T=1msとすると、時定数は約15msになる。

◆インパルス応答の時間波形(整数計算)

http://robotcontroller.cocolog-nifty.com/blog/2008/11/iir-ad59.html

◆ステップ応答の時間波形(整数計算)

http://robotcontroller.cocolog-nifty.com/blog/2008/11/iirt1ms15ms-820.html

◆正弦波入力応答の時間波形(整数計算)

http://robotcontroller.cocolog-nifty.com/blog/2008/11/iirt1ms15ms-c85.html

http://robotcontroller.cocolog-nifty.com/blog/2008/11/iirt1ms15ms2-ac.html

◆周波数応答(リニア周波数軸、整数計算)

http://robotcontroller.cocolog-nifty.com/blog/2008/11/iir-58eb.html

◆周波数応答(ログ周波数軸、整数計算)

http://robotcontroller.cocolog-nifty.com/blog/2008/11/iir-000f.html

今回は、時定数を変えてみよう。たとえばサンプリング周期T=1msのとき、時定数は約7msになるようにする。係数としては、1/16を1/8にする。右シフト3回で実装することを目論んでいる。

   {1-e^(-T/τ)} = 1/8

ディジタルフィルタの計算式は

  y(nT) = x(nT) - 1/8*y{(n-1)T} + y{(n-1)T}

    (式24)

となる。

正確な時定数τは

   e^(-T/τ) = 1-1/8 = -0.875

にて、サンプリング周期T=1msとすれば、時定数

  τ=7.488876[ms]

である。

さて、波形を示す。

■インパルス応答の時間波形(整数計算)

127のステップ入力の場合の応答である。時定数τ=7.488876[ms]のアナログローパスフィルタの応答と比較している。横軸は、サンプリングn。サンプリング周期T=1msとすれば、横軸は時間[ms]。

1_8_impluse_integer

ディジタルフィルタ出力y(nT)の場合は、ゼロに近づかない。7で飽和する。途中の1/8で7が桁落ちでゼロになってしまい、演算結果に反映されず、残ってしまう。

■ステップ応答の時間波形(整数計算)

ディジタルフィルタは127のステップ入力を入れると、最終値は127*8=1016になる。最終値がなぜ8倍されるかというのは、「最終値の定理」から決まる。最終値の定理については、

http://robotcontroller.cocolog-nifty.com/blog/2008/11/iirt1ms15ms-820.html

の記事を参照。

グラフでは、1016のステップ入力のアナログ1次ローパスフィルタ出力と比較している。

1_8_step_integer

ほぼ同じになる。

エクセルデータはこちら

「motion_oyaji_IIR_1_8_time_step_081121.xls」をダウンロード

Link: 

「モーションおやじ」のプライムモーション社(みんなで手軽にWindowsリアルタイムIO制御)

プライムモーション(Windowsで手軽にリアルタイムIO制御)

|

« 簡単1次IIRフィルタに連続パルス入力入れた出力波形 | トップページ | 係数1/8の一次IIIRフィルタの正弦波入力応答 »

技術フィルタ」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック


この記事へのトラックバック一覧です: 係数1/8の一次IIIRフィルタのステップ応答、インパルス応答:

« 簡単1次IIRフィルタに連続パルス入力入れた出力波形 | トップページ | 係数1/8の一次IIIRフィルタの正弦波入力応答 »