Implementing FIR Hilbert Transformer in Python I want to implement FIR Hilbert Transformer in Python using window method. I'm new to digital signal processing so please point out to me all mistakes you notice.
Ideal Hilbert transformer is described as:
$H(e^{j\omega}) =
    \begin{cases}
        -j &amp; \text{, $0 &lt; \omega &lt; \pi$} \\
        j &amp; \text{, $-\pi &lt; \omega &lt; 0$}    \\
    \end{cases}
$
from which we conclude that ideal Hilbert Transformer is all pass filter $|H(e^{j\omega})| = 1$.
I know that FIR filter can be implemented using scipy.signal.firwin function.
What I don't know is which parameters to pass to function in order to get Hilbert filter aproximation.
You can't implement an ideal Hilbert transformer: its impulse response is non causal and infinite in time.
So you can only implement an &quot;approximate&quot; one and the best way to do this depends on the specific requirement of your application: what's your frequency range of interest, how much magnitude and/or phase deviation can you tolerate, are you constrained in latency or computational resources, do you need to maintain causality and transients, etc.
Python has a Hilbert transform function https://docs.scipy.org/doc/scipy/reference/generated/scipy.signal.hilbert.html but without understanding your requirements first, it will be difficult to control the parameters properly.
Very good article on Hilbert transform and analytical signals in the discrete domain: http://andrewduncan.net/air/