View Single Post
Old 07-24-2009, 07:40 AM   #13
liteon
Human being with feelings
 
liteon's Avatar
 
Join Date: Apr 2008
Posts: 510
Default fractional delay approximation with an allpass filter

fractional delay approximation with an allpass filter:

Code:
//code here
@init
k=0.5;
@sample
y0=spl0-k*(y=y0+k*spl0);
spl0=y;
quick explanation:
the above is a basic one pole allpass filter. in one sentence - allpass filters affect only the phase of the signal while preserving the energy (magnitude) of the signal. this way it is possible to get relative group delay, the amount of which is dependent from a pole position (k). note that group delay value does not correspond directly to the pole i.e. k=0.5 != gd=0.5 samples. this requires extra mapping for user controlled amounts.

[img]http://img233.**************/img233/6681/gdmapping.gif[/img]

example for parameter mapping with an exponent:
Code:
//error is minimized but k should be limited to [0,1] for slider values [0,1]:
slider1:0<0,1,0.01>d
@slider
x=slider1;
k=exp(x*1.29)/$e-0.356;


various fractional delay methods described here:
http://sal.shs.arizona.edu/~smathur/.../MathurCh3.pdf
http://www.acoustics.hut.fi/~vpv/pub...cassp00-fd.pdf



---
lubomir

Last edited by liteon; 07-25-2009 at 02:54 AM.
liteon is offline   Reply With Quote