Universal Audio WebZine
Volume 2, Number 6, July 2004
[UA Universe] [Ask the Doctors] [Digital Discourse] [Analog Obsession]
[Support Report] [Dealer Focus] [Digi-Talk] [Analog Dialog] [Featured Promotion]
[Graphic-Rich WebZine]
[Back Issues] [UA Home]

 Dr. David Berners (left) is the Universal Audio Director of Algorithm Development; Dr. Jonathan Abel is the co-founder and CTO
Ask the Doctors! Drs. David P. Berners and Jonathan S. Abel Answer Your Signal Processing Questions.

Q: What is Dynamic Convolution and what types of things can it be used to model?

A: Dynamic convolution is a method for modeling signal processing devices. It falls under the category of signal modeling, which refers to any modeling method that uses only relationships between input and output signals to characterize a device. In general, the advantage of signal modeling techniques is that nothing need be known about the processes which go on within a device in order to do the modeling. The disadvantage is that for nonlinear systems, it is possible that an infinite set of measurements is needed to do the characterization. Moreover, in most cases it is impossible to determine when enough measurements have been made. For linear systems, a device can be characterized fully with just a single measurement, but only for the particular knob settings tested. This means that for devices with many controls, it may be cumbersome to characterize a device using signal modeling. Without sophisticated analysis, data needs to be collected for every conceivable set of knob positions, and some method must be introduced to interpolate between measurements. Because of the difficulties associated with signal modeling, we at UA tend to use physical modeling techniques to produce our plug-ins. Physical modeling tends to require more work up front to set up a signal processing structure, but allows full characterization with a smaller set of measurements. So the disadvantage of physical modeling would be that we have to start from scratch for each device we want to model. Dynamic convolution is an attempt to use signal modeling to create a single, generic process which can be used to successfully model a wide array of devices. Let's look in detail at how dynamic convolution works:

"Dynamic convolution is an attempt to use signal modeling to create a single, generic process which can be used to successfully model a wide array of devices."

Under the dynamic convolution model, a system is measured in order to recover a series of responses, which correspond to the system behavior when excited by impulses of varying levels. The idea is that, for nonlinear systems, the response will depend in some way on the level of the input signal. The implementation of the model is a system, which, at each sample, begins output of one of the recorded impulse responses. The response is picked which corresponds to an impulse which has the same level as the instantaneous level of the input signal. Since one impulse response is started with each sample, at any given instant there may be multiple overlapping responses which must be then summed to form the output signal.

If the system being measured is linear and time-invariant (LTI), then all of the measured impulse responses will be scaled copies of each other. In this situation, dynamic convolution will give a response identical to the system being modeled. The method has, in this case, been reduced to conventional convolution, which is an appropriate model for linear-time invariant systems.

If the system being measured is not LTI, then "something else" will happen using dynamic convolution. One relevant question would be, "What is the something else, and is it appropriate?" It turns out that, depending upon the nature of the nonlinearities involved in the system being modeled, dynamic convolution may or may not be an appropriate modeling technique.

 Figure 1. static nonlinearity followed by linear system
Consider the system shown in Figure 1, a memory-less nonlinearity followed by a linear system.

For this system, the measured impulse responses will once again be scaled copies of each other. However, the scaling will no longer be proportional to the size of the impulse used to excite the response. Since the nonlinearity is static (stateless, and time invariant) and occurs before the linear part of the system, dynamic convolution can be used to characterize this system fully, and a model based on dynamic convolution will produce the correct output for any input signal.

Now let's look at the case of a mastering limiter with lookahead. Typically, this type of processor will have a combination of nonlinearities and filtering elements interspersed throughout the system. In general the block diagram shown in Fig. 2 will apply, if the limiter is feed-forward:
 Figure 2: typical limiter block diagram

For mastering applications, many limiters will have a flat spectral response. For signals below the threshold of limiting, no dynamic processing or filtering will occur. This means that, under the dynamic convolution model, any impulse below the limit threshold will produce an output which is also an impulse, at the same level as the input. What happens for impulses above the threshold? If the limiter has lookahead, the gain will be reduced by the limiter as shown in Fig. 3. With lookahead, the gain will be reduced so that, by the time the input impulse arrives at the output, the output level will be equal to the threshold.

 Figure 3: input signal and limiter gain shown as functions of time Figure 4: input-output relationship for limiter modeled by dynamic convolution
This means that, for impulses above the threshold level, the impulse response will again be an impulse, but the level will be constant regardless of the input level.

What behavior will this combination of impulse responses lead to? We have the following expression for the impulse responses, based on the arguments above:

•For input x(n)=a_(n):
For |a| < 1.0 h(n) = a_(n-N)
For |a| > 1.0 h(n) = _(n-N) * sign(a)

Since all of the impulse responses are themselves delayed impulses, the model produced by dynamic convolution can be reduced to a delay followed by a static nonlinearity. This is true because the span of each impulse response is only one sample, which means that the impulse responses do not overlap, and no filtering takes place. The form of the nonlinearity is given by the equations above, and is equivalent to a symmetrical clipper. According to this model, the input-output relationship for a sinusoidal input would look as follows in Fig. 4:

Obviously, this model fails to capture the internal states of the limiter, and leads to a grossly inadequate model of the behavior. The output as shown is merely a clipped, delayed version of the input.

Dynamic convolution can be used successfully for a very specialized set of nonlinear systems, but in general is not appropriate for systems with hidden internal states, such as dynamics processors.

-Dave Berners