Mercurial > hg > decimation
view README.txt @ 28:69ee50c19c0c tip
Add decimate-b
author | Chris Cannam |
---|---|
date | Tue, 22 Oct 2013 08:59:42 +0100 |
parents | ece2031120c9 |
children |
line wrap: on
line source
Decimation ========== The aim of this little project is to compare a few different methods of signal decimation for relative speed and quality. "Decimation" refers here to downsampling a signal by a power-of-two factor. The principle is to use a low-pass filter to reduce the bandwidth of the signal to below the Nyquist frequency at the target sample rate (i.e. with the maximum frequency content being below the original rate divided by twice N, for a decimation factor N) and then to pick every Nth sample. This is simple enough, but we have a few different implementations available with different quality and performance tradeoffs. Here we compare: * "decimate": the Decimator implementation in the qm-dsp library, which uses an 8-tap IIR lowpass filter; * "resample_hq", "resample_mq", "resample_lq": the Resampler implementation in the qm-dsp library, which uses a lengthy Kaiser-windowed sinc filter, at three different quality settings; * "src": the sndfile-resample program which uses libsamplerate, a well trusted resampler also using a Kaiser-windowed sinc implementation, at its default quality setting; * "zoh": the sndfile-resample zero-order hold resampler, which just takes every Nth sample without any filtering, serving as a baseline. Run "make" (caution: only tested on Linux with GNU make and bash) to build and run the tests. Author: Chris Cannam (cannam@all-day-breakfast.com)