# Convert low pass continuous time filter design to bandpass, discrete time

I am trying to convert the continuous time transfer function of a second order lowpass Butterworth filter is given by:

To a bandpass fourth order bandpass digital filter, I first apply the mapping to bandpass:

We therefore obtain the bandpass continuous time transfer function

In order to convert this to a digital filter with with band edge frequencies of 2000Hz and 2819.3 Hz, and a sampling rate of 8 kHz. We first normalise and apply bilinear prewarping

approximating slightly we get

Then applying the bilinear transform

We get the fourth order discrete time filter

However
Checking the results at the normalised angular frequencies 0 and at the bandpass center frequency 3, I find that the frequency response is not as desired. is this an arithmetic mistake or have I missed something, your help would be very much appreciated.

$$H(s)=\frac{s^2(\Omega_2-\Omega_1)^2}{s^4+\sqrt{2}(\Omega_2-\Omega_1)s^3+(\Omega_1^2+\Omega_2^2)s^2+\sqrt{2}\Omega_1\Omega_2(\Omega_2-\Omega_1)s+\Omega_1^2\Omega_2^2}$$
With the given band edge frequencies (note that the lower band edge of the discrete-time filter must be $2000\,\text{Hz}$, not $4000\,\text{Hz}$) you correctly got $\Omega_1=2$ and $\Omega_2=4$. Applying the bilinear transform to the analog bandpass transfer function with these band edges finally gives the following discrete-time transfer function:
$$H(z)=\frac{z^4-2z^2+1}{(10+3\sqrt{2})z^4+(12+2\sqrt{2})z^3+20z^2+(12-2\sqrt{2})z+10-3\sqrt{2}}$$