我正在构建一系列滤波器(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
答案 0 :(得分:1)
您需要以输入速率(600 kHz)查看两个滤波器的频率响应。如果您将FIR低通滤波器的脉冲响应上采样到CIC分频器的输入速率并对两者进行卷积,则应该将两个滤波器级联的脉冲响应组合在一起。