Many musical instrument models require nonlinear elements, such assignal bandwidth, it can cause aliasing in a discrete-time implementation. In the above examples, the nonlinearity also appears inside a feedback loop. This means the bandwidth expansion compounds over time, causing more and more aliasing.
The topic of nonlinear systems analysis is vast, in part because there is no single analytical approach which is comprehensive. The situation is somewhat analogous to an attempt to characterize ``all non-bacterial life''. As a result, the only practical approach is to identify useful classes of nonlinear systems which are amenable to certain kinds of analysis and characterization. In this chapter, we will look at certain classes of memoryless and passive nonlinear elements which are often used in digital waveguide modeling.
It is important to keep in mind that a nonlinear element may not be characterized by its impulse response, frequency response, transfer function, or the like. These concepts are only defined, in general, for linear time-invariant systems. However, it is possible to generalize these notions for nonlinear systems using constructs such as Volterra series expansions . However, rather than getting involved with fairly general analysis tools, we will focus instead on approaching each class of nonlinear elements in the manner that best fits that class, with the main goal being to understand its audible effects on discrete-time signals.
Memoryless or instantaneous nonlinearities form the simplest and most commonly implemented form of nonlinear element. Furthermore, many complex nonlinear systems can be broken down into a linear system containing a memoryless nonlinearity.
Given a sampled input signal , the output of any memoryless nonlinearity can be written as
The fact that a function may be used to describe the nonlinearity implies that each input value is mapped to a unique output value. If it is also true that each output value is mapped to a unique input value, then the function is said to be one-to-one, and the mapping is invertible. If the function is instead ``many-to-one,'' then the inverse is ambiguous, with more than one input value corresponding to the same output value.
A simple example of a noninvertible (many-to-one) memoryless nonlinearity is the clipping nonlinearity, well known to anyone who records or synthesizes audio signals. In normalized form, the clipping nonlinearity is defined by
Since the clipping nonlinearity abruptly transitions from linear to hard-clipped in a non-invertible, heavily aliasing manner, it is usually desirable to use some form of soft-clipping before entering the hard-clipping range.
A simple example of an invertible (one-to-one) memoryless nonlinearity is the arctangent mapping:
Cubic Soft Clipper
Any ``smooth'' function can be expanded as a Taylor series expansion:
where ``smooth'' means that derivatives of all orders must exist over the range of validity. Derivatives of all orders are obviously needed at by the above expansion, and for the expansion to be valid everywhere, the function must be smooth for all .
For example, the arctangent function used above can be expanded as
The clipping nonlinearity in Eq.(6.17) is not so amenable to a series expansion. In fact, it is its own series expansion! Since it is not differentiable at , it must be represented as three separate series over the intervals , , and , and the result obtained over these intervals is precisely the definition of in Eq.(6.17).
Spectrum of a Memoryless Nonlinearities
Consider a simple signal processing system consisting only of the square-law nonlinearity:
In the absence of hard-clipping ( ), bandwidth expansion is limited to a factor of three. This is the slowest aliasing rate obtainable for an odd nonlinearity. Note that smoothing the ``corner'' in the clipping nonlinearity can reduce the severe bandwidth expansion associated with hard-clipping.
In general, placing a memoryless nonlinearity in a stable feedback loop preserves stability provided the gain of the nonlinearity is less than one, i.e., . A simple proof for the case of a loop consisting of a continuous-time delay-line and memoryless-nonlinearity is as follows.
The delay line can be interpreted as a waveguide model of an ideal string or acoustic pipe having wave impedance and a noninverting reflection at its midpoint. A memoryless nonlinearity is a special case of an arbitrary time-varying gain . By hypothesis, this gain has magnitude less than one. By routing the output of the delay line back to its input, the gain plays the role of a reflectance at the ``other end'' of the ideal string or acoustic pipe. We can imagine, for example, a terminating dashpot with randomly varying positive resistance . The set of all corresponds to the set of real reflection coefficients in the open interval . Thus, each instantaneous nonlinearity-gain corresponds to some instantaneously positive resistance . The whole system is therefore passive, even as changes arbitrarily (while remaining positive). (It is perhaps easier to ponder a charged capacitor terminated on a randomly varying resistor .) This proof method immediately extends to nonlinear feedback around any transfer function that can be interpreted as the reflectance of a passive physical system, i.e., any transfer function for which the gain is bounded by 1 at each frequency, viz., .
The finite-sampling-rate case can be embedded in a passive infinite-sampling-rate case by replacing each sample with a constant pulse lasting seconds (in the delay line). The continuous-time memoryless nonlinearity is similarly a held version of the discrete-time case . Since the discrete-time case is a simple sampling of the (passive) continuous-time case, we are done.
- Verify that aliasing can be heard and sounds bad before working
to get rid of it.
- Aliasing (bandwidth expansion) is reduced by smoothing
``corners'' in the nonlinearity.
- Consider an oversampling factor for nonlinear
subsystems sufficient to accommodate the bandwidth expansion
caused by the nonlinearity.
- Make sure there is adequate lowpass filtering in a feedback loop
containing a nonlinearity.
- oversampling, and
- a lowpass filter to after the nonlinearity.
Another variation is to oversample by two, in which case there is aliasing, but that aliasing does not reach the ``base band.'' Therefore, a half-band lowpass filter rejects both the second spectral image and the third, which is aliased onto the second.
String Coupling Effects