我正在構建一系列濾波器(一個CIC抽取器後接一個低通濾波器),我對頻率和脈衝響應感興趣。不同採樣率的脈衝響應的卷積
即使知道CIC抽取具有作爲移動平均濾波器(MA)類似的脈衝響應,我計算了CIC抽取的下列方式
%parameters of cic
D=300; %deci factor
M=1; %delays of comb
Stages=3;
% get impulse response estimated based on MA
N=M*D;
B=ones(1,N);
B2=conv(B,B);
B3=conv(B2,B);
b_cic=B3*N^(-Stages); % FIR coefs and impulse response
脈衝響應我們的採樣率我輸入信號爲600kHz,這意味着CIC抽取器的輸出爲2kHz。讓我們假設是FIR低通濾波器的係數如下
b_lp=[b_1 b_2 b_3 b_4 b_5]; % the values are not important right now
所以在這裏我的問題是,我可以在頻率響應乘以估計級聯濾波器響應(我知道我必須要考慮到不同的採樣率和響應的長度):
[Hcic,Fcic]=freqz(b_cic,1,300*1000,fs);
[Hlp,Flp]=freqz(b_lp,1,1000,fs/300);
不過,我想知道是否有可能進行卷積採取下采樣兼顧時域脈衝響應? 例如像:
b_cas = con(b_cic,b_lp); % <--- I know that this does not work due to different sampling rates
到目前爲止,我無法使用谷歌或在這裏找到的東西。
我知道我可以使用內置的MATLAB功能不同的過濾器,並使用
dsp.FilterCascade
我很確定我錯過了這一點,但爲什麼這樣一個涉及的過程?你能不能簡單地向你的抽取器和低通濾波器發送一個衝動?由於您的所有濾波器似乎都是非遞歸的,因此您的脈衝響應應該在有限的時間內關閉。計算你捕獲的脈衝響應的FFT,並獲得頻譜。 –
問題是,CIC的脈衝響應是用MA脈衝響應估計的。然而,這個估計並沒有考慮到下采樣。因此,使用設置爲不同採樣率的LP濾波器會導致錯誤的脈衝,並且估計出的頻率響應也是不正確的。如前所述,我意識到可以克服這個問題,在頻域中進行倍增或構建濾波器對象並將它們級聯起來。不過,我想知道是否可以根據這裏描述的方法在時間域上做到這一點。 – Irreducible