tecktom.com

IIR フィルタの設計 — アナログフィルタの離散化

2026年10月15日8分で読めますAI生成教科書『基礎理論』第11章 フィルタの設計 — FIR と IIR
目次
  1. インパルス不変変換
  2. 双線形変換
  3. IIR フィルタの周波数変換
  4. 木下の層

AI 生成・木下が未勉強

信号処理論入門 第11章 §11.3 ★ インパルス不変・双線形変換。手順は背景寄り

FIR フィルタは急峻な遮断を作ろうとすると次数(部品数)が跳ね上がる。IIR フィルタなら少数の係数で急峻な遮断が実現できる。設計の基本方針は「よく分かっているアナログ LPF(第10章の Butterworth など)をs→zs\to z 変換で離散化する」ことで、代表的な変換が次の二つである。

インパルス不変変換

最も素直な発想:アナログフィルタのインパルス応答 hLPF(t)h_{\mathrm{LPF}}(t) をサンプリング周期 TT で標本化し(TT 倍して)ディジタルフィルタのインパルス応答とする。

hLPF′[n]=T hLPF(nT)h'_{\mathrm{LPF}}[n]=T\,h_{\mathrm{LPF}}(nT)

実装は伝達関数の上で機械的にできる。HLPF(s)H_{\mathrm{LPF}}(s) を部分分数展開

HLPF(s)=∑m=1Mβms−αm(αm<0:BIBO 安定な極)H_{\mathrm{LPF}}(s)=\sum_{m=1}^{M}\frac{\beta_m}{s-\alpha_m} \qquad(\alpha_m<0\text{:BIBO 安定な極})

すると、各項の逆 Laplace 変換は βmeαmtu(t)\beta_m\mathrm{e}^{\alpha_mt}u(t) だから、標本化してz 変換すれば等比級数の和で

HLPF′(z)=T∑n=0∞∑mβmeαmnTz−n=∑m=1MTβm1−eαmTz−1.H'_{\mathrm{LPF}}(z)=T\sum_{n=0}^{\infty}\sum_m\beta_m\mathrm{e}^{\alpha_mnT}z^{-n} =\sum_{m=1}^{M}\frac{T\beta_m}{1-\mathrm{e}^{\alpha_mT}z^{-1}}.

つまり部分分数の項ごとの置き換え

βms−αm  ⟹  Tβm1−eαmTz−1\frac{\beta_m}{s-\alpha_m}\;\Longrightarrow\;\frac{T\beta_m}{1-\mathrm{e}^{\alpha_mT}z^{-1}}

がインパルス不変変換である(TT 倍は省略する流儀もある)。極は s=αm ↦ z=eαmTs=\alpha_m\ \mapsto\ z=\mathrm{e}^{\alpha_mT} と写るから、Re⁡αm<0\operatorname{Re}\alpha_m<0 なら ∣eαmT∣<1\left\vert \mathrm{e}^{\alpha_mT}\right\vert <1:アナログ側が安定ならディジタル側も安定である(検算スクリプト [A2])。弱点はエイリアシングである。標本化なので周波数応答は1T∑kHA(ω−2πkT)\frac1T\sum_k H_A\bigl(\omega-\frac{2\pi k}{T}\bigr) と周期化され、アナログフィルタがナイキスト周波数以下に帯域制限されていなければ折り返しが混入する。LPF・BPF では注意すれば使えるが、高域が落ちない HPF・BSF にはそのまま使えない。

双線形変換

エイリアシングを原理的に回避するのが双線形変換である。発想は「1/s1/s(積分演算子)を、台形則による離散積分に置き換える」こと。入力 x[n]x[n] の台形則累積

p[n]=T2(x[0]+2x[1]+⋯+2x[n−1]+x[n])p[n]=\frac{T}{2}\bigl(x[0]+2x[1]+\cdots+2x[n-1]+x[n]\bigr)

は漸化式 p[n]−p[n−1]=T2(x[n]+x[n−1])p[n]-p[n-1]=\frac{T}2(x[n]+x[n-1]) を満たすから、z 変換して

P(z)=T2 1+z−11−z−1 X(z).P(z)=\frac{T}{2}\,\frac{1+z^{-1}}{1-z^{-1}}\,X(z).

これが z 平面の積分演算子である。そこで連続時間伝達関数の ss を

s  ⟹  2T 1−z−11+z−1(同値に z=1+Ts/21−Ts/2)s\;\Longrightarrow\;\frac{2}{T}\,\frac{1-z^{-1}}{1+z^{-1}} \qquad\Bigl(\text{同値に}\ z=\frac{1+Ts/2}{1-Ts/2}\Bigr)

と置き換えるのが双線形変換である(PP 次のプロパーな有理関数なら分母分子をsPs^P で割って 1/s1/s だけの式にしてから置き換える、と思えばよい)。この写像の性質が二つの利点を与える。

第一に、左半平面全体が単位円の内部に、虚軸が単位円上に一対一で写る(検算スクリプト [A3])。実際 z=ejΩz=\mathrm{e}^{\mathrm{j}\Omega} を代入すると

s=2T 1−e−jΩ1+e−jΩ=j 2Ttan⁡Ω2s=\frac{2}{T}\,\frac{1-\mathrm{e}^{-\mathrm{j}\Omega}}{1+\mathrm{e}^{-\mathrm{j}\Omega}} =\mathrm{j}\,\frac{2}{T}\tan\frac{\Omega}{2}

と純虚数になる。安定性は保存され、しかも周波数軸 ω∈(−∞,∞)\omega\in(-\infty,\infty) 全体がΩ∈(−π,π)\Omega\in(-\pi,\pi) に折り返しなく押し込まれるからエイリアシングは起きない。HPF・BSF にも使える。

第二に、その代償として周波数軸が

ω=2Ttan⁡Ω2\omega=\frac{2}{T}\tan\frac{\Omega}{2}

と非線形に圧縮される(ワーピング)。高域ほど圧縮が強く、アナログ設計時の遮断周波数がディジタル側でずれてしまう。対策は、最初から歪みを織り込んで設計するプリワーピング:ディジタル側で欲しい遮断 ΩC\Omega_C に対し、アナログ側の遮断をωc=2Ttan⁡ΩC2\omega_c=\frac{2}{T}\tan\frac{\Omega_C}{2} に取ってから双線形変換すればよい。なお z=esTz=\mathrm{e}^{sT} の Taylor 展開を分子分母1次で打ち切るとz≈(1+sT/2)/(1−sT/2)z\approx(1+sT/2)/(1-sT/2) となることから、双線形変換はインパルス不変変換(z=esTz=\mathrm{e}^{sT})の1次近似と見ることもできる。

例題11.2(双線形変換によるディジタル LPF の設計)★

オリジナル1次 Butterworth LPF H(s)=ωcs+ωcH(s)=\dfrac{\omega_c}{s+\omega_c} を双線形変換して、遮断周波数 ΩC=π/2\Omega_C=\pi/2 のディジタル LPF を設計せよ(T=2T=2 とする)。

解答

プリワーピングにより、アナログ側の遮断周波数を

ωc=2Ttan⁡ΩC2=tan⁡π4=1\omega_c=\frac{2}{T}\tan\frac{\Omega_C}{2}=\tan\frac{\pi}{4}=1

に取る。双線形変換 s→2T1−z−11+z−1=1−z−11+z−1s\to\frac{2}{T}\frac{1-z^{-1}}{1+z^{-1}}=\frac{1-z^{-1}}{1+z^{-1}}を代入して

H(z)=11−z−11+z−1+1=1+z−1(1−z−1)+(1+z−1)=1+z−12.H(z)=\frac{1}{\dfrac{1-z^{-1}}{1+z^{-1}}+1} =\frac{1+z^{-1}}{(1-z^{-1})+(1+z^{-1})} =\frac{1+z^{-1}}{2}.

検算:Ω=0\Omega=0 で H=1H=1(直流素通し)、Ω=π\Omega=\pi で H=0H=0(零点 z=−1z=-1。双線形変換は s=∞s=\infty を z=−1z=-1 に写すので、プロパーなアナログ LPF からは必ず z=−1z=-1 に零点が生まれる)、そして∣H(ejπ/2)∣=∣1−j∣/2=1/2\left\vert H(\mathrm{e}^{\mathrm{j}\pi/2})\right\vert =\left\vert 1-\mathrm{j}\right\vert /2=1/\sqrt2:確かに ΩC=π/2\Omega_C=\pi/2 が−3 -3\,dB 点になっている(数値検証済み:検算スクリプト [E3])。

IIR フィルタの周波数変換

IIR フィルタでも「LPF を作ってから変換」が定石だが、FIR のような単純な周波数シフトではなく、全域通過システムによる変数置換を使う(有理関数のまま保つため)。周波数応答は z=ejΩz=\mathrm{e}^{\mathrm{j}\Omega} 上の値だから、単位円を単位円に写す関数—すなわち全域通過関数—で z−1z^{-1} を置換すれば、周波数軸だけを再配置できる。遮断周波数 ΩC\Omega_C の LPF から遮断 ΨC\Psi_C の LPF を作るには、1次全域通過

z−1  ⟹  HLPF2LPF(z)=z−1−α1−αz−1,α=sin⁡((ΩC−ΨC)/2)sin⁡((ΩC+ΨC)/2)z^{-1}\;\Longrightarrow\;H_{\mathrm{LPF2LPF}}(z)=\frac{z^{-1}-\alpha}{1-\alpha z^{-1}}, \qquad \alpha=\frac{\sin\bigl((\Omega_C-\Psi_C)/2\bigr)}{\sin\bigl((\Omega_C+\Psi_C)/2\bigr)}

を代入する。α\alpha の式は「新しい遮断 ΨC\Psi_C が古い遮断 ΩC\Omega_C に写れ」という条件 e−jΩC=e−jΨC−α1−αe−jΨC\mathrm{e}^{-\mathrm{j}\Omega_C}=\dfrac{\mathrm{e}^{-\mathrm{j}\Psi_C}-\alpha}{1-\alpha\mathrm{e}^{-\mathrm{j}\Psi_C}}を α\alpha について解いたものである(分子分母から e−j(ΩC+ΨC)/2\mathrm{e}^{-\mathrm{j}(\Omega_C+\Psi_C)/2} をくくり出すと正弦の比に整理できる。数値検証済み:検算スクリプト [A4])。LPF→HPF は z↦−zz\mapsto-z を合成した置換z−1⇒(−z)−1−α1−α(−z)−1z^{-1}\Rightarrow\dfrac{(-z)^{-1}-\alpha}{1-\alpha(-z)^{-1}}、

α=−cos⁡((ΩC+ΨC)/2)cos⁡((ΩC−ΨC)/2)\alpha=-\frac{\cos\bigl((\Omega_C+\Psi_C)/2\bigr)}{\cos\bigl((\Omega_C-\Psi_C)/2\bigr)}

で行い、BPF・BSF には2次の全域通過システムを用いる(1周波数 Ψ\Psi を2周波数 ±\pm 側へ写す必要があるため次数が上がる)。注意点として、全域通過置換は位相を非線形に歪めるので、IIR の周波数変換後に線形位相特性を保つことは困難である。逆に FIR 用の周波数シフト(前節)を IIR に使うことはできる(安定性も保たれる)が、FIR フィルタにこの全域通過置換を使うと結果は IIR フィルタになってしまう。

木下の勉強ステータス

木下はまだこの記事を勉強していません。

AI(Claude)が書いた教材を、木下が勉強しながら公開しています。式と数値は検算していますが、誤りが残っているかもしれません。誤りのご指摘・削除のご依頼をいただければ直します。 連絡先:support@tecktom.com

← AI生成教科書『基礎理論』の記事一覧へ