# Get an input signal from LTI system output, find impulse response

I just study signal processing and I have some questions.

1. How to find impulse response $h[n]$ sequence of the system if I have $x[n]$ and $y[n]$ (input and output) sequences? Hope there is a formula to do that.
2. How to find $x[n]$ input sequence if I have $h[n]$ and $y[n]$?
3. Is it possible to find $x[n]$ if I just have set of $y[n]$ values, but I don't know impulse response $h[n]$? How to do that if so?

-
I want to ask the same question, which was in section 1 but for continues time. I have to find the impulse response and I have been given the input and output. –  Tauseef Jun 5 '13 at 12:26

Ok. You are touching on the topic of deconvolution. You can do this most easily by transforming the data into the frequency domain, doing some basic math and then converting back to the time domain.

For example for case 1, if you transform the signals you have $H(f) = Y(f)/X(f)$ so $h[n] = IDFT[Y(f)/X(f)]$

You can do similar manipulations to handle case 2.

I'm not sure case 3 is possible. I think you need more information to produce x[n]

Here is a site that discusses deconvolution: http://terpconnect.umd.edu/~toh/spectrum/Deconvolution.html

This is a VERY simplified treatment of this question. I'm not sure what level of detail is being requested in the posted question.

-
I just want to point out that deconvolution and/or system identification are tricky, complicated topics that aren't quite as "plug-and-chug" as indicated here. As one example, what happens to your calculation of $H(f)$ above if $X(f) = 0$ for some values of $f$? Also, the problem referenced in question #1 is known as system identification, while #2 is more typically referred to as deconvolution. The structure of the two problems is similar, but you might attack them differently. –  Jason R Jan 22 '13 at 14:13
Absolutely true. This is a way over simplified answer to a complex question, but I think you've got to start somewhere. Start with the basic idea and then work your way up to the practical details. I got the impression this was kind of a theoretical question based on the "just study signal processing" comment. –  user2718 Jan 22 '13 at 14:22
Also to add on to @JasonR's remark, for case 1, if $X(f)=0$, then it's actually not possible to reconstruct $H(f)$. In practical scenarios, the system is actually $y(t)=(h*x)(t)+n(t)$ where $n$ denotes noise that is typically wideband. In these scenarios, if $X(f)$ is small, then the reconstructed $H(f)$ has low SNR. The fancy algorithms simply fill in for $H(f)$ when $X(f)=0$ (or small) using prior assumptions typically by a technique called regularization. Likewise for case 2, $X$ and $H$ are swapped. –  thang Jan 22 '13 at 19:28
Thanks. From now I can at least google for system identification and deconvolution to find more information if necessary. –  Pavel Shchegolevatykh Jan 23 '13 at 10:21