Generally speaking, resampling factors do not have to be an integer or a simple
fractional ratio. Because of that, traditional methods based in
upsampling/filtering/decimation techniques may not be suitable given the amount of
calculations resulting from the typical input waveform sizes involved. Instead of this,
a straighter forward approach has been chosen. This approach is based in the
following principles:
Only output samples will be calculated so there is not any up-sampling and/or
down-sampling operations involved.
Filtering calculations will be kept to a minimum by using a filter with a fast enough
roll-off and sufficient stop band attenuation according to the target AWG dynamic
range.
Interpolation filter and anti-alias filters are exactly the same although the filter
parameters will depend on the resampling parameters.
The implemented algorithm does perform filtering and interpolation simultaneously
so the number of calculations is greatly reduced. Additionally, filters are
implemented as look-up tables so those are calculated only once during the process.
Timing parameters are based in double precision floating-point numbers while
amplitude related parameters are single precision numbers. Most calculations
consist in multiplication/addition operations required by convolution processes and
only involve amplitude related variables (input samples and filter coefficients). Single
precision numbers will minimize calculation time while offering more than enough
dynamic range.
Interpolators and anti-aliasing filters share most characteristics as they are required
to be low-pass with good flatness, linear phase, fast roll-off, and high stop-band
rejections ratio. Ideal interpolator filters show a “brick-wall” response. However, such
filters require a very long “sinc-like” impulse response to obtain good-enough
performance. Impulse response length has a direct effect on calculation times
resulting of applying the filter. Roll-off characteristics are especially important when
applying the filter as the anti-alias filter required for down-sampling. The filter
implemented in these algorithms has been designed with the following objectives:
Pass band flatness better than 0.01 dB
Stop band attenuation better than 80 dB
F80dB/F3dB ratio better than 1.15