基本原理#
級聯積分梳狀濾波器(Cascade Integrator Comb)は、多速率信号処理において非常に効率的なデジタルフィルターです。CIC フィルターはローパスフィルターの特性を持ち、以下の利点があります:
- フィルター係数はすべて1であり、設計時にフィルター係数を保存する必要がなく、ストレージユニットを節約し、フィルタリング時には加算器と累積器のみが必要で、乗算器は不要です。
- 構造が規則的で、全体の構造に影響を与えずに補間因子を柔軟に設定できます。
積分器#
積分器の構造は

時域では次のように表されます:
y1(n)=x(n)+y1(n−1)
周波数域では次のように表されます:
H1(ejw)=1−e−jw1
積分器の振幅スペクトルは次のようになります:
H1(ejw)=1−e−jw1=e−jw/2(ejw/2−e−jw/2)1=2sin(2w)1
この式から、積分器は極点(ω=2kπ、kは整数) のみを持ち、零点は持たず、直流信号に対して無限大の増幅を持つことがわかります。

梳狀濾波器#
時域では次のように表されます:
yC(n)=x(n)−x(n−RM)
R と M の積は梳狀濾波器の遅延長を示します。
周波数域では次のように表されます:
HC(z)=1−z−RM
振幅スペクトルは次のようになります:
HC(ejw)=1−e−jRMw=e−jRMw/2(ejRMw/2−e−jRMw/2)=2sin(2RMw)

梳狀濾波器は零点のみを持ち、極点は持たないことがわかります。
R=8、M=1 の場合、構造は次のようになります:

これにより、単一級 CIC フィルターの振幅スペクトルは次のようになります:
HCIC(ejw)=H1(ejw)⋅HC(ejw)=sin(2w)sin(2RMw)
$\mathrm {RM\omega}/2=\mathrm {k}:\pi $、すなわち $w=\frac {2k\pi}{RM}\quad (k=\pm1,\pm2,\cdots,\pm (RM-1))$ のとき、零点を確定できます。
ω/2=kπ、すなわちω=2kπのとき、このときの振幅応答は次のようになります:
HCIC(ejω)ω=2kπ=RM
これにより、零極点の相殺が実現されます。
単一級 CIC フィルターはω=0のときHCIC(ejω)=RMであるため、主瓣区間は[0,RM2π]であり、残りはすべて副瓣で、第一副瓣レベルは次のようになります:
A1=HCIC(ejw)w=RM3π=sin(21×RM3π)sin(2RM×RM3π)=sin(2RM3π)1
したがって、副瓣抑制は次のようになります:
A=RMsin(2RM3π)
R→∞ のとき、副瓣抑制は次のようになります:
A=20lg(R→∞limA)=20lg(23π)=13.46dB
単一級 CIC フィルターの阻止帯減衰は次のようになります:
α=−20lgb
通帯内容差(通帯波紋)は次のようになります:
δ=20lgsin(bπ)bπ
ここで、b は帯域幅比率因子です。
b=fs/(RM)B
単一級 CIC フィルターの副瓣レベルは高いため、多段 CIC 級聯によって改善できます。
H(ejw)=sin(2w)sin(2RMw)N

N 級 CIC 級聯フィルターにおいて、副瓣抑制、阻止帯減衰、通帯内容差は次のように表されます:
⎩⎨⎧AN=13.46NdBαN=−20NlgbδN=20Nlgsin(bπ)bπ
CIC フィルターの階数を増やすことで、副瓣抑制と阻止帯減衰を増加させることができますが、通帯内容差が大きくなります。したがって、通帯性能を考慮して、通常はN≤5を選択します。Nが不変のとき、帯域幅比率因子bが小さいほど、CIC フィルターの通帯と阻止帯特性も良好になります。したがって、CIC は一般に補間システムの最後の段階に位置します(入力レートが最も高い)。
位増加問題#
多段フィルターの振幅応答から、ω→0のとき:
w→0limH(ejw)=w→0lim21⋅cos(w/2)2RM⋅cos(RMw/2)N=(RM)N
これにより、多段 CIC フィルターが引き起こす可能性のある振幅増益の最大値は次のようになります:
Gmax=(RM)N
入力データx(n)が符号付き数で、ビット幅がBin、値の範囲が[−2Bin−1,2Bin−1−1]であると仮定すると、出力y(n)の最大値は次のようになります:
ymax=−2Bm−1⋅(RM)N
したがって、出力の最大ビット幅は次のようになります:
Bout=ceil[log2∣ymax∣]+1=N⋅ceil[log2(RM)]+Bin
FPGA 設計時には、出力信号のビット幅を適切に設定し、データのオーバーフローを防止する必要があります。リソースを節約するために、各段階で適切にビットを切り捨てることもできます。