What are the best approaches to characterize an unknown discrete time LTI system? I believe one of the approaches is to input a known input and measure the output to find a transfer function. What are some more approaches to better characterize this black box system?
-
$\begingroup$ Giving an impulse input to your black box will give the impulse response of the system which can be used to calculate the output for an input x[n] $\endgroup$ – DSP Novice Apr 6 '20 at 6:12
-
2$\begingroup$ This is super broad. It's 90% of what the scientific field system identification is about. I know a library with literally multiple 100 kg of books on how to identify systems. You need to narrow things down, with a model of what it might be, and restrictions on what you can and can't do. $\endgroup$ – Marcus Müller Apr 6 '20 at 7:13
One option from the realms of adaptive filtering is the Least Mean Squares (LMS) filter depicted below:
The idea is you take the output of the unknown system, compare it with the output of your adaptive filter and minimize the difference by tweaking the filter coefficients, using a LMS algorithm. When the error $e(n)$ is zero (or more often, lower than a threshold you define) you found your unknown system's response.
There are countless resources where you can learn about LMS. In this case, given
the input vector: $$X(i) = [x(i) \space x(i-1) \ldots x(i-N+1)]^T$$ and the coefficients vector: $$W = [w_0 \space w_1 \ldots w_{N-1}]^T$$
The output of the adaptive filter is: $$\hat{y}(i)=X(i)^TW$$
Now define the cost function to be: $$e(i)^2 = \big(d(n)-\hat{y}(i)\big)^2$$ It can be shown that the gradient of the cost function with respect to the coefficients is:$$\hat{\nabla}(i) = \frac{\partial e(i)^2}{\partial W} = -2e(i)X(i)$$ Since the gradient points towards the maximum of the cost function you update the coefficients in the opposite direction: $$\hat{W}(i+1) = \hat{W}(i)-\mu\hat{\nabla}(i) = \hat{W}(i)+2\mu e(i)X(i)$$ where $\mu$ controls the adaptation speed. I've ignored a lot of details but this is the idea.
Note that the filter will produce a frequency response that is adapted to you input signal $x(n)$. It's not guaranteed for any other frequency. For example, in the response depicted below, my $x(n)$ is composed of 3 tones. You can see only at those particular frequencies does the filter (N=3,6,10) match the true response (H1(z)). So consider feeding it a wideband signal like white noise.
If you want to learn more you can check for example:
B. Widrow, Adaptive Signal Processing, Prentice-Hall, 1985
I think the best possible way to get the transfer function of a LTI blackbox would be giving complex exponential as input. Because complex exponential $Ae^{j\omega_0}$ are eigen functions of LTI systems. So output will be $$ Ae^{j\omega_0} \rightarrow H(e^{j\omega_0})Ae^{j\omega_0}. $$
If you have a reasonable idea of the LTI Blackbox, can restrict your $\omega_0$, to a range of frequencies. The magnitude response of output will be $$ M(\omega_0) = |H(e^{j\omega_0})|A $$ and the phase response will be $$ \angle(\omega_0) = \angle(H(e^{j\omega_0})). $$ If you have magnitude and phase response of output, you can easily remove the known input magnitude/phase to get the Black-box system's characteristics.