I recently encountered a DSP system which did some internal upsampling via zero padding. Expecting zero-order-hold, I was surprised to find that a DC signal did not produce a DC output; many harmonics of the internal (lower) sampling frequency were also present in the output.

This leads to my question: **What upsampling techniques are commonly used, and what are their relative merits?** Why would I choose zero padding, zero order hold, or first order hold, and what other techniques are available?

Some clarifications:

* The system is real-time, so the upsampling scheme must be causal.
* The upsampler is followed by a an anti-aliasing filter that can also be specified.