DSPRelated.com
Forums

non-uniform-sampling

Started by Andre September 10, 2007
Hi all,

I would like to know if there is an easy method to do the following:

I have a signal of, say, 10ms, sampled at 32kHz (320 samples).
I would like to convert this to a signal sampled with a varying sampling 
rate, for example, starting at 16 kHz, going down to 4 kHz at the end.
This would involve a time-variant anti-alias-filter and non-uniform 
sub-sampling.

Is there a standard method for doing this?

Best regards,

Andre
The most straightforward approach is IMO to reconstruct the continuous-time
waveform through a lowpass filter, and evaluate it at the desired sampling
instants:

Every input sample represents a sin(x)/x pulse, centered around the input
sample. That can be evaluated at the desired location of the output
sample.

In a practical implementation it comes down to design a suitable lowpass
filter with a shorter impulse response. Search for "polyphase filter" or
"Farrow interpolation". There was a similar thread recently on comp.dsp.

Cheers

Markus

PS: If it is possible to process the whole signal at once via FFT, it's
easy to evaluate the resulting sin() and cos() terms at any point in time.