5
$\begingroup$

I would like to find the impulse response, $h[n]$, of an LTI system given the input

$$x[n] = [1,-3,2]$$

and the output

$$y[n] = [1,-1,-4,4]$$

I know that $y[t]=x[t]*h[t]$, but I am having hard time to figure out the right way to calculate the impulse response. I know very little about signal processing, so if you don't mind giving an easy explanation, then I appreciate it. Or, if it's possible to do an example, that's better.

$\endgroup$
0

2 Answers 2

3
$\begingroup$

$\mathcal Z$-transforming the input and the output and then dividing them, we obtain the transfer function

$$\begin{array}{rl} H (z) &= \dfrac{1 - z^{-1} - 4 z^{-2} + 4 z^{-3}}{1 - 3 z^{-1} + 2 z^{-2}}\\\\ &= \dfrac{z^3 - z^2 - 4 z + 4}{z (z^2 - 3 z + 2)}\\\\ &= \dfrac{(z-1) (z-2) (z+2)}{z (z-1) (z-2)}\\\\ &= \dfrac{z+2}{z} = \color{blue}{1 + 2 z^{-1}}\end{array}$$

Computing the inverse $\mathcal Z$-transform of $H (z)$, we finally obtain the impulse response.

$\endgroup$
2
$\begingroup$

From the lengths of the input and the output, we conclude that the impulse response has length $2$. Thus, the output is given by

$$y_k = h_0 x_k + h_1 x_{k-1}$$

We then have an overdetermined system of $4$ linear equations in $h_0$ and $h_1$

$$\begin{bmatrix} x_0 & 0\\ x_1 & x_0\\ x_2 & x_1\\ 0 & x_2\end{bmatrix} \begin{bmatrix} h_0\\ h_1\end{bmatrix} = \begin{bmatrix} y_0\\ y_1\\ y_2\\ y_3\end{bmatrix} $$

Using Python + SymPy:

>>> from sympy import *
>>> X = Matrix([[ 1, 0],
                [-3, 1],
                [ 2,-3],
                [ 0, 2]])
>>> y = Matrix([1,-1,-4,4])
>>> h = (X.T * X)**-1 * X.T * y
>>> h
Matrix([[1],
        [2]])

This is the least-squares solution. It is easy to verify that it is also a solution of the original linear system (otherwise the problem would be ill-posed). Hence,

$$\boxed{y_k = x_k + 2 x_{k-1}}$$

$\endgroup$
4
  • $\begingroup$ Could you elaborate on how you've concluded the impulse length? $\endgroup$
    – Dan M.
    Jan 6, 2019 at 20:39
  • $\begingroup$ @DanM. When convolving finite discrete-time signals, the length of the output is the sum of the lengths of the signals being convolved minus $1$. $\endgroup$ Jan 6, 2019 at 20:58
  • $\begingroup$ What if they can be padded with zeroes? I.e. you only know the non-zero length of input. $\endgroup$
    – Dan M.
    Jan 6, 2019 at 21:01
  • $\begingroup$ @DanM. Such length is enough. $\endgroup$ Jan 7, 2019 at 0:24

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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