Fourier Transform:
X(j2πf)=F{x(t)}≜∫−∞+∞x(t) e−j2πft dt
Inverse Fourier Transform:
x(t)=F−1{X(j2πf)}=∫−∞+∞X(j2πf) ej2πft df
Rectangular pulse function:
rect(u)≜{01if |u|>12if |u|<12
"Sinc" function ("sinus cardinalis"):
sinc(v)≜{1sin(πv)πvif v=0if v≠0
Define sampling frequency, fs≜1T as the reciprocal of the sampling period T.
Note that:
F{rect(tT)}=T sinc(fT)=1fs sinc(ffs)
Dirac comb (a.k.a. "sampling function" a.k.a. "Sha function"):
IIIT(t)≜∑n=−∞+∞δ(t−nT)
Dirac comb is periodic with period T. Fourier series:
IIIT(t)=∑k=−∞+∞1Tej2πkfst
Sampled continuous-time signal:
xs(t)=x(t)⋅(T⋅IIIT(t))=x(t)⋅(T⋅∑n=−∞+∞δ(t−nT))=T ∑n=−∞+∞x(t) δ(t−nT)=T ∑n=−∞+∞x(nT) δ(t−nT)=T ∑n=−∞+∞x[n] δ(t−nT)
where x[n]≜x(nT).
This means that xs(t) is defined solely by the samples x[n] and the sampling period T and totally loses any information of the values of x(t) for times in between sampling instances. x[n] is a discrete sequence of numbers and is a sorta DSP shorthand notation for xn. While it is true that xs(t)=0 for nT<t<(n+1)T, the value of x[n] for any n not an integer is undefined.
N.B.: The discrete signal x[n] and all discrete-time operations on it, like the Z-Transform, the Discrete-Time Fourier Transform (DTFT), the Discrete Fourier Transform (DFT), are "agnostic" regarding the sampling frequency or the sampling period T. Once you're in the discrete-time x[n] domain, you do not know (or care) about T. It is only with the Nyquist-Shannon Sampling and Reconstruction Theorem that x[n] and T are put together.
The Fourier Transform of xs(t) is
Xs(j2πf)≜F{xs(t)}=F{x(t)⋅(T⋅IIIT(t))}=F{x(t)⋅(T⋅∑k=−∞+∞1Tej2πkfst)}=F{∑k=−∞+∞x(t) ej2πkfst}=∑k=−∞+∞F{x(t) ej2πkfst}=∑k=−∞+∞X(j2π(f−kfs))
Important note about scaling: The sampling function T⋅IIIT(t) and the sampled signal xs(t) has a factor of T that you will not see in nearly all textbooks. That is a pedagogical mistake of the authors of these of these textbooks for multiple (related) reasons:
- First, leaving out the T changes the dimension of the sampled signal xs(t) from the dimension of the signal getting sampled x(t).
- That T factor will be needed somewhere in the signal chain. These textbooks that leave it out of the sampling function end up putting it into the reconstruction part of the Sampling Theorem, usually as the passband gain of the reconstruction filter. That is dimensionally confusing. Someone might reasonably ask: "How do I design a brickwall LPF with passband gain of T?"
- As will be seen below, leaving the T out here results in a similar scaling error for the net transfer function and net frequency response of the Zero-order Hold (ZOH). All textbooks on digital (and hybrid) control systems that I have seen make this mistake and it is a serious pedagogical error.
Note that the DTFT of x[n] and the Fourier Transform of the sampled signal xs(t) are, with proper scaling, virtually identical:
DTFT:
XDTFT(ω)≜Z{x[n]}∣∣∣z=ejω=XZ(ejω)=∑n=−∞+∞x[n] e−jωn
It can be shown that
XDTFT(ω)=XZ(ejω)=1TXs(j2πf)∣∣∣f=ω2πT
The above math is true whether x(t) is "properly sampled" or not. x(t) is "properly sampled" if x(t) can be fully recovered from the samples x[n] and knowledge of the sampling rate or sampling period. The Sampling Theorem tells us what is necessary to recover or reconstruct x(t) from x[n] and T.
If x(t) is bandlimited to some bandlimit B, that means
X(j2πf)=0for all|f|>B
Consider the spectrum of the sampled signal made up of shifted images of the original:
Xs(j2πf)=∑k=−∞+∞X(j2π(f−kfs))
The original spectrum X(j2πf) can be recovered from the sampled spectrum Xs(j2πf) if none of the shifted images, X(j2π(f−kfs)), overlap their adjacent neighbors. This means that the right edge of the k-th image (which is X(j2π(f−kfs))) must be entirely to the left of the left edge of the (k+1)-th image (which is X(j2π(f−(k+1)fs))). Restated mathematically,
kfs+B<(k+1)fs−B
which is equivalent to
fs>2B
If we sample at a sampling rate that exceeds twice the bandwidth, none of the images overlap, the original spectrum, X(j2πf), which is the image where k=0 can be extracted from Xs(j2πf) with a brickwall low-pass filter that keeps the original image (where k=0) unscaled and discards all of the other images. That means it multiplies the original image by 1 and multiplies all of the other images by 0.
X(j2πf)=rect(ffs)⋅Xs(j2πf)=H(j2πf) Xs(j2πf)
The reconstruction filter is
H(j2πf)=rect(ffs)
and has acausal impulse response:
h(t)=F−1{H(j2πf)}=fssinc(fst)
This filtering operation, expressed as multiplication in the frequency domain is equivalent to convolution in the time domain:
x(t)=h(t)⊛xs(t)=h(t)⊛T ∑n=−∞+∞x[n] δ(t−nT)=T ∑n=−∞+∞x[n] (h(t)⊛δ(t−nT))=T ∑n=−∞+∞x[n] h(t−nT))=T ∑n=−∞+∞x[n] (fssinc(fs(t−nT)))=∑n=−∞+∞x[n] sinc(fs(t−nT))=∑n=−∞+∞x[n] sinc(t−nTT)
That spells out explicitly how the original x(t) is reconstructed from the samples x[n] and knowledge of the sampling rate or sampling period.
So what is output from a practical Digital-to-Analog Converter (DAC) is neither
∑n=−∞+∞x[n] sinc(t−nTT)
which needs no additional treatment to recover x(t), nor
xs(t)=∑n=−∞+∞x[n] Tδ(t−nT)
which, with an ideal brickwall LPF recovers x(t) by isolating and retaining the baseband image and discarding all of the other images.
What comes out of a conventional DAC, if there is no processing or scaling done to the digitized signal, is the value x[n] held at a constant value until the next sample is to be output. This results in a piecewise-constant function:
xDAC(t)=∑n=−∞+∞x[n] rect(t−nT−T2T)
Note the delay of 12 sample period applied to the rect(⋅) function. This makes it causal. It means simply that
xDAC(t)=x[n]=x(nT)whennT≤t<(n+1)T
Stated differently
xDAC(t)=x[n]=x(nT)forn=floor(tT)
where floor(u)=⌊u⌋ is the floor function, defined to be the largest integer not exceeding u.
This DAC output is directly modeled as a linear time-invariant system (LTI) or filter that accepts the ideally sampled signal xs(t) and for each impulse in the ideally sampled signal, outputs this impulse response:
hZOH(t)=1Trect(t−T2T)
Plugging in to check this...
xDAC(t)=hZOH(t)⊛xs(t)=hZOH(t)⊛T ∑n=−∞+∞x[n] δ(t−nT)=T ∑n=−∞+∞x[n] (hZOH(t)⊛δ(t−nT))=T ∑n=−∞+∞x[n] hZOH(t−nT))=T ∑n=−∞+∞x[n] 1Trect(t−nT−T2T)=∑n=−∞+∞x[n] rect(t−nT−T2T)
The DAC output xDAC(t), as the output of an LTI system with impulse response hZOH(t) agrees with the piecewise constant construction above. And the input to this LTI system is the sampled signal xs(t) judiciously scaled so that the baseband image of xs(t) is exactly the same as the spectrum of the original signal being sampled x(t). That is
X(j2πf)=Xs(j2πf)for−fs2<f<+fs2
The original signal spectrum is the same as the sampled spectrum, but with all images, that had appeared due to sampling, discarded.
The transfer function of this LTI system, which we call the Zero-order hold (ZOH), is the Laplace Transform of the impulse response:
HZOH(s)=L{hZOH(t)}≜∫−∞+∞hZOH(t) e−st dt=∫−∞+∞1Trect(t−T2T) e−st dt=∫0T1T e−st dt=1T1−se−st∣∣∣T0=1−e−sTsT
The frequency response is obtained by substituting j2πf→s
HZOH(j2πf)=1−e−j2πfTj2πfT=e−jπfTejπfT−e−jπfTj2πfT=e−jπfTsin(πfT)πfT=e−jπfTsinc(fT)=e−jπfTsinc(ffs)
This indicates a linear phase filter with constant delay of one-half sample period, T2, and with gain that decreases as frequency f increases. This is a mild low-pass filter effect. At DC, f=0, the gain is 0 dB and at Nyquist, f=fs2 the gain is -3.9224 dB. So the baseband image has some of the high frequency components reduced a little.
As with the sampled signal xs(t), there are images in sampled signal xDAC(t) at integer multiples of the sampling frequency, but those images are significantly reduced in amplitude (compared to the baseband image) because |HZOH(j2πf)| passes through zero when f=k⋅fs for integer k that is not 0, which is right in the middle of those images.
Concluding:
The Zero-order hold (ZOH) is a linear time-invariant model of the signal reconstruction done by a practical Digital-to-Analog converter (DAC) that holds the output constant at the sample value, x[n], until updated by the next sample x[n+1].
Contrary to the common misconception, the ZOH has nothing to do with the sample-and-hold circuit (S/H) one might find preceding an Analog-to-Digital converter (ADC). As long as the DAC holds the output to a constant value over each sampling period, it doesn't matter if the ADC has a S/H or not, the ZOH effect remains. If the DAC outputs something other than the piecewise-constant output (such as a sequence of narrow pulses intended to approximate dirac impulses) depicted above as xDAC(t), then the ZOH effect is not present (something else is, instead) whether there is a S/H circuit preceding the ADC or not.
The net transfer function of the ZOH is HZOH(s)=1−e−sTsT
and the net frequency response of the ZOH is HZOH(j2πf)=e−jπfTsinc(fT)
Many textbooks leave out the T factor in the denominator of the transfer function and that is a mistake.
The ZOH reduces the images of the sampled signal xs(t) significantly, but does not eliminate them. To eliminate the images, one needs a good low-pass filter as before. Brickwall LPFs are an idealization. A practical LPF may also attenuate the baseband image (that we want to keep) at high frequencies, and that attenuation must be accounted for as with the attenuation that results from the ZOH (which is less than 3.9224 dB attenuation). The ZOH also delays the signal by one-half sample period, which may have to be taken in consideration (along with the delay of the anti-imaging LPF), particularly if the ZOH is in a feedback loop.