how to design a high-pass IIR filter having the transfer funciton ?
조회 수: 11 (최근 30일)
이전 댓글 표시
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
채택된 답변
Mathieu NOE
2021년 6월 24일
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
Mathieu NOE
2021년 6월 24일
well , now if fc and Fs are given , you can easily compute the a value :
a = 1 - 2*pi*fc/Fs;
추가 답변 (1개)
Giorgia Fusaroli
2021년 6월 24일
편집: Giorgia Fusaroli
2021년 6월 24일
댓글 수: 1
Mathieu NOE
2021년 6월 24일
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
참고 항목
카테고리
Help Center 및 File Exchange에서 Digital Filter Design에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!
