As you can see from the definition of convolution (in the previous post), it’s tedious, if not hard, to compute the convolution for arbitrary, generic signals. Working from the definition every time will be painful, especially when you get to do transforms later.

You will find everything in this class super-hard if you just want to plug-and-chug.

Having you plug the functions and numbers into the definitions and go work through the long math is not the point of a signals-and-system class. In fact it’s quite the opposite:

This class tries to teach you all the tricks available to AVOID the tedious math.

That means if you get the essence, the problems are supposed to be easy. A hard-working mentality is the biggest obstacle to doing well in signals-and-systems. It’s not uncommon for professors to come up with ‘hard’ problems with dead easy solutions, which devastates and infuriates students enough that the ones who didn’t make it will hate it from the bottom of their hearts.

From the previous posts, I repeatedly emphasized superposition as the #1 trick (property to exploit) in this class. For most of the problems in the class, they are not arbitrary signals. Professors synthesize them from a common set of ‘building blocks’:

- Dirac-delta function <-> sinusoids (complex exponentials)
- Rectangular waveform <-> sinc functions
- (Occasionally) triangular waveform and ramps.
- (Laplace and z-transforms): decaying/growing exponentials.
- (Controls) Heaviside step function

Namely, they linearly combine (and window) the above building blocks to form the signals you see on exams. They are basically testing whether you can break their synthetic waveform into the building blocks to apply the properties shown in the class.

Note that other than exponentials (sinusoids are considered complex exponentials) and sinc, most of the building blocks are discontinuous functions that needs to be described mathematically. Here are 3 typical ways that I know:

- Split cases: the favorite for most textbooks and typed up solutions. Drawing vector graphics (pictures) with LaTeX is such a huge pain.
- Indicator function: only after you get savvy with breaking functions into partitions (over different time segments) or add up overlaying blocks. Just a heads up that not all professors like it (because most likely you’re breaking up the cases in a different way than theirs), but they are obliged to accept the answer as it’s technically complete and correct.
- Draw it: that’s the
**best way**if your grader is not anal-retentive. It also helps you and everybody get the idea. Make sure you label the transition points and amplitudes that uniquely define the shape you’ve drawn.

Here is an example with unit rectangle function:

Anything written in green color are measure-zero technicalities (i.e EEs don’t care, but mathematicians will harp on you about it).

There are good reasons why certain signals are the common building blocks. I’ll give the stories behind them as they naturally show up in later topics.

Understanding these artificial signal building blocks have practical advantages even with real-life signals. Being able to approximately break a complicated signal in your head and predict the expected behavior is valuable to developing insights to practical systems.

If you have some really weird looking signal that cannot be easily (or approximately) broken down into building blocks, you’ll need a computer (either numerical crunching platforms like MATLAB or computer algebra systems like Maple/Mathematica). I bet these won’t be on your standard 3-hour exam questions (likely take-homes or projects though).

It’s super rare that you’d be given a difficult function that cannot be decomposed that you’ll need to plug it into the integral (or sum) and painfully work through it. Note that there are a few rare situations (most likely a bonus question for the A+ students) that the easy solution to a hard problem is straight off the definition, so leave it as an option, but not your first weapon of choice.

Before I write up more, take the opportunity to remember these common building blocks as we will use them over and over. Shoot me a comment below once you are comfortable with the common building blocks above and you want more written.

1,067 total views, 1 views today

I have been teaching convolution for a while now I was really frustrated with how hard it was to teach. (I was using flip and drag! I even wrote python code to animate it.) The students are really frustrated too. I was searching for how to teach convolution when I hit upon your site, and I thought the summing of echoes example was fantastic. Are there any more of these blocks coming? It was nice of you to write out your frustrations and solutions after you took your classes. Feedback like that for a professor is hard to get. Thanks.Report

I am so glad that my non-traditional approach to teaching signal processing helped somebody! So far you are one of the only few people who left me comments/feedback. Thanks for the encouragement! I’ll write up some more. Check back in a week 🙂Report

By the way, I’ve also advocated a few times on Quora that flip-and-drag does nobody any good no matter how you put it.

This is a 5-minute quickie *without* building a solid background on linearity and time-invariance:

https://www.quora.com/What-is-linear-convolution/answer/Hoi-Wong-2.

Actually “Oversimplified S&S #5” came from my Quora answer except I removed all mentions to correlation since it’s a slightly more advanced (statistical) signal processing topic:

https://www.quora.com/Why-we-need-to-flip-the-signal-during-convolution-not-in-correlation-What-is-the-physical-meaning-of-it/answer/Hoi-Wong-2

Hope it helps.Report