how to design a high-pass IIR filter having the transfer funciton ?
22 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Giorgia Fusaroli
el 24 de Jun. de 2021
Comentada: Mathieu NOE
el 24 de Jun. de 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 comentarios
Respuesta aceptada
Mathieu NOE
el 24 de Jun. de 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 comentarios
Mathieu NOE
el 24 de Jun. de 2021
well , now if fc and Fs are given , you can easily compute the a value :
a = 1 - 2*pi*fc/Fs;
Más respuestas (1)
Giorgia Fusaroli
el 24 de Jun. de 2021
Editada: Giorgia Fusaroli
el 24 de Jun. de 2021
1 comentario
Mathieu NOE
el 24 de Jun. de 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
Ver también
Categorías
Más información sobre Filter Design en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!