96 kHz.org
Advanced Audio Processing

A parametric saturation model

This page shows functions with programable saturation behavior based on polynoms. They can be used for smoothing operations, cross fading in between two channels and also wave generation by edge shaping.

 

wave generation with saturation functions  

hysteresis model with saturation

The slope of the curves and the degree of saturation can be easily adjusted, allowing the harmonics to be specifically limited. In this way, square waves can be synthesized with a well-defined bandwidth limit. The calculation is performed by an iterative procedure - specifically, by continued multiplication followed by numerical integration. Alternatively, the full formula can also be rolled out in order to then integrate it.

The functions are derived from the equation Y = 4 * X * (1-X) which leads to a parabolic arc at first. This function is squared several times to obtain bell curves with a decreasing width which then are integrated. The range for X is 0 ... 1. The factor 4 is to scale it that way that it reaches the 100% at the top of the curve. The integrated functions are scaled in a simular way to end up at 100%.

First stage Y = 4 * ( X - X*X)
Integral (Y)  =  3/2 * 4 * (X*X/2 - X*X*X / 3)  -> 3*X*X - 2*X*X*X

Second stage: Y2 = Y*Y  =  16 * ( X*X - 2*X*X*X + X*X*X*X )
Integral (Y*Y) = 16 * (X*X*X / 3 - X*X*X*X / 2  + X*X*X*X*X / 5)

Third stage: Y3 = Y2*Y2  =  ...

Forth stage: Y4 = Y3*Y3  =  ...

 

A complete model with parameterization is available as C code.

Download C-App for Chameleon DSP: Parametric Saturation Distorsion

 

© 2004 - Jürgen Schuhmacher