插入損耗(Insertion Loss):由於濾波器的引入對電路中原有信號帶來的衰耗。
通帶紋波:頻響中通帶的最大幅值和最小幅值之間的差值。正常的紋波一般小於1db。不過也視情況而言,通帶紋波會導致通帶內的幅值大小有變化,一般要求越高,紋波越小越好。通帶紋波和濾波器的階數有關系,階數越大紋波越小。表達式為:-20log10(最大幅度)-(-20log10(最小幅度) [個人感覺通帶紋波就是通帶衰減ap,但是沒找到資料確認]
通帶容限誤差 δp : δp ≥ 1/6 * ((pi* fp*M / Fs)^2) M是濾波器的長度 ,fp是通帶截止頻率,Fs是輸入信號采樣率
阻帶容限誤差 δs : δs ≥ fs*M/Fs fs是阻帶截止頻率
通帶衰減 ap(Apass) :20*lg((1+δp) / (1-δp))
阻帶衰減 as(Astop) :20*lgδs
通帶截止頻率 fp :信號在低於通帶截止頻率時,衰減量必須小於某個指標——通帶紋波
阻帶截止頻率 fs :信號在高於阻帶截止頻率時,衰減量必須大於某個指標——阻帶衰減
信號濾波后的頻譜響應 = 濾波前的頻譜 * 濾波器的頻率響應
在CIC濾波器設計過程中,只要考慮的參數:通帶紋波Apass、通帶截止頻率,阻帶截止頻率,阻帶衰減
接下來,我們看圖說話:
CIC濾波器:
半帶濾波器:
補償濾波器:我們用fdesign工具設計cic補償濾波器
(參考博客:https://blog.csdn.net/wordwarwordwar/article/details/80561023)
1 Fs=1e6; 2 hd_cic = cascade(hd1,hd2,hd3,Hb1,Hb2); %%這里的dfilt,mfilt對象是用fdatool設計導出的,此處省略介紹(見於后續博客) 3
4 d4 = fdesign.ciccomp(1, ... 5 5,100,800,.0025,100,2000); % design a cic compensator filter 6 Hd(4) = design(d4); 7 hvt=fvtool(hd_cic,Hd(4),cascade(hd_cic,Hd(4)),'Fs',[Fs Fs/500 Fs], ... % plot whole response 8 'ShowReference', 'off'); 9
10 legend(hvt, 'CIC','CIC compensator', 'Whole response','Location', 'Northeast');
d4是補償濾波器
fdesign.ciccomp(濾波器delay,級數,通帶截止頻率,阻帶截止頻率,通帶紋波,阻帶衰減,當前濾波器輸入信號的采樣率);