how to design a high-pass IIR filter having the transfer funciton ?
    9 views (last 30 days)
  
       Show older comments
    
    Giorgia Fusaroli
 on 24 Jun 2021
  
    
    
    
    
    Commented: Mathieu NOE
      
 on 24 Jun 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 Comments
Accepted Answer
  Mathieu NOE
      
 on 24 Jun 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 Comments
  Mathieu NOE
      
 on 24 Jun 2021
				well , now if fc and Fs are given , you can easily compute the a value : 
a = 1 - 2*pi*fc/Fs;
More Answers (1)
  Giorgia Fusaroli
 on 24 Jun 2021
        
      Edited: Giorgia Fusaroli
 on 24 Jun 2021
  
      1 Comment
  Mathieu NOE
      
 on 24 Jun 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
See Also
Categories
				Find more on Digital Filter Design in Help Center and File Exchange
			
	Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!

