I have a high pass filter given by the time-domain relationship between input and output:

$x'(t) = x(t) - \alpha \times x(t-1)$.

I would like to get its cut-off frequency. How can I proceed?


First you discretize you equation (note: I assumed that your $x(t-1)$ means a delay of one samples and not 1 second, but you can adapt easily if that's not the case) :

$$ x'[n] = x[n] - \alpha \times x[n-1] $$

Where $$ x[n] = x(n\times T_s)$$

Then you use the $\mathcal{Z}$ transform : $$X'[z] = X[z] - \alpha \times X[z]\times z^{-1}$$

And then you get the transfer function in the Z domain : $$ \frac{X'[z]}{X[z]} = 1 - \alpha \times z^{-1}$$

This is a causal FIR filter, called a 1-zero filter with its zero at $\alpha$. Your cutoff frequency will depend on your sample frequency.

Illustration :

frequency response

Code for the illustration :

hold on
for alpha=0.1:0.1:1
    h = freqz([1 0], [1 alpha]);
    f = 0:1/length(h):1-1/length(h);
    semilogy(f, 20*log(abs(h)));
    hold on
    grid on
legend('0.1', '0.2', '0.3', '0.4', '0.5', '0.6', '0.7', '0.8', '0.9', '1');
title('normalized frequency response')
  • $\begingroup$ Why do you discretize a continuous time equation :-) ? $\endgroup$
    – Fat32
    Aug 26 '17 at 10:00
  • $\begingroup$ @Fat32 Well I assumed it's a digital filter and to find its transfer function I needed to factor the $x(t)$... That's how we learn it at school :) $\endgroup$
    – Florent
    Aug 27 '17 at 22:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.