# Calculating filter parameters from system response

In trying to answer another question, I got stuck applying what I thought would be a valid way to answer it: using the system function. Here's what I did:

First, I put the question

Y[i] = Y[i-1] + ALPHA * ( X[i] + Y[i-1] )


into DF I:

Y[i] = ALPHA * X[i] - (ALPHA-1) * Y[i-1]


This tells me that the system function is:

H(z) = ALPHA / ( 1 + (ALPHA-1) z^-1 )


Substituting:

z=e^(jw)


and

|H(z)| = .5 (or .707)


should allow me to calculate ALPHA, but I only get complex values for ALPHA. What am I doing wrong?

• Note that you're solving for $|H(z)| = 0.5$. If you take the magnitude of both sides of the equation, then there won't be any complex numbers any more. Jun 6 '13 at 16:06
• It should be $|H(e^{j\theta})|^2=0.5$, i.e. the 3dB cut-off and $z$ on the unit circle. Jun 6 '13 at 16:23

Just math I think. Let's substitute g = ALPHA -1, which makes the algebra a little easier. Then you need to solve $$\left | \frac{1+g}{1+g\cdot e^{-j\omega }} \right |^{2}=0.5$$ That means $$\frac{1+g}{1+g\cdot e^{-j\omega }}\cdot \frac{1+g}{1+g\cdot e^{+j\omega }} = 0.5$$ Multiplying this out yields $$\frac{(1+g)^{2}}{1+2\cdot g\cdot cos(\omega) + g^{2} }= 0.5$$ We can put this into standard quadratic equation form:
$$g^{2}+(4-2\cdot cos(\omega))\cdot g + 1 = 0$$
Solve, plug in the numbers and you get $$g_{1} = -1.0744, g_{2} = -0.93074$$
$$\alpha = 0.069262$$