how to design a high-pass IIR filter having the transfer funciton ?
20 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Giorgia Fusaroli
le 24 Juin 2021
Commenté : Mathieu NOE
le 24 Juin 2021
Hi everyone,
i need to filter a signal with a high-pass IIR filter characterized by a transfer function as follow:
H(z) = 1-z^-1 / 1- a * z^-1
i know a = 0.995 and cut off frequency f = 0.25 Hz
i need to filter the sequence one time in forward direction and then in reversed.
Someone can help me ?
Thank you a lot :)
0 commentaires
Réponse acceptée
Mathieu NOE
le 24 Juin 2021
Here you are my friend
I don't know what sequence was supposed to be filtered , so the demo is on random signal
% IIr filter
fc = 0.25;
a = 0.995;
numd = [1 -1];
dend = [1 -a];
Fs = fc/(1-a)*2*pi;
% signal (random)
dt = 1/Fs;
samples = 3000;
t = (0:samples-1)'*dt;
x = randn(samples,1);
figure(1)
dbode(numd,dend,dt); % bode plot
y = filtfilt(numd,dend,x); % Zero-phase forward and reverse digital IIR filtering.
% y = filter(numd,dend,x); % forward digital IIR filtering.
figure(2) % time plot
plot(t,x,t,y);
legend('input signal','output signal');
6 commentaires
Mathieu NOE
le 24 Juin 2021
well , now if fc and Fs are given , you can easily compute the a value :
a = 1 - 2*pi*fc/Fs;
Plus de réponses (1)
Giorgia Fusaroli
le 24 Juin 2021
Modifié(e) : Giorgia Fusaroli
le 24 Juin 2021
1 commentaire
Mathieu NOE
le 24 Juin 2021
no surprise
this is a low frequency high pass filter
it will only remove the mean (DC) value of the signal , which appears on your graph as a vertical shift; the "dynamic" portion of the signal remains unchanged as the filter has no effect above 0.25 Hz
Voir également
Catégories
En savoir plus sur Filter Design dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!