CICフィルタ
CICフィルタ(Cascaded Integrator-Comb)は、加算器とレジスタのみで構成される多相信号処理の基本ブロックである。乗算器を使わず、ハードウェア資源を節約しつつ高いスループットを実現できるため、ΣΔ型ADCの< a href="/オーバーサンプリング">オーバーサンプリング出力の< a href="/デシメーション">デシメーションや、補間を伴うサンプリング周波数変換で広く用いられる。基本は積分器(Integrator)段をN段直列に重ね、その後に差分器(Comb)段をN段直列に重ねる構造で、レート変換比をR、微分遅延をMとすると、等価伝達関数はH(z)={(1−z^(−R M))^N}/{(1−z^(−1))^N}で表される。振幅応答はsinc^N形状であり、通過帯域端にドロップ(減衰)が生じるのが特徴である。サンプリング定理やナイキスト周波数と合わせて理解すると、設計上のトレードオフが整理しやすい。
基本構造と動作原理
CICフィルタは、(1) 高速側でN段の離散時間積分器を通し、(2) レート変換(ダウンサンプリングなら1/R、アップサンプリングならR倍の挿入)を行い、(3) 低速側でN段の差分器を通すという流れで動作する。積分器はy[n]=y[n−1]+x[n]という累積和であり、差分器はd[n]=x[n]−x[n−R M]という有限差分である。これらを直列化することで、低域通過かつ周期的ノッチを持つsinc^N型の特性が得られる。直流利得は(RM)^Nとなるため、固定小数点では語長増加(ビット成長)に注意を要する。
ダウンサンプリング(デシメーション)での構成
デシメータでは、まず高速側で積分器を通し、その後で1/Rに間引き、最後に低速側で差分器を通す。この順序により、重い演算(差分器群)を低レート側へ移し、回路規模と消費電力を抑えることができる。積分器段ではモジュロ飽和(2の補数でのラップアラウンド)を許容する設計が一般的で、差分器段での打ち消しにより有効ダイナミックレンジを確保する。Rが大きいほどノッチ間隔は狭くなり、広帯域の不要スペクトルを強力に抑圧できるが、通過帯域ドロップは増大する。
アップサンプリング(補間)での構成
補間器として用いる場合は、低速側に差分器、R倍のゼロ挿入器、そして高速側に積分器を配置する。ゼロ挿入で生じるイメージスペクトルは、sinc^Nのローブにより減衰される。乗算器不要で高効率にR倍化が可能なため、無線機のデジタルアップコンバータなどで多用される。
設計パラメータと影響
- N(段数):Nを増やすと阻止帯域の減衰は強くなり、通過帯域ドロップも大きくなる。実務ではN=3〜5程度がよく用いられる。
- R(レート変換比):ノッチの周期を決め、スペクトルの折返し/イメージ抑圧に効くが、ビット成長N·log2(RM)にも直結する。
- M(微分遅延):通常1または2を選ぶ。Mを大きくするとノッチ位置が変わり、形状の最適化余地が生じる。
通過帯域ドロップと補償FIR
CICフィルタの通過帯域は平坦ではなく、低域でも緩やかな減衰がある。高忠実度を要する場合は、低速側に短い補償FIR(等化器)を直列に置き、sinc^Nの形状を打ち消す。等化器には線形位相のFIRを選ぶことが多く、音響・計測用途では群遅延の予測性が有利である(直線位相、群遅延)。
数値効果・固定小数点実装
直流利得(RM)^Nに対応して内部語長を見積もり、積分器段では飽和よりもモジュロ演算による桁あふれ許容を用いるのが通例である。差分器段後での丸め・切り捨ては量子化雑音を増やすため、必要に応じて分布を平滑化する。FPGA/ASICでは、パイプライン挿入やキャリーセーブ加算でタイミングを確保し、リソース当たりのスループットを最大化する。
周波数特性の直感的理解
振幅応答|H(e^jω)|はおおむね|sin(ωRM/2)/(sin(ω/2))|^Nで表され、0付近で大きく、ω=2πk/(RM)(k≠0)の位置にノッチを持つ。設計では通過帯域端をどこまで広げるか、許容リップルとドロップのバランス、そして折返し/イメージ抑圧量を整合させる。入力信号帯域がナイキスト周波数に近い場合、NとRの選定は特に重要である。
代表的用途
- ΣΔADCのデシメータ:高fsで粗い1bit近傍のビットストリームを、CICフィルタで低fs・多bitに変換し、後段の補償FIRで帯域平坦化する。
- 無線基帯処理:DUC/DDRにおける補間・イメージ抑圧に用い、乗算器不要で消費電力を低減する。
- 計測・音響:広帯域の量子化雑音をオーバーサンプリングで拡散し、CICフィルタで帯域外を落として有効SNRを稼ぐ。
位相・遅延の取り扱い
CICフィルタは厳密な意味での等位相ではないが、狭帯域での近似的な線形性は保たれることが多い。システム全体の群遅延は段数やR、Mに依存し、補償FIRを含めて整合を取る。時間整合が重要な用途では群遅延や直線位相の評価を並行して行う。
評価・検証上の注意
実装検証では、窓付き正弦掃引やマルチトーンで通過帯域の平坦性と阻止帯域減衰を観測し、FFTでローブ間の漏れを解析する。クロックのジッタや配線のスキューが大きいと、差分器段で高域漏れが増え、停止帯域の抑圧が劣化するため、タイミング設計とクロック品質の確保が重要である。また、語長削減の位置や順序は雑音整形の効き方に影響するため、固定小数点シミュレーションでSNR・ENOB指標を確認する。
実装のコツとチェックリスト
- ビット成長:内部語長≧入力語長+⌈N·log2(RM)⌉を起点に、丸め位置を段階的に設計する。
- 順序最適化:デシメーションでは高レート側に積分器、低レート側に差分器を配置して資源と電力を最小化する。
- 補償FIR:目標通過帯域でのドロップを許容値以下にするようタップ数を調整する。
- 検証:理論ノッチ周波数と測定スペクトルの一致、通過帯域リップル、直流利得の整合を確認する。