how to design a high-pass IIR filter having the transfer funciton ?
10 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
Giorgia Fusaroli
il 24 Giu 2021
Commentato: Mathieu NOE
il 24 Giu 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 Commenti
Risposta accettata
Mathieu NOE
il 24 Giu 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 Commenti
Mathieu NOE
il 24 Giu 2021
well , now if fc and Fs are given , you can easily compute the a value :
a = 1 - 2*pi*fc/Fs;
Più risposte (1)
Giorgia Fusaroli
il 24 Giu 2021
Modificato: Giorgia Fusaroli
il 24 Giu 2021
1 Commento
Mathieu NOE
il 24 Giu 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
Vedere anche
Categorie
Scopri di più su Digital Filter Design in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
