本帖最后由 朱立平 于 2013-9-25 13:16 编辑
您太客氣了 很抱歉這兩天有點忙 沒上線
CIC濾波器 就是COMB (sinc)濾波器 其系統等效 =>
((1-z^-M)/(1-z^-1)/M)^k -> downsample M -> output
等於
(1/(1-z^-1)/M)^k -> downsample M -> (1-z^-1)^k -> output
其中 M:為down sample rate , k:為order,
其實 ((1-z^-M)/(1-z^-1)/M) = (1+z^-1+z^-2+...+z^-(M-1))/M 就是moving average
COMB一句話說穿了: COMB就是 k個moving average串起來,再降頻M倍
所以您可以用k個moving average (sampling frequence = SDM sampling frequence) 直接看您系統各個頻率的頻率響應 (for COMB filter) 再 down sampling. (time domain & frequency domain 都要做分析)
用COMB其實alias應該會很小 因為alias頻率都在COMB frequency response接近0的地方,附近的頻率,而且你都做到4階了,COMB在alias頻率的頻率響應一定非常非常小.
一般decimation filter是用COMB down sampling to 4 times Nyquist frequency, then series 2 half-band filters each down sample 2 times, then series a frequency compensation filter (2th or 3rd order IIR) and a optional high pass filer (filt out the DC component).
您如果用Verilog做就不會發生積分器爆滿的問題了 因為Verilog會自動overflow 然後在輸出(COMB 輸出)自動迴轉回來正常數字範圍 如果您要用數學軟體模擬要做overflow迴轉機制(就跟Verilog一樣)盡量用Matlab自己手寫程序最好(也可以用C語言 盡量用手寫程序比較可靠) 這樣掌控性最好 用一些simulink功能可能不太可靠 (設計IC盡量不要靠tool, 第一靠思考,第二才靠手寫程序分析,tool用的越少越好,很多華而不實的tool把他們捨棄吧. 設計IC要靠基本功(思考與理論基礎),不是靠tool, tool不是不用是用的越少越好.). 要做frequency domain & time domain 分析. 著手設計前一定要先做數學理論分析與 Matlab (or C 語言) 系統模擬,設計出來的東西才是你要的.
不知道有沒有回答到您的問題? |