Tools + Simulatorsnanase.cc / tools

FIR フィルタ

fc1 カットオフ周波数

Hz

fc2 上側のカットオフ周波数

Hz

Δf 遷移帯域幅

Hz

Ap 通過域リップル

dB

As 阻止域減衰

dB

w 窓
N タップ数の決め方

N タップ数

β カイザー窓の形

Wp 通過域の重み

Ws 阻止域の重み

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

dB

SPECX LIN /div

係数 h[n]
CH1 h[n] /divH S/div

タップ数 N
遅延 (N − 1)/2
通過域リップル
阻止域減衰
遷移帯域幅
1 サンプルあたりの乗算
同じ仕様の IIR フィルタ

z 平面
ZERO ON |z| = 1 POLE z = 0 DIV

動作原理と式

FIR フィルタと直線位相

FIR フィルタは、入力 x[n] の今と過去 N−1 サンプルの値に係数 h[k] を掛けて足し、出力を求めるフィルタです。出力を戻さないので常に安定です[1]。

係数を中央で左右対称にすると、すべての周波数が M=(N−1)/2 サンプルだけ遅れる直線位相になります。

N が偶数のフィルタは z=−1 に零点を持ちます。z=−1 は fs/2 に当たるので、HPF と BSF は N を奇数にします。

y[n]=∑k=0N−1h[k]x[n−k]h[n]=h[N−1−n]H(ejω)=A(ω)e−jωM,M=N−12τ(ω)=−dθdω=M

仕様の許容値

仕様の 2 つの量を、振幅の許容値に直して使います。

Ap
通過域リップル
As
阻止域減衰
δp
通過域の許容
δs
阻止域の許容
δp=10Ap/20−110Ap/20+1,δs=10−As/20

窓関数法

窓関数法は、理想のフィルタのインパルス応答 hd[n] を N 点で切り出し、窓 w[n] を掛けて両端をなだらかにします[1]。hd[n] は無限に続く sinc 関数です。

  1. 理想の応答 hd[n]無限に続く sinc 関数
  2. N 点で切り出す
  3. 窓 w[n] を掛ける両端をなだらかに

窓の形で阻止域の深さと遷移帯域の幅が決まります。

h[n]=hd[n]⋅w[n]hd[n]=sin⁡(ωc(n−M))π(n−M),ωc=2πfcfsw=0.5−0.5cos⁡2π(n+1)N+1(ハン)w=0.54−0.46cos⁡2πnN−1(ハミング)w=0.42−0.5cos⁡2π(n+1)N+1+0.08cos⁡4π(n+1)N+1(ブラックマン)w=I0(β1−(n−MM)2)I0(β)(カイザー)

カイザー窓

カイザー窓は β で形を変えられます。Kaiser の式で、仕様から β と N を求めます[2]。

A=−20log10⁡min(δp,δs),Δω=2πΔffsβ={0.1102(A−8.7)A>500.5842(A−21)0.4+0.07886(A−21)21≤A≤500A<21N−1=A−82.285Δω

ほかの窓

ほかの窓の阻止域の減衰は、窓ごとにほぼ決まっています[3]。タップ数は遷移帯域幅から求めます。

窓阻止域の減衰k
矩形21 dB0.9
ハン44 dB3.1
ハミング53 dB3.3
ブラックマン75 dB5.5

ハン窓とブラックマン窓は両端が 0 になります。そこで、N+2 点の窓の両端を除いた N 点を使います。

N≥kfsΔf,k=0.9,3.1,3.3,5.5(矩形・ハン・ハミング・ブラックマン)

等リップルと最小二乗

等リップル(Parks–McClellan 法)は、重み付き誤差 E(ω) の最大値を最小にします[4]。

最適な解では、誤差の大きさが r+1 個以上の周波数で等しく、符号が交互に変わります。これを交代定理といいます。r は余弦の項の数です。

Remez の交換法は、その周波数の組を、誤差が最大になる周波数へ入れ替えながら求めます[5]。

最小二乗法は、誤差の二乗を帯域で積分した値を最小にします[6]。

  • どちらも遷移帯域は誤差に数えない
  • 仕様から求めるときは、仕様を満たす最小の N を探す
E(ω)=W(ω)[D(ω)−A(ω)]E(ωi)=(−1)iδ,i=0,1,…,rN−1≈−10log10⁡(δpδs)−132.324Δω,WsWp=δpδsmin∑帯域W∫(A(ω)−D)2dω

実際の特性

実際のリップル・減衰・遷移帯域幅は、係数に 0 を足して FFT した振幅から求めます。

遷移帯域幅は、通過域の許容を外れる周波数から、阻止域の許容を下回る周波数までの幅です。通過域の許容には、仕様と実際の大きい方を使います。

同じ仕様の IIR フィルタ

同じ仕様の IIR フィルタの次数は、帯域の端を双一次変換で写したアナログの楕円フィルタとバタワースフィルタの次数の式で求めます[7]。

n楕円≥K(k)K(1−k12)K(1−k2)K(k1),nバタワース≥log⁡(1/k1)log⁡(1/k)k=ΩpΩs,k1=10Ap/10−110As/10−1,Ω=tan⁡πffs

今の値を代入した式

出典

  1. FIR フィルタの設計A. V. Oppenheim, R. W. Schafer, Discrete-Time Signal Processing, 3rd ed., Pearson, 2010, 7 章
  2. カイザー窓と Kaiser の式J. F. Kaiser, “Nonrecursive Digital Filter Design Using the I0-sinh Window Function,” Proc. IEEE ISCAS, 1974
  3. 窓の遷移帯域幅と阻止域の減衰E. C. Ifeachor, B. W. Jervis, Digital Signal Processing: A Practical Approach, 2nd ed., Prentice Hall, 2002
  4. 等リップル(Parks–McClellan 法)T. W. Parks, J. H. McClellan, “Chebyshev Approximation for Nonrecursive Digital Filters with Linear Phase,” IEEE Trans. Circuit Theory, CT-19(2), 1972
  5. Remez の交換法J. H. McClellan, T. W. Parks, L. R. Rabiner, “A Computer Program for Designing Optimum FIR Linear Phase Digital Filters,” IEEE Trans. Audio Electroacoust., AU-21(6), 1973
  6. 最小二乗法C. S. Burrus, A. W. Soewito, R. A. Gopinath, “Least Squared Error FIR Filter Design with Transition Bands,” IEEE Trans. Signal Processing, 40(6), 1992
  7. IIR フィルタの次数S. J. Orfanidis, “Lecture Notes on Elliptic Filter Design,” Rutgers University, 2006

関連ツール