moerjielovecookie

Sawen_Blog

一个普通工科牲的博客网站
x
github
follow
email

多速率信號處理-CIC濾波器

基本原理#

級聯積分梳狀濾波器(Cascade Intergrator Comb)是多速率信號處理中一種十分高效的數字濾波器。CIC 濾波器具有低通濾波器的特性,同時具有以下優勢:

  • 濾波器係數全為 1,設計時不需要存儲濾波器係數,節省存儲單元,同時使得濾波時只需要加法器和累加器,不需要乘法器
  • 結構規則,可靈活設置插值因子而不影響整體結構

積分器#

積分器結構為

2024after4202409052106726.png

時域上可表示為

y1(n)=x(n)+y1(n1)y_1(n)=x(n)+y_1(n-1)

頻域上可表示為

H1(ejw)=11ejwH_1(\mathrm{e}^{\mathrm{j}w})=\frac{1}{1-\mathrm{e}^{-\mathrm{j}w}}

可得積分器的幅度譜為

H1(ejw)=11ejw=1ejw/2(ejw/2ejw/2)=12sin(w2)\left|H_1(\mathrm{e}^{jw})\right|=\left|\frac{1}{1-\mathrm{e}^{-jw}}\right|=\left|\frac{1}{\mathrm{e}^{-jw/2}(\mathrm{e}^{jw/2}-\mathrm{e}^{-jw/2})}\right|=\left|\frac{1}{2\sin\left(\frac{w}{2}\right)}\right|

從公式可以得出積分器只有極點(ω=2kπk為整數)(\omega = 2k \pi,k為整數)而無零點,且對直流信號具有無限大的增益。

1725542139077.png

梳狀濾波器#

時域上可表示為

yC(n)=x(n)x(nRM)y_C(n)=x(n)-x(n-RM)

R 和 M 的乘積表示梳狀濾波器的延遲長度

頻域上可表示為

HC(z)=1zRMH_\mathrm{C}(z)=1-z^{-RM}

幅度譜為

HC(ejw)=1ejRMw=ejRMw/2(ejRMw/2ejRMw/2)=2sin(RM2w)\left|H_{\mathrm{C}}(\mathrm{e}^{\mathrm{j}w})\right|=\left|1-\mathrm{e}^{-\mathrm{j}RMw}\right|=\left|\mathrm{e}^{-\mathrm{j}RMw/2}(\mathrm{e}^{\mathrm{j}RMw/2}-\mathrm{e}^{-\mathrm{j}RMw/2})\right|=2\left|\sin\left(\frac{RM}{2}w\right)\right|

1725542829180.png

可知梳狀濾波器只有零點,沒有極點

R=8R=8M=1M=1,則結構為

1725542752856.png

由此可知單級 CIC 濾波器的幅度譜為

HCIC(ejw)=H1(ejw)HC(ejw)=sin(RM2w)sin(w2)\left|H_{\mathrm{CIC}}(\mathrm{e}^{\mathrm{j}w})\right|=\left|H_{1}(\mathrm{e}^{\mathrm{j}w})\right|\cdot\left|H_{\mathrm{C}}(\mathrm{e}^{\mathrm{j}w})\right|=\left|\frac{\sin\left(\frac{RM}{2}w\right)}{\sin\left(\frac{w}{2}\right)}\right|

RMω/2=kπ\mathrm{RM\omega}/2=\mathrm{k}\:\pi時,即w=2kπRM(k=±1,±2,,±(RM1))w=\frac{2k\pi}{RM}\quad(k=\pm1,\pm2,\cdots,\pm(RM-1))時可以確定零點

ω/2=kπ\omega /2 =k\pi,即ω=2kπ\omega = 2k\pi時,可得此時的幅頻響應為

HCIC(ejω)ω=2kπ=RM\left|H_{\mathrm{CIC}}(\mathrm{e}^{\mathrm{j}\omega})\right|_{\omega=2k\pi}=RM

從而實現了零極點相消

單級 CIC 濾波器在ω=0HCIC(ejω)=RM\omega =0時 \left| H_{CIC}(e^{j\omega}) \right|=RM,所以主瓣區間為[0,2πRM]\begin{bmatrix}0,\frac{2\pi}{RM}\end{bmatrix},其餘都為旁瓣,第一旁瓣電平為

