今回のミッション
超簡単な一次のIIRフィルタ
$$y(nT) = x(nT) – \frac{1}{16} * y((n-1)T) + y((n-1)T) (式11)$$
に連続したパルスを入力してみる。
計算の簡単化のために、係数1/16を使用している。サンプリング周期T=1msの場合、時定数$\tau$ は約15msになる。設計の詳細については、前の記事
および、係数1/16の背景については、
【IIRフィルタ】第3回:簡単一次IIRフィルタのインパルス応答波形
前回のおさらい 1次のIIRローパスフィルタは、以下の式で実現できる。 $$y(nT) = x(nT) - (1-e^{-\frac{T}{\tau}}) * y((n-1)T) + y((n-1)T) (式9)$$ ここで、例...
を参照してほしい。
さて、整数演算のため、途中の1/16で桁落ちするので、パルスは127の大きさのパルスを入力する。横軸はサンプリングn、サンプリング周期T=1msの場合は時間[ms]になる。
40ms周期でパルスを入力した場合の出力$y(nT)$
40ms毎に1msの127の値が入力されるので、平均値127*1ms/40msに、最終値16を掛けた値と比較している。
最終値については、こちらの記事を参照してほしい。
【IIRフィルタ】第4回:簡単一次IIRフィルタのステップ応答波形
前回のおさらい 1次IIRフィルタで、サンプリング周期T=1ms、時定数 $\tau$=15ms程度のローパスフィルタを実装しようとしている。 計算式はさきの記事より、 $$y(nT) = ...
20ms周期でパルスを入力した場合の出力$y(nT)$
平均値127*1ms/20msに対して、最終値16を掛けた値と比較している。
10ms周期でパルスを入力した場合の出力$y(nT)$
平均値127*1ms/10msに対して、最終値16を掛けた値と比較している。
5ms周期でパルスを入力した場合の出力$y(nT)$
平均値127*1ms/5msに対して、最終値16を掛けた値と比較している。
出力y(nT)は、ローパスフィルタが効いて、連続パルス入力の平均値を得ていることがわかる。読者のみなさん、使えそうですか?
エクセルのデータはこちら
簡単1次IIRフィルタに連続パルス入力入れた出力波形 Excelデータ