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 but also wave generation by edge shaping, which can be used to limit and also generate harmonics.
wave generation with saturation functions
The slope of the curves and the degree of saturation can be easily adjusted, allowing the harmonics of the curve to be specifically limited. In this way, square waves can be synthesized from scratch 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 implementation depends on the particular usage of your DSP. 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%. Prime number splitting is used for this. First stage Y1 = 4 * ( x - x*x) = 4 *
(x-x2) Second stage: Y2 = Y1*Y1 = 16 * ( X*X
- 2*X*X*X + X*X*X*X ) Third stage: Y3 = Y1*Y2 Forth stage: Y4 = Y2*Y2 = ... Fith stage = Y1*Y4 = Y2*Y3 Forth stage: Y6 = Y3*Y3 = ... the full rolled out calculation becomes ineffective from here so only sequentially squaring makes sense.
A complete model with parameterization is available as C code. Download C-App for Chameleon DSP: Parametric Saturation Distorsion
|
© 2004 - Jürgen Schuhmacher |