- PAGE 9 -
http://www.musicdsp.org/files/denormal.pdf 3.2.5 Alternatives and efficient solutions
The methods below are derived from the previous ones and are close to perfection. They fit in
numerous common cases and are very fast. They are based on the addition of two alternative
values to the signal. As soon as the added value changes, the denormal apparition is prevented in
or for future feedback loops, for a limited number of samples. Value alternations just have to be
frequent enough to prevent most of the denormal apparitions.
Spectrum of the generated noise is quite rich. Moreover, by choosing 0 for one of the values, one
can create a DC offset while reducing calculations
To minimize calculations, one can also call
add_dc()
sporadically, for example one time every
20 samples, or even more. This produces random pulses, the spectral content of which is rich and
close to the white noise. However generating this random time component is not always obvious
and easy. One may just call
add_dc()
regularly to generate an impulse train. This method also
produces a lot of frequencies everywhere in the spectrum. It is especially adapted to block-based
processing. Of course block size should be carefully chosen depending on DSP algorithm
architecture.
+
Very fast.
Fills the spectrum almost uniformly.
Propagates to next stages.
–
It does not eliminate denormal numbers, but prevents their apparition.
< if this is the negative then how promising is this )To be maximally efficient, requires block-processing algorithms whose size should be
carefully chosen.
Alters the smallest numbers by quantifying them.