12.2 Virtual Analog Filters
12.2.1 Nonlinear Resonator
Analog filters used in music technology are not strictly speaking linear, because at high signal levels they produce distortion. One attempt to include this phenomenon in digital filters has been described by Rossum [Ros92]. He proposed inserting a saturating nonlinearity in the feedback path of a second-order all-pole filter, see Figure 12.1. In this case, the clipper is a symmetrical hard limiter. With this modification, the filter behaves a lot like an analog filter. It produces harmonic distortion and compression when the input signal level is high. Furthermore, its resonance frequency changes when the filter is overloaded, as pointed out in [Ros92]. This technique was used in the E-mu EMAX II sampler, which appeared in 1989. It is an early example of a virtual analog filter used in commercial products.
Figure 12.1 A digital resonant filter with a nonlinear element in its feedback path [Ros92].
A MATLAB® implementation of Rossum's nonlinear resonator is given in M-file 12.1. The filter coefficients A0, a1, and a2 are computed as in a conventional digital resonator, see, e.g., [Ste96]. In the following examples, we set the resonance frequency to 1 kHz and the bandwidth to 20 Hz. The sampling rate is fS = 44.1 kHz. The saturation limit of the clipper is set to 1.0.
M-file 12.1 (nlreson.m)
function y = nlreson(fc, bw, limit, x) ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access