3
$\begingroup$

I've just learned about linear systems and impulse response functions. I know that in a linear system consisting of $h_1[k]$ and $h_2[k]$, the impulse response of the system is $h_1[k] \ast h_2[k]$.

In an exercise I was given the following system responses:

\begin{align*} h_1(0) &= a \\ h_1(1) &= b \\ h_2(0) &= c \\ h_2(1) &= d \\ h_1(n) = h_2(n) &= 0 \; \text{otherwise} \\ \end{align*}

The question was whether it would be possible to construct the parameters $a$, $b$, $c$, and $d$ in such a way that the linear system $h_1 \ast h_2$ would result in a moving average of the order 3 being applied to the input.

Well, I started with the convolution $h[k] = h_1[k] \ast h_2[k]$ for $k = 0, 1$:

\begin{equation} h[k] = [ac, bc + ad, bd] \end{equation}

I understand that for a moving average of order 3, the required convolution kernel would look like this:

\begin{equation} [1/3, 1/3, 1/3] \end{equation}

But that means I have to solve the following equation:

\begin{align*} ac &= 1/3 \\ bc + ad &= 1/3 \\ bd &= 1/3 \\ \end{align*}

And that's where I'm stuck. From my guts I'd say it's not possible to get to an answer here, because even if $a = 1$ and $b = 1$, $c$ and $d$ would have to be $1/3$ and $c + d$ would have to be $1/3$ as well. Which isn't solvable.

$\endgroup$
  • $\begingroup$ i don't have time to answer this question, but clearly you can make an FIR with 3 taps and coefficients all equal to $\frac{1}{3}$. for longer moving average filters (like the moving average of 200 adjacent samples), there is the commonly known CIC filter method that is really a filter in this class we sometimes call "Truncated IIR filters" (TIIR). you can do a moving average filter without any complex states or complex coefficients. dunno why that came up. $\endgroup$ – robert bristow-johnson Jan 10 '14 at 2:18
4
$\begingroup$

The function you are trying to solve is equivalent to $b/(3*a) + a/(3*b)=1/3$

It is also $a^2-ab+b^2=0$

but this function does not have a real number solution.

$\endgroup$
  • $\begingroup$ You can also use Wolfram Alpha to analyze the system of equations. As lennon310 pointed out, there are no real solutions. $\endgroup$ – Jason R Jan 9 '14 at 17:21
  • $\begingroup$ Note that a complex solution requires a filter with a complex state to implement. A complex state has two degrees of freedom, which might be able to encode both the current magnitude and the amount to subtract off the back end of a moving average approximation. $\endgroup$ – hotpaw2 Jan 9 '14 at 18:31
  • $\begingroup$ a=1;b=0.5*(1-1*isqrt(3));c=1/3;d=(1 + isqrt(3))/6; conv([a b],[c d]) ans = 0.3333 0.3333 0.3333 $\endgroup$ – John Jan 9 '14 at 18:46
2
$\begingroup$

The gain of the desired moving average filter is not important; you can stick it after you have done the important work, if you like. What you are asking is whether $G(z)H(z) = (a +bz^{-1})(c + dz^{-1})$ can equal $(1 + z^{-1} + z^{-2})$. Unfortunately, the roots of $1+z^{-1}+z^{-2}$ are the two complex cube roots of unity, that is, $$ 1 + z^{-1} + z^{-2} = \left(1+e^{j2\pi/3}z^{-1}\right)\left(1+e^{j4\pi/3}z^{-1}\right)$$and so the only way this is going to work is if we allow the coefficients to be complex numbers.

$\endgroup$
  • $\begingroup$ So, with regard to the assignment, do you think there's anything I'm supposed to "find out" except the fact that it's not possible to solve in the real numbers (which I sort of already did)? Any bigger picture? Oh, and what's the special meaning of $j$ if I may ask? $\endgroup$ – slhck Jan 11 '14 at 10:03
  • $\begingroup$ "Oh, and what's the special meaning of $j$ if I may ask?" On this forum, $j$ almost always means the square root of $-1$ (mathematicians use $i$ for this entity) as for example in the factorization that I show in my answer. Thus, it is a very bad idea to use $j$ to denote an integer-valued variable or index of summation, etc. $\endgroup$ – Dilip Sarwate Jan 11 '14 at 11:44

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.