The \$z\$-transform of the zero order hold is 1. So why should it even be considered in the discrete time analysis or simulation of discrete time control systems?


  • 1
    \$\begingroup\$ There is no z transform for ZOH, since it is not a discrete-time system, it is continuous time system meant to model reconstruction of discrete time signal into continuous time signal. \$\endgroup\$ – Eugene Sh. Feb 10 '15 at 20:37
  • \$\begingroup\$ @EugeneSh. Thanks - you actually solved my main problem. My system is purely discrete, so no need for a ZOH. The interesting thing is it is used as a device to 'bridge' discrete and continuous components, but taken in isolation its Z-transform is indeed 1. Or did I make a mathematical error? \$\endgroup\$ – docscience Feb 10 '15 at 21:16
  • \$\begingroup\$ The point is that when sampled, the continuous function f(t) and ZOH(f(t)) will yield the same data points, so when performing the Z-transform on both, you will get the same result, so this is the meaning of your 1 result, I guess. \$\endgroup\$ – Eugene Sh. Feb 10 '15 at 21:19
  • \$\begingroup\$ @EugeneSh. To further add to the mystery of the ZOH you will find that some text books include $T$ as a factor in the denominator, which makes more sense to me. There's actually been heated discussions on whether $T$ should be included or not. \$\endgroup\$ – docscience Feb 10 '15 at 21:22

The ZOH TF above is a link between continuous and discrete domains in hybrid systems. This is the most convenient mechanism for representing a hybrid system in transfer function form. There is not, of course, a one-to-one relationship between \$s\$ and \$z\$ domains, hence it's a mathematical convenience. In the relationship above, the exponential term should be negative (not positive as given), giving a \$z\$-equivalent of \$1-\exp(-sT)\$ as \$(z -1)/z\$ to be included with purely discrete blocks (filters, etc) and the \$1/s\$ part of the ZOH should be included with the other continuous \$s\$-blocks. The \$s\$-TF of the continuous elements is then transformed into the \$z\$-domain, giving an overall \$z\$-TF.


If anybody cares, it's interesting to do the z-transform of the ZOH at a DIFFERENT rate. In other words, say you have a digital signal \$X_{in}\$ that is digitized at 50 Hz, so \$T_1 = 0.02 \mathrm{s}\$, each sample of the signal is 20 ms apart. Say you have a computer program that is operating on this signal at 100 Hz (let \$T_2 = 0.01 \mathrm{s}\$). What is happening in the computer is that a variable \$X_{in}\$ that changes every 20 ms is being sampled by your a program every 10 ms and some operation is performed producing an output \$X_{out}\$. Since the value of \$X_{in}\$ simply holds its value until it changes every 20 ms, you can consider this to be a ZOH:

\$(1 - e^{-sT_1})/s\$

Now, you have to redigitize at the \$1/T_2\$ rate. The numerator simply becomes


and the numerator (through s-to-Z transform):


resulting in:


Let me go back a bit and define \$z_1\$ and \$z_2\$.

Since, in general, \$z = e^{-sT}\$, define \$z_1 = e^{-sT_1}\$, and \$z_2 = e^{-sT_2}\$

Noting that \$T_1 = 2 T_2\$, \$z_1 = e^{-sT_1} = e^{-s2T_2} = e^{2(-sT_2)} = z_2^2\$

substitute \$z_2^2\$ for \$z_1\$ :

\$\frac{1-z_1^{-1}}{1-z_2^{-1}} = \frac{1-z_2^{-2}}{1-z_2^{-1}} = \frac{(1-z_2^{-1})(1+z_2^{-1})}{1-z_2^{-1}} = 1+z_2^{-1}\$

So, the final result is actually very intuitive when you think about it. The program that is upsampling \$X_{in}\$ from 50 to 100 Hz is simply taking the original copy \$X_{in}\$ (the '1' part of the result) and adding to it a copy of the same sample delayed by one \$T_2\$ sample step (the \$z_2^{-1}\$ part). A simple example:

Say \$X_{in} = [1;2;3;4]\$, with sample spacing of \$T = 20\mathrm{ms}\$ Then \$X_{in}\$ upsampled with the ZOH would look like

\$X_{inupzoh} = [1;1;2;2;3;3;4;4]\$ with sample spacing of \$T = 10\mathrm{ms}\$

NOTE, that WITHOUT the ZOH, (say \$X_{in}\$ was cleared every time it was read), the upsampled \$X_{in}\$ would be:

\$X_{inup} = [1;0;2;0;3;0;4;0]\$

Now for the fun part (if you stuck with me): If you have access to a tool (like Matlab) to do ffts and bode plots:

Do the fft of \$X_{in}=[1;2;3;4]\$, as well as \$X_{inup}\$ and \$X_{inupzoh}\$. You can look at the real and imag parts of the fft results or convert the fft results to magnitude and phase and see the surprising results.

What you should see is that upsampling without a ZOH simply moves the Nyquist frequency. You have to remember that the spectrum of a digital signal is periodic and infinite, that means that even though we usually only look at the spectrum from \$0\$ to \$\frac{T_s}{2}\$, that spectrum is actually repeating every \$\frac{kT_s}{2}\$ on the freq axis. Upsampling without the ZOH didn't actually change the signal (it only inserted zeros), but it DID move the Nyquist freq. Then you can see that ADDING another copy of the signal delayed by one sample point has an interesting gain AND phase effect. At low frequencies the gain is actually doubled, and the gain doesn't get to unity until \$\frac{2}{3}\times 50\mathrm{Hz}\$ and drops off after that. This is a very real effect that CAN cause problems for some control systems that are gain and/or phase sensitive.

Downsampling is a bit more complicated mathematically... I've typed too much already....

  • \$\begingroup\$ Zero stuffing followed by a low pass filter with a gain of 2 is actually a good way to double the sampling rate in a streaming DSP chain. \$\endgroup\$ – Simon Richter Apr 1 '16 at 23:14

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.