読み書きプログラミング

日常のプログラミングで気づいたことを綴っています

(52) 無限インパルス応答

以下のような無限インパルス応答(IIR)ディジタルフィルタについて考えます。

c=0.95でgを0から0.9まで変化させた時のゲインをプロットしてみましょう。

/* 8.3.6m */
c : 0.95$
a : [2 * c * g, -c ^ 2]$
p : length(a)$
b : [-(2 * c * g) / (1 + c ^ 2)]$
q : length(b)$
b0 : 1$
A(w) := ''((b0 + sum(b[k] * %e ^ (- %i * w * k), k, 1, q)) / (1 - sum(a[k] * %e ^ (-%i * w * k), k, 1, p)));
plot2d(makelist(cabs(A(w)), g, makelist(0.1 * i, i, 0, 9)), [w, 0, %pi], [y, 0, 15], [gnuplot_preamble, "set nokey"]);