4

This might be a stupid question but is it possible to convolve two real-time signals together? I know that generally for running convolution you have the IR and the block of the real time signal and then you convolve them both, making sure you have zero-padded, and then you overlap and add these, but would it be possible, theoretically, to convolve two real-time signals? Like, have a block of one and the block of the other and convolve them real-time, and if so, would the process be fast enough to create something musically dignified?

Thanks

Gabe

msm
  • 4,035
  • 1
  • 9
  • 24

2 Answers2

3

Convolution is what happens when a signal passes through an LTI system. $$y(t)=x(t)\star h(t)=\int_{-\infty}^{\color{red}\infty}x(\tau)h(t-\tau)d\tau$$ The keyword in this question is real-time. The associated keyword in the answer would be weather the LTI system is causal or not.

If the system is causal, then $h(t)=0, \ \forall t<0$, and therefore $h(t-\tau)=0,\ \forall \tau>t$ which means $$y(t)=\int_{-\infty}^{\color{red}t}x(\tau)h(t-\tau)d\tau$$ It means we only need the inputs only from $-\infty$ up to the present time $t$ which is all available for a real-time implementation.

So the convolution can be implemented in real-time if the system we implement is causal.

To conclude and generalize this idea for two signals, if at least one of the signals are right-sided (which is practically the case), then the real-time implementation is possible.

Regarding your other question, it really depends on the delay performance of your system.

msm
  • 4,035
  • 1
  • 9
  • 24
1

For two signals that start being non-zero at some (non-negative) point of time, the resulting convolved signal is uniquely determined by the past input. It's just that if both signals are of indefinite duration, the resulting effort for calculating consecutive samples gets larger and larger.

But from a straightforward "causality" view, outputting the convolved signal while new content keeps arriving on both inputs is possible since the convolution integral does not access input lying in the future.

user28766
  • 11
  • 1