Interpret convolutions with different arguments. For example, $f(t) * \delta(t-\alpha)=f(t-\alpha)$

convolutionsignal processing

I'm trying to learn signal processing and I don't know how to process this.

My textbook says that the pure time shift LTI system that goes $y(t) = x(t-t_0)$ has an impulse response $h(t) = \delta(t-t_0)$, which means that $f(t) * \delta(t-t_0) = f(t – t_0)$.

That's signal processing. It makes sense.

Mathematically, a convolution between signals $f(t)$ and $g(t)$ are defined as $f(t) * g(t) = \int_{-\infty}^{\infty} f(\tau)g(t-\tau) d\tau$. So, it requires that the arguments to $f$ and $g$ be the same. But it is often that the arguments are not the same, like in this case (i.e. $t$ vs. $t-t_0$).

How do I expand a convolution like $f(t) * \delta(t – t_0)$ into an integral, and prove this identity mathematically?

Here's what I tried.

Let $f_d (t) = f(t + t_0)$ so that $f(t) = f_d (t – t_0)$. Then, since $f_d (t – t_0) * \delta (t – t_0) = f_d (t – t_0)$, $f(t) * \delta (t – t_0) = f(t)$. (!!!)

Not the result I was expecting.

Fundamentally, I want to understand what is meant when engineers talk about convolutions that are not exactly of the form $(f * g)(t)$, but rather of $f(p(t)) * g(q(t)), p \ne q$.

My background is college calculus + intro differential equations.

Best Answer

You do it by writing every function involved as a distinct function of $t$ only (as you did with $h$), and only then applying your formula for a convolution. Let me also write $f_{t_0} (t) := f(t-t_0)$. Then \begin{align} f(t) * \delta(t-t_0)=f(t)*h(t) &= \int_{-\infty}^\infty f(\tau) h(t-\tau) d\tau \\&= \int_{-\infty}^\infty f(\tau) \delta(t-\tau-t_0) d\tau \\&= \int_{-\infty}^\infty f(\tau) \delta(t-(\tau+t_0)) d\tau \\&= \int_{-\infty}^\infty f(\tau-t_0) \delta(t-\tau) d\tau \\&= \int_{-\infty}^\infty f_{t_0}(\tau) \delta(t-\tau) d\tau \\&=f_{t_0}(t) \\&=f(t-t_0)\end{align}

I want to point out that there is a notation nightmare happening. (Nevermind that you introduce $x$ and $f$ to mean the same thing). The object on the left has $t$s that indicate that the whole expression is evaluated at some yet unspecified value $t$, but beware that if you just e.g. replaced $t=1$, $f(1)$ would be a number, maybe $6$, $\delta(1-t_0)$ only barely makes a little sense if at all, and who knows what $6*\delta(1-t_0)$ would be, probably not equal to $$\big(f(t) * \delta(t-t_0)\big)\big|_{t=1} = f(1-t_0).$$

This notation landmine explains why your attempt failed. If we now subscript by $z$ to mean translation by $z$, so that $f_z(t) = f(t-z), \ \delta_z(t) = \delta(t-z) $, etc. (in particular what you called $f_d$, I call $f_{-t_0}$ and $h = \delta_{t_0}$), then by applying the above correct result at the point marked ✅ for the function $f=g_{t_0}$, $$ g(t-t_0)* \delta(t-t_0)=g_{t_0}(t) * \delta_{t_0}(t) \overset{✅}= g_{t_0}(t-t_0) = g(t-2t_0)$$ We see that in general, $g(t-t_0)* \delta(t-t_0) \neq g(t-t_0)$. This happened because you cannot treat the $t$ on the left as something that can be substituted with $t-t_0$.

Its unambiguous if one writes something like $$ [f*\delta(\cdot-t_0)](t), [f*\delta(\cdot-t_0)](1), \text{etc}.$$ but there is a certain naturality to writing it in the way you did, which is OK if you "know the rules of the game".