<< Chapter < Page | Chapter >> Page > |
We have already seen how discrete-time LTI systems can be represented mathematically in both the time domain (through the impulse response $h[n]$) and frequency domain (through either the frequency response $H(\omega)$ or the transfer function $H(z)$). But systems can be thought of not only as entities that we create to modify signals, but as real-world environments which might perform unwanted (or only temporarily wanted) changes to the signal. For example, a television or cell phone signal traveling in the air through a downtown area might reach its destination with added echoes. Or a camera lens might introduce unintentional blur on a photograph. Or a signal might be modified to help with its transmission. In each of these cases, we can represent the modifications as a system that takes an input and produces an output, and we ultimately would like to undo the changes the system made; we would like to recover the input, given the output. A system that seeks to recover this original input is called an inverse filter , and the process of inverse filtering is also known as deconvolution .
It might not be clear at first how to create a system that recovers $x[n]$ from $y[n]$, especially if we consider the problem in the time domain: if $y[n]=x[n]\ast g[n]$, then what must $h[n]$ be so that $h[n]\ast y[n]=h[n]\ast (x[n]\ast g[n])=x[n]$? By the associative and commutative properties of convolution, you could say we would want $h[n]\ast g[n]=\delta[n]$ because $\delta[n]\ast x[n]=x[n]$, but even then, how do you create such an impulse response?
The problem is more straightforward when we consider it from the z-domain: $\begin{align*}\hat{X}(z)&=H(z)Y(z)\\&=H(z)G(z)X(z)\\&=X(z)~,~H(z)=\frac{1}{G(z)}~\forall ~z \end{align*}$So if we can create $H(z)$ such that it equals $\frac{1}{G(z)}$, then we can recover the original input $x[n]$ by filtering the output $y[n]$ through a system whose transfer function is $H(z)$. If the original filter $G(z)$ is a rational function with certain poles and zeros, then the inverse filter will also be a rational function; and, since $H(z)=\frac{1}{G(z)}$, it follows naturally that $H(z)$ will have poles at the locations of $G(z)$'s zeros and zeros at the location of $G(z)$'s poles: $\begin{align*}G(z)&= z^{N-M}\, \frac{(z-\zeta_1)(z-\zeta_2) \cdots (z-\zeta_M)}{(z-p_1)(z-p_2) \cdots (z-p_N)},\\ ~\\H(z)=\frac{1}{G(z)}&=z^{M-N}\, \frac{(z-p_1)(z-p_2) \cdots (z-p_N)}{(z-\zeta_1)(z-\zeta_2) \cdots (z-\zeta_M)} \end{align*}$
Suppose a discrete-time signal $x[n]$ is input through a filter $G(z)$ with frequency response and pole/zero plot as displayed below: When the signal $x[n]$ is passed through this filter, the signal $y[n]$ is the output: In order to recover the input $x[n]$ from the output $y[n]$, we can run $y[n]$ through an inverse filter $H(z)$ where $H(z)=\frac{1}{G(z)}$: The result is a recovered signal that is identical to the original input:
There is an intuitive reason why a $G(z)$ with a pole on or outside the unit circle could not be inverted. Suppose the system $G$ has this simple input/output relationship: $y[n]=x[n]-x[n-1]$ Such a system is a primitive high-pass filter, with a single zero on the unit circle at $z=1$. What this zero does is completely eliminate the $\omega=0$ (i.e., DC) frequency component of the input signal. If all we have, then, is $y[n]$, we have absolutely no way of knowing what that value was, therefore there is no $H(z)$ that could possibly recover an arbitrary $x[n]$ from $y[n]$ (of course, if it so happened that the original signal $x[n]$ did not have any $\omega=0$ component, then it could be recovered). Looking at it from a z-domain point of view, there would have to be a pole for $H(z)$ at $z=1$, which is BIBO unstable (any input with a non-zero $\omega=0$ component will "blow up").
Even if $G(z)$ is not invertible, we can still try to recover $x[n]$ as best as we can. As we do so, we will usually want to make sure our inverse filter $H(z)$ is BIBO stable. If it happens that $\frac{1}{G(z)}$ has poles on or outside the unit circle, we will simply move them inside the unit circle. A straightforward way of doing this is by regularization . We choose the smallest constant value of $r$ that will make the following $H_a(z)$ BIBO stable: $H_a(z)=\frac{1}{G(z)+r}$.
Suppose that a discrete-time signal $x[n]$ passes through a filter $G(z)$ that is very similar to the one in the first example, except that this $G(z)$ has a zero outside the unit circle. In this case, the $H(z)$ inverse filter cannot merely be $\frac{1}{G(z)}$, as it would therefore have a pole outside the unit circle and would not be BIBO stable: However, if we let $H_a(z)=\frac{1}{G(z)+\frac{1}{16}}$, then this will move what would have been a pole outside the unit circle into one inside the circle: As a result, this $H_a(z)$ is BIBO stable. Since it is not exactly $\frac{1}{G(z)}$, then it will not exactly recover $x[n]$, but it is a stable filter that can at least come close to doing so, as we can see in the following plots:
Notification Switch
Would you like to follow the 'Discrete-time signals and systems' conversation and receive update notifications?