Questions or comments concerning this laboratory should be directed to Prof. Charles A. Bouman, School of Electrical and Computer Engineering, Purdue University, West Lafayette IN 47907; (765) 494-0340; bouman@ecn.purdue.edu
It is often desired to analyze and process continuous-time signals using a computer. However, in order to process a continuous-time signal, it must first be digitized. This means that the continuous-time signal must be sampled and quantized, forming a digital signal that can be stored in a computer. Analog systems can be converted to their discrete-time counterparts, and these digital systems then process discrete-time signals to produce discrete-time outputs. The digital output can then be converted back to an analog signal, or reconstructed, through a digital-to-analog converter. Figure 5.1 illustrates an example, containing the three general components described above: a sampling system, a digital signal processor, and a reconstruction system.
When designing such a system, it is essential to understand the effects of the sampling and reconstruction processes. Sampling and reconstruction may lead to different types of distortion, including low-pass filtering, aliasing, and quantization. The system designer must insure that these distortions are below acceptable levels, or are compensated through additional processing.
Sampling is simply the process of measuring the value of a continuous-time signal at certain instants of time. Typically, these measurements are uniformly separated by the sampling period, Ts. If x(t) is the input signal, then the sampled signal, y(n), is as follows:
A critical question is the following: What sampling period, Ts, is required to accurately represent the signal x(t)? To answer this question, we need to look at the frequency domain representations of y(n) and x(t). Since y(n) is a discrete-time signal, we represent its frequency content with the discrete-time Fourier transform (DTFT), . However, x(t) is a continuous-time signal, requiring the use of the continuous-time Fourier transform (CTFT), denoted as X(f). Fortunately, can be written in terms of X(f):
Consistent with the properties of the DTFT, is periodic with a period 2π. It is formed by rescaling the amplitude and frequency of X(f), and then repeating it in frequency every 2π. The critical issue of the relationship in Equation 5.2 is the frequency content of X(f). If X(f) has frequency components that are above , the repetition in frequency will cause these components to overlap with (i.e. add to) the components below . This causes an unrecoverable distortion, known as aliasing, that will prevent a perfect reconstruction of X(f). We will illustrate this later in the lab. The “cutoff frequency” is known as the Nyquist frequency.
To prevent aliasing, most sampling systems first low pass filter the incoming signal to ensure that its frequency content is below the Nyquist frequency. In this case, can be related to X(f) through the k=0 term in Equation 5.2:
Here, it is understood that is periodic with period 2π. Note in this expression that and X(f) are related by a simple scaling of the frequency and magnitude axes. Also note that ω=π in corresponds to the Nyquist frequency, in X(f).
Sometimes after the sampled signal has been digitally processed, it must then converted back to an analog signal. Theoretically, this can be done by converting the discrete-time signal to a sequence of continuous-time impulses that are weighted by the sample values. If this continuous-time “impulse train” is filtered with an ideal low pass filter, with a cutoff frequency equal to the Nyquist frequency, a scaled version of the original low pass filtered signal will result. The spectrum of the reconstructed signal S(f) is given by
In practice, signals are reconstructed using digital-to-analog converters. These devices work by reading the current sample, and generating a corresponding output voltage for a period of Ts seconds. The combined effect of sampling and D/A conversion may be thought of as a single sample-and-hold device. Unfortunately, the sample-and-hold process distorts the frequency spectrum of the reconstructed signal. In this section, we will analyze the effects of using a zeroth–order sample-and-hold in a sampling and reconstruction system. Later in the laboratory, we will see how the distortion introduced by a sample-and-hold process may be reduced through the use of discrete-time interpolation.
Figure 5.2 illustrates a system with a low-pass input filter, a sample-and-hold device, and a low-pass output filter. If there were no sampling, this system would simply be two analog filters in cascade. We know the frequency response for this simpler system. Any differences between this and the frequency response for the entire system is a result of the sampling and reconstruction. Our goal is to compare the two frequency responses using Matlab. For this analysis, we will assume that the filters are Nth order Butterworth filters with a cutoff frequency of fc, and that the sample-and-hold runs at a sampling rate of fs=1/Ts .
We will start the analysis by first examining the ideal case. Consider replacing the sample-and-hold with an ideal impulse generator, and assume that instead of the Butterworth filters we use perfect low-pass filters with a cutoff of fc . After analyzing this case we will modify the results to account for the sample-and-hold and Butterworth filter roll-off.
If an ideal impulse generator is used in place of the sample-and-hold, then the frequency spectrum of the impulse train can be computed by combining the sampling equation in Equation 5.2 with the reconstruction equation in Equation 5.4.
If we assume that fs>2fc, then the infinite sum reduces to one term. In this case, the reconstructed signal is given by
Notice that the reconstructed signal is scaled by the factor .
Of course, the sample-and-hold does not generate perfect impulses. Instead it generates a pulse of width Ts, and magnitude equal to the input sample. Therefore, the new signal out of the sample-and-hold is equivalent to the old signal (an impulse train) convolved with the pulse
Convolution in the time domain is equivalent to multiplication in the frequency domain, so this convolution with p(t) is equivalent to multiplying by the Fourier transform P(f) where
Finally, the magnitude of the frequency response of the N-th order Butterworth filter is given by
We may calculate the complete magnitude response of the sample-and-hold system by combining the effects of the Butterworth filters in Equation 5.9, the ideal sampling system in Equation 5.6, and the sample-and-hold pulse width in Equation 5.8. This yields the final expression
Notice that the expression produces a roll-off in frequency which will attenuate frequencies close to the Nyquist rate. Generally, this roll-off is not desirable.
Do the following using Ts=1 sec, fc=0.45 Hz, and N=20. Use
Matlab to produce the plots (magnitude only), for frequencies in the
range: f = -1:.001:1
.
Compute and plot the magnitude response of the system in Figure 5.2 without the sample-and-hold device.
Compute and plot the magnitude response of the complete system in Figure 5.2.
Comment on the shape of the two magnitude responses. How might the magnitude response of the sample-and-hold affect the design considerations of a high quality audio CD player?
In this lab we will use Simulink to simulate the effects of the sampling and reconstruction processes. Simulink treats all signals as continuous-time signals. This means that “sampled” signals are really just continuous-time signals that contain a series of finite-width pulses. The height of each of these pulses is the amplitude of the input signal at the beginning of the pulse. In other words, both the sampling action and the zero-order-hold reconstruction are done at the same time; the discrete-time signal itself is never generated. This means that the impulse-generator block is really a “pulse-generator”, or zero-order-hold device. Remember that, in Simulink, frequency spectra are computed on continuous-time signals. This is why many aliased components will appear in the spectra.
For help on the following topics select the corresponding links: simulink and printing figures in simulink. For the following section, download the file Lab4Utils.zip.
In this section, we will experiment with the sampling and reconstruction of signals using a pulse generator. This pulse generator is the combination of an ideal impulse generator and a perfect zero-order-hold device.
In order to run the experiment, first download the required Lab4Utilities. Once Matlab is started, type “Lab4”. A set of Simulink blocks and experiments will come up as shown in Figure 5.3.
Before starting this experiment, use the MATLAB command close all
to close all figures other than the Simulink windows.
Double click on the icon named Sampling and Reconstruction
Using An Impulse Generator
to bring up the first experiment as shown in
Figure 5.4.
In this experiment, a sine wave is sampled at a frequency
of 1 Hz; then the
sampled discrete-time signal is used to generate
rectangular impulses of duration 0.3 sec and amplitude
equal to the sample values.
The block named Impulse Generator
carries out both the sampling of the sine wave and its reconstruction
with pulses. A single Scope
is used to plot
both the input and output of the impulse generator,
and a Spectrum Analyzer
is used to plot
the output pulse train and its spectrum.
First, run the simulation with the frequency of input sine wave set to
0.1 Hz (initial setting of the experiment).
Let the simulation run until it terminates to get
an accurate plot of the output frequencies.
Then print the output of Scope
and the
Spectrum Analyzer
. Be sure to label your plots.
Submit the plot of the input/output signals and the plot of the output signal and its frequency spectrum. On the plot of the spectrum of the reconstructed signal, circle the aliases, i.e. the components that do NOT correspond to the input sine wave.
Ideal impulse functions can only be approximated.
In the initial setup, the pulse width is 0.3 sec, which is less
then the sampling period of 1 sec.
Try setting the pulse width to 0.1 sec and run the simulation.
Print the output of the Spectrum Analyzer
.
Submit the plot of the output frequency spectrum for a pulse width of 0.1 sec. Indicate on your plot what has changed and explain why.
Set the pulse width back to 0.3 sec and change the
frequency of the sine wave to 0.8 Hz.
Run the simulation and print the output of the Scope
and the
Spectrum Analyzer
.
Submit the plot of the input/output signals and the plot of the output signal and its frequency spectrum. On the frequency plot, label the frequency peak that corresponds to the lowest frequency (the fundamental component) of the output signal. Explain why the lowest frequency is no longer the same as the frequency of the input sinusoid.
Leave the input frequency at 0.8 Hz.
Now insert a filter right after the impulse generator.
Use a 10th
order Butterworth filter with a
cutoff frequency of 0.5 Hz.
Connect the output of the filter to the Spectrum Analyzer
and
the Mux
.
Run the simulation, and print the output of Scope
and
the Spectrum Analyzer
.
Submit the plot of the input/output signals and the plot of the output signal and its frequency spectrum. Explain why the output signal has the observed frequency spectrum.
For help on printing figures in Simulink select the link.
In this section, we will sample a continuous-time signal using a sample-and-hold and then reconstruct it. We already know that a sample-and-hold followed by a low-pass filter does not result in perfect reconstruction. This is because a sample-and-hold acts like a pulse generator with a pulse duration of one sampling period. This “pulse shape” of the sample-and-hold is what distorts the frequency spectrum (see Section "Sampling and Reconstruction Using a Sample-and-Hold").
To start the second experiment,
double click on the icon named Sampling and Reconstruction
Using A Sample and Hold
.
Figure 5.5 shows the initial setup for this exercise.
It contains 4 Scopes
to monitor the processing done
in the sampling and reconstruction system. It also
contains a Network Analyzer
for measuring the frequency response and the impulse response
of the system.
The Network Analyzer
works by generating a weighted
chirp signal (shown on Scope 1
)
as an input to the system-under-test. The frequency spectrum
of this chirp signal is known.
The analyzer then measures the frequency content of the
output signal (shown on Scope 4
).
The transfer function is formed by computing the ratio of the output
frequency spectrum to the input spectrum.
The inverse Fourier transform of this ratio, which
is the impulse response of the system, is then computed.
In the initial setup, the Sample-and-Hold
and Scope 3
are not connected.
There is no sampling in this system, just two cascaded low-pass filters.
Run the simulation and observe the
signals on the Scopes
. Wait for the simulation
to end.
Submit the figure containing plots of the magnitude response,
the phase response, and the impulse response of this system.
Use the tall mode to obtain a larger printout by typing
orient('tall')
directly before you print.
Double-click the Sample-and-Hold
and set its
Sa