As a Electronic Engineering student I have a fair knowledge about convolution and DSP. But, I was wondering if it is possible to perform a convolution only using analog circuit (without memory)? And if it is possible, what would be the restrictions?

In short, I would like to project this using only an analog circuit:

$$ y(t) = (x * h)(t) = \int^{b}_{a}x(\tau)h(t-\tau)d\tau $$


  • Both signals would be an arbitrary input (x and h in the above formula).
  • I am willing to make simplifications of all kinds, since it is doing what I am asking.
  • 1
    \$\begingroup\$ This might be dumb, but it is possible to implement it mechanically via a conveyor belt. \$\endgroup\$
    – Gunnish
    Jan 19, 2013 at 18:11
  • \$\begingroup\$ LOL. I want a video of this \$\endgroup\$
    – HackerBoss
    May 23, 2019 at 20:54

3 Answers 3


Before digital processing got fast and cheap enough to do convolutions, various ways were developed to do it in analog electronics. If you want to convolve two arbitrary signals, then you're out of luck unless you are willing to make a lot of compromises and/or spend a lot of money. Historically, analog convolutions were limited to convolving one real time signal by a pre-determined fixed signal, called the "filter kernel". Either way, some storage is required for each signal, but with one signal fixed it can be implemented by a "permanent" memory, which allows for a lot more possibilities than doing it on the fly.

You still have the problem of storing some portion of the live signal, since some interval of that needs to be multiplied by the kernel as the signal passes by. Systems have been developed that do this with delay lines, traveling electron beams, bucket-brigage charges on a CCD, and accoustic waves. There are probably others that I am not aware of or forgot about.

Once you can somehow store a snapshot of the live signal wide enough to match the filter kernel, you will have to then multiply it by that kernel and sum up the products. In delay line systems, this would be done with "taps" at regular intervals. The signal at each tap would be multiplied by a fixed gain (the filter kernel value at that tap), then all these resulting signals summed. CCDs had split pickups over each charge bucket so that the gain for each bucket was set by where the split was located. This would be set when the chip was made, so there were CCD filter chips with certain pre-determined filters. The most common use was for a sync filter, which is a low pass filter with a sharp frequency cutoff. Surface accoustic wave devices had the signal propagate accross the chip accoustically, which is much slower than light so a large enough time snapshot would be on the chip at any one time. Like with CCD, the pickups were arranged on the chip with pre-determined gains. These parts were typically used for IF and RF notch filters at a well tuned frequency.


If you look at your equation, you will need to replay X & H at many values of Tau as you integrate on the fixed interval from a to b. This means that you will need storage/memory of some sort.

But what a good question.

On one end of the spectrum you have a sampled and digitized sequence (commonly called "digital") on the other you have a purely analog signal. Intermediate between the two is a sampled analog system. The act of sampling and storing (whether analog or digital) allows operations such as convolution, and non-causal filtering which is what your equation is one form of.

The very first CCD's (Charge Coupled Devices) where developed for similar signal processing tasks as you describe. Although those early signal processing chains were notably less complex than your choice, being simple delay lines and feedback/feedforward systems. For example, guitar effects like a flanger and echo were done using CCD's. (I may have the terms guitar effects wrong - please correct me).

In your case you would need to run the sampled system many many time faster than the sampling rate of the incoming signal. If your sample depth is say 16 then it would need to be run \${16}^2\$ = 256X faster.

I do know that these devices exist still, in some signl processing applications like support chips for image processing in analog signal chains. And they would be called analog delay lines or sampled analog delay lines.

But in purely analog sense without sampling you would still need an analog memory of some sort which is replayable.

  • \$\begingroup\$ If the goal is to achieve the effect of convolution with a particular fixed h, one may in some cases be able to do so reasonably well in a purely-analog device, even in situations which are supposed to represent "pure" delay, by using such goodies as mechanical spring transducers. \$\endgroup\$
    – supercat
    Jan 17, 2013 at 17:36

For a Linear Time-Invariant system convolution is equivalent to filtering. When you pass a signal through an LTI system you are simply convolving it with the impulse response of the system.

If you want to convolve two signals though then that's a lot trickier to do in the analogue domain. It would certainly need "memory" in some form, e.g. a delay line.

  • 1
    \$\begingroup\$ Pre-digital reverb effects often worked by using mechanical objects to provide the time delay and perform the convolution. See "reverb tank". \$\endgroup\$
    – Phil Frost
    Jan 17, 2013 at 15:45
  • \$\begingroup\$ It's the trickier one that I want! I was wondering, it would be sufficient to eliminate the need of memory if I use an even signal ? \$\endgroup\$ Jan 17, 2013 at 15:58
  • \$\begingroup\$ @Phil: yes, indeed, also tape loops for longer reverb/echo times. \$\endgroup\$
    – Paul R
    Jan 17, 2013 at 16:06
  • 3
    \$\begingroup\$ @Ernesto: perhaps you could edit your question to clarify the requirement that both x and h are signals? \$\endgroup\$
    – Paul R
    Jan 17, 2013 at 16:08
  • \$\begingroup\$ Convolution is not the same as filtering. It's a mathematical operation which transforms the input signal. \$\endgroup\$
    – Johan.A
    Sep 17, 2013 at 10:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.