Je construis une cascade de filtres (une décimation CIC suivi d'un filtre passe-bas) et je suis intéressé par la fréquence et la réponse d'impulsion.Convolution des réponses impulsionnelles des différents taux d'échantillonnage
Sachant que la décimation CIC a une réponse impulsionnelle similaire à un filtre à moyenne mobile (MA), je calcule la réponse impulsionnelle de la décimation CIC de la manière suivante
%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
Que le taux d'échantillonnage de mon le signal d'entrée sera de 600kHz, cela signifierait que la sortie du décimateur CIC est à 2kHz. Laisse supposer que le coefficient du filtre passe-bas FIR sont les suivantes
b_lp=[b_1 b_2 b_3 b_4 b_5]; % the values are not important right now
Voici vient ma question, je pourrais estimer la réponse du filtre de la cascade en multipliant les réponses en fréquence (je sais que je dois prendre en compte les différents taux d'échantillonnage et la longueur des réponses):
[Hcic,Fcic]=freqz(b_cic,1,300*1000,fs);
[Hlp,Flp]=freqz(b_lp,1,1000,fs/300);
Cependant, je voudrais savoir s'il est possible de les convoluer réponses impulsionnelles dans le domaine temporel prenant en compte le sous-échantillonnage? Par exemple quelque chose comme:
b_cas = con(b_cic,b_lp); % <--- I know that this does not work due to different sampling rates
Jusqu'à présent, je ne pouvais pas trouver quelque chose en utilisant Google ou ici.
Je suis conscient que je pourrais utiliser la construction en fonction de Matlab pour les différents filtres et en cascade les utilisant
dsp.FilterCascade
Je suis assez sûr que je manque le point, mais pourquoi un tel processus impliqué? Ne pouvez-vous pas simplement envoyer une impulsion dans votre décimateur et votre filtre passe-bas? Puisque tous vos filtres semblent être non-récursifs, votre réponse impulsionnelle devrait être hors durée finie. Calculez la FFT de votre réponse impulsionnelle que vous capturez et vous avez le spectre. –
Le problème est, que la réponse impulsionnelle du CIC est estimée avec la réponse impulsionnelle MA. Cependant, cette estimation ne prend pas en compte le sous-échantillonnage. Donc, l'utilisation du filtre LP configuré pour une fréquence d'échantillonnage différente entraînerait une mauvaise impulsion et l'estimation de la réponse en fréquence serait également incorrecte. Comme mentionné, je suis conscient des possibilités de surmonter ce problème, la multiplication dans le domaine fréquentiel ou la construction d'objets filtrants et de les cascader. Cependant, je voudrais savoir si je peux le faire dans le domaine temporel sur la base de l'approche décrite ici. – Irreducible