Tools + Simulatorsnanase.cc / tools

IIR フィルタ

近似
次数の決め方
N 次数

fc カットオフ周波数

Hz

fc カットオフ周波数

Hz

fst 阻止域端

Hz

fst 阻止域端

Hz

Ap 通過域のリップル

dB

As 阻止域の減衰量

dB

次数 N
f−3dB(振幅 −3 dB)
通過域の振幅の変動
阻止域の減衰量
実際の阻止域端
通過域の群遅延
直接形の係数()

IN WHITE NOISEOUT --- dBFSFS ---
−50−40−30−20−100
音量 音量

dB

X

H S/div

× 極 ○ 零点
CH1
s 平面
z 平面(双一次変換)

H(z)=∏ib0i+b1iz−1+b2iz−21+a1iz−1+a2iz−2
双2次の段ごとの極・零点・係数
段極 |p|∠f零点 |z|∠fb0b1b2a1a2最大

動作原理と式

設計の流れ

古典的な IIR フィルタは、振幅の形が分かっているアナログフィルタから作ります。この元になるフィルタを原型といいます。

  1. 原型Ω=1 rad/s の LPF
  2. 周波数変換目的の応答にする
  3. 双一次変換またはインパルス不変法
  4. 双2次の縦続(SOS)実装の形

原型

原型は基準の端を Ω=1 rad/s に置いた LPF で、近似ごとに振幅の 2 乗を次の形にします。

TN
チェビシェフ多項式
RN
ヤコビの楕円関数で表すチェビシェフ有理関数[1]
θN
逆 Bessel 多項式

ベッセルフィルタだけは、振幅でなく群遅延を平坦にしたものです[2]。群遅延は位相の傾きです。直流の近くで遅延がそろい、波形の形が崩れにくくなります。

|H(jΩ)|2=11+ε2Ω2N|H(jΩ)|2=11+εp2TN(Ω)2|H(jΩ)|2=11+εs2TN(ΩsΩ)2|H(jΩ)|2=11+εp2RN(Ω)2H(s)=θN(0)θN(s),θN(s)=∑k=0N(2N−k)!2N−kk!(N−k)!skεp=10Ap/10−1,εs=10As/10−1

次数

仕様から設計するときは、選択度 Ωs と εs/εp から最小の次数を求めます。選択度 Ωs は、阻止域端を原型の周波数にしたものです。

楕円フィルタの次数は、第 1 種完全楕円積分 K(k) の比で表されます[1]。

次数を整数に切り上げたら、選択度を求め直します。通過域と阻止域の減衰はそのままにして、遷移域が仕様より狭くなるようにします。それには、次数の式を k について解きます。

楕円関数と完全楕円積分は、降下 Landen 変換の母数の列 kn=(kn−1/(1+kn−1′))2 で求めます[1]。

N≥log⁡(εs/εp)log⁡ΩsN≥arccosh⁡(εs/εp)arccosh⁡ΩsN≥K(k)K′(k1)K′(k)K(k1),k=1Ωs,k1=εpεsK(k)=π2∏n=1∞(1+kn),K′(k)=K(1−k2)

周波数変換と双一次変換

原型を周波数変換で目的の応答にし、双一次変換でデジタルフィルタにします[3][4]。

双一次変換は、周波数軸を tan で縮めて fs/2 に収めます。そこで、端の周波数をあらかじめ逆向きに伸ばしておきます。これをプリワーピングといいます。

こうすると端の周波数と減衰は仕様どおりになりますが、その間の形は縮みに合わせて歪みます。ベッセルフィルタの平坦な群遅延は、この歪みで崩れます。

s→sΩc,s→Ωcss→s2+Ω02Bs,s→Bss2+Ω02Ω0=Ω1Ω2,B=Ω2−Ω1Ω=2fstan⁡(πffs),s=2fs1−z−11+z−1

インパルス不変法

インパルス不変法は、アナログのインパルス応答を標本化して h[n]=Tha(nT) とします[3]。T=1/fs です。

周波数軸は縮みませんが、fs/2 を越える成分が折り返します。そのため、高域で減衰しない HPF と BSF には使えません。

H(z)=∑kTrk1−epkTz−1,Ha(s)=∑krks−pk

実装

実装では、極と零点を 2 つずつ組んだ双2次の縦続(SOS)にします[4][5]。

  • 組み方: 単位円に最も近い極から順に、それに最も近い零点と組む
  • 段のゲイン: 各段の出力の振幅の最大が 1 になるように配る。こうすると、固定小数点でも途中であふれにくい

分母を 1 つの高次の多項式にした直接形は、極が近く集まる高い次数や狭い帯域で、係数の丸めに弱くなります。わずかな誤差で極が大きく動き、単位円の外へ出ることもあります。

群遅延 τ(ω)=−dφ/dω は、極と零点ごとの寄与の和で求めます。

H(z)=∏ib0i+b1iz−1+b2iz−21+a1iz−1+a2iz−2

出典

  1. 楕円関数、楕円フィルタの原型S. J. Orfanidis, “Lecture Notes on Elliptic Filter Design,” Rutgers University, 2006
  2. ベッセルフィルタW. E. Thomson, “Delay networks having maximally flat frequency characteristics,” Proc. IEE, Part III, vol. 96, pp. 487–490, 1949
  3. インパルス不変法、双一次変換A. V. Oppenheim, R. W. Schafer, Discrete-Time Signal Processing, 3rd ed., Pearson, 2010, ch. 7
  4. 周波数変換・双一次変換・SOS の式SciPy の scipy.signal
  5. 双2次の組み方・並べ方とスケーリングL. B. Jackson, Digital Filters and Signal Processing, 3rd ed., Kluwer, 1996

関連ツール