This document not yet complete.
When measuring the performance of a Sample Rate Converter, there are three factors to consider:
There are a number of sample rate converters available for downloading but I will limit the comparison ot Secret Rabbit Code to the following:
It should be noted that the first three converters above are based on the algorithm by Julius O. Smith which emulates the conversion of the digital signal to an analogue one and then sampling the analogue signal at the new sample rate.
Measuring the SNR of a converter is relatively straight forward. Generate an input signal consisting of a windowed sine wave, sample rate convert it and measure the signal-to-noise ratio of the output signal. A typical length for the original file is 30000 samples.
The bandwidth of a sample rate converter is a little more difficult to measure. Currently this is done by generating two short files containing a windowed sine wave. The frequencies of the sine waves are 0.35 and 0.495 of the sample rate. These file are then upsampled by a factor of 2 using the converter under test. If the attenutaion of the lower frquency is less than 3dB and higher frequency is more than 3dB, it is then possible to iteratively increase the lower frequency and decrease the upper frequency keeping the -3dB point bracketed. When the distance between the upper and lower frequency is sufficiently small, it is possible to obtain a very accurate estimate of the -3dB frequency.
The speed of a sample rate converter is easy to measure; simply perform a conversion on a large file or a number of smaller files and time the conversion process.
The above measurement techniques are built into a test program which is delivered with the Secret Rabbit Code source code distibution. This program is able to test the first four of the above converters.
SoX provides three methods of resampling; a linear interpolator, a polyphase resampler and the Julius O. Smith simulated analogue filter method.
More Coming Soon.