A1=HCIC(ejw)w=3πRM=sin(RM2×3πRM)sin(12×3πRM)=1sin(3π2RM)A_1=\left|H_{\mathrm{CIC}}(\mathrm{e}^{\mathrm{j}w})\right|_{w=\frac{3\pi}{RM}}=\left|\frac{\sin\left(\frac{RM}{2}\times\frac{3\pi}{RM}\right)}{\sin\left(\frac{1}{2}\times\frac{3\pi}{RM}\right)}\right|=\left|\frac{1}{\sin\left(\frac{3\pi}{2RM}\right)}\right|

因此旁瓣抑制為

A=RMsin(3π2RM)A=\left|RM\sin\left(\frac{3\pi}{2RM}\right)\right|

當 $\mathrm {R}\rightarrow\infty $ 時,旁瓣抑制為

A=20lg(limRA)=20lg(3π2)=13.46dBA=20lg(\lim_{R\to\infty}A)=20lg(\frac{3\pi}{2})=13.46dB

單級 CIC 濾波器的阻帶衰減為

α=20lgb\alpha =-20lgb

帶內容差(通帶波紋)為

δ=20lgbπsin(bπ)\delta = 20lg\left|\frac{b\pi}{\sin(b\pi)}\right|

其中bb為帶寬比例因子

b=Bfs/(RM)b=\frac{B}{f_s/(RM)}

單級 CIC 濾波器的旁瓣電平較高,可通過多級 CIC 級聯改善。

H(ejw)=sin(RM2w)sin(w2)N\left|H(\mathrm{e}^{\mathrm{j}w})\right|=\left|\frac{\sin\left(\frac{RM}{2}w\right)}{\sin\left(\frac{w}{2}\right)}\right|^N

1725886131150.png

對於 N 級 CIC 級聯濾波器,旁瓣抑制、阻帶衰減、帶內容差可表示為

{AN=13.46NdBαN=20NlgbδN=20Nlgbπsin(bπ)\begin{cases}A_\mathrm{N}=13.46N\:\mathrm{dB}\\\alpha_\mathrm{N}=-20N\lg b\\\delta_\mathrm{N}=20N\lg\left|\frac{b\pi}{\sin(b\pi)}\right|\end{cases}

增大 CIC 濾波器階數的話,可以增加旁瓣抑制和阻帶衰減,但是會導致帶內容差變大。因此考慮到通帶性能,通常選擇N5N\leq5。在 N 不變的情況下,帶寬比例因子 b 越小,CIC 濾波器的通帶和阻帶特性也越好,因此 CIC 一般位於插值系統的最後一级(輸入速率最高)

位增長問題#

由多級濾波器的幅頻響應可知,當 $\omega \rightarrow 0$ 時

limw0H(ejw)=limw0RM2cos(RMw/2)12cos(w/2)N=(RM)N\lim\limits_{w\to0}\Bigl|H(\mathrm{e}^{\mathrm{j}w})\Bigr|=\lim\limits_{w\to0}\Biggl|\frac{\frac{RM}{2}\cdot\cos(RMw/2)}{\frac{1}{2}\cdot\cos(w/2)}\Biggr|^N=(RM)^N

由此可知多級 CIC 濾波器可以引起的幅度增益的最大值為

Gmax=(RM)NG_{max}=(RM)^N

假設輸入的數據 $x (n)$ 為有符號數,位寬為BinB_{in},取值範圍為[2Bin1,2Bin11][-2^{B_{in}-1},2^{B_{in}-1}-1],則輸出y(n)y(n)的最大值為

ymax=2Bm1(RM)Ny_{max}=-2^{B_{\mathrm{m}}-1}\cdot\left(RM\right)^N

因此輸出的最大位寬為

Bout=ceil[log2ymax]+1=Nceil[log2(RM)]+BinB_{\mathrm{out}}=\text{ceil}[\log_2|y_{\mathrm{max}}|]+1=N\cdot\text{ceil}[\log_2(RM)]+B_{\mathrm{in}}

在 FPGA 設計時,要合理地設置輸出信號的位寬,防止數據的溢出,為了節省資源,也可以在每一級適當的進行截位

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。