If F{f} and F{g} are the fourier transforms of f and g, thenF{f∗g}=F{f}F{g}. This is yet another case where you don’t actually have to compute the convolution to get the thing. I don’t actually use fourier transforms or have any intuition about them, but for those who do, maybe this is useful?
It’s amazingly useful in signal processing, where you often care about the frequency-domain because it’s perceptually significant (eg: percieved pitch & timbre of a sound = fundamental frequency of the air-vibrations & other frequencies. Sounds too fizzy or harsh? Lowpass filter it. Too dull or muffled? Boost the higher frequencies, etc etc etc). Although it’s used the other way around—by doing convolution, you don’t have to compute the thing.
If you have a signal and want to change it’s frequency distribution, what you do is construct a ‘short’ (finite support) function—the convolution kernel—whose frequency-domain transform would multiply to give the kind of frequency responce you’re after. Then you can convolve them in the time domain, and don’t need to compute the fourier/reverse-fourier at all.
For example, in audio processing. Many systems (IIRC linear time-invariant ones) can be ‘sampled’ by taking an impulse response—the output of the system when the input is an impulse (like the Dirac delta function, which is ∞ at 0 but 0 elsewhere—or as close as you can physically construct). This impulse response can then impart the ‘character’ of the system via convolution—this is how convolution reverbs add, as an audio effect, the sound of specific, real-life resonant spaces to whatever audio signal you feed them (“This is your voice in the Notre Dame cathedral” style). There’s also guitar amp/cab sims that work this way. This works because the Dirac delta is the identity under (continuous) convolution (also because these real physical things like sounds interacting with space, and speakers, are linear&time-invariant).
It also comes up in image processing. You can do a lot of basic image processing with a 2d discrete convolution kernel. You can implement blurs/anti-aliasing/lowpass, image sharpening/highpass, and edge ‘detection’ this way.
It’s amazingly useful in signal processing, where you often care about the frequency-domain because it’s perceptually significant (eg: percieved pitch & timbre of a sound = fundamental frequency of the air-vibrations & other frequencies. Sounds too fizzy or harsh? Lowpass filter it. Too dull or muffled? Boost the higher frequencies, etc etc etc). Although it’s used the other way around—by doing convolution, you don’t have to compute the thing.
If you have a signal and want to change it’s frequency distribution, what you do is construct a ‘short’ (finite support) function—the convolution kernel—whose frequency-domain transform would multiply to give the kind of frequency responce you’re after. Then you can convolve them in the time domain, and don’t need to compute the fourier/reverse-fourier at all.
For example, in audio processing. Many systems (IIRC linear time-invariant ones) can be ‘sampled’ by taking an impulse response—the output of the system when the input is an impulse (like the Dirac delta function, which is ∞ at 0 but 0 elsewhere—or as close as you can physically construct). This impulse response can then impart the ‘character’ of the system via convolution—this is how convolution reverbs add, as an audio effect, the sound of specific, real-life resonant spaces to whatever audio signal you feed them (“This is your voice in the Notre Dame cathedral” style). There’s also guitar amp/cab sims that work this way. This works because the Dirac delta is the identity under (continuous) convolution (also because these real physical things like sounds interacting with space, and speakers, are linear&time-invariant).
It also comes up in image processing. You can do a lot of basic image processing with a 2d discrete convolution kernel. You can implement blurs/anti-aliasing/lowpass, image sharpening/highpass, and edge ‘detection’ this way.
Ahh—convolution did remind me of a signal processing course I took a long time ago. I didn’t know it was that widespread though. Nice.