[linux-audio-dev] "declicking" algorithm?

Dan Mills dmills at spamblock.demon.co.uk
Thu Dec 15 18:45:07 UTC 2005


On Thursday 15 December 2005 18:06, Phil Frost wrote:

> There is truth in what you say, but given the problem described, this is
> likely more confusing than helpful to someone new to signal processing.
>
> If the problem is that the input is a low frequency square wave, from a
> Low Frequency Oscilator, the popping has nothing to do with the
> "nyquest" limit. If the square wave were coming from an ideal source
> (which it isn't) then any higher frequency components likely would be so
> small as to be smaller than the quantization error.

The thing is that a LFO implemented as part of a plugin is an ideal source for 
all practical purposes, it can and does do a step change in sample value (for 
the nieve squarewave case) which if the LFO is running at 20Hz gives the 
level of the 1001st harmonic as 1/1001 that of the fundamental, or some 60db 
down. Low but hardly buried in the nose, as the mixing products will not be 
harmonically related to either signal.  

> The problem is simply that it contains high frequency components (under
> the limit), or more intuitively, a sudden drop or rise. Drop or rise
> more slowly, and the pops go away.

Does hooking the LFO output directly to a speaker click, if so this is the 
problem, but if it only acts up when multiplied with another signal then I 
still maintain that it is mixer products aliasing that is the problem.

> There is no need here for a high order filter here, and no risk of phase
> shifts or overshoot. A simple first order lowpass filter will be quite
> effective, as will any other simple techniques such as averaging or
> changing the LFO function to put more slope on the rising and falling
> edges.

Also the OP probably needs to make the rate of change continuous as that can 
also cause a click. 

Regards, Dan.



More information about the Linux-audio-dev mailing list