Personal tools

Single Side Band

Document Actions
  • Content View
  • Bookmarks
  • CourseFeed


The objective of this lab is to deepen students understanding of single sideband modulation and demodulation and the Hilbert transform by simulation.

Hilbert Transform

  1. The Hilbert transform is a filter with frequency response given by
  2. The corresponding impulse response is

  3. The preceeding formulas are for continuous-time Hilbert transformers.  The discrete time Hilbert transform has a frequency response given by
  4. The corresponding impulse response is

  5. Unfortunately this impulse response is noncausal and infinite in duration.  A realizable Hilbert transformer can be obtained by truncating the impulse response and then inserting a delay to make it causal.  This leads to a filter that only approximates the response of a Hilbert transformer.  (A windowing function may also be applied to reduce spectral leakage.)  The following is a bit of Matlab code that leads to a discrete-time Hilbert transformer.
  6. % Windowed Hilbert transformer design.
    N = 15;
    h = (2/pi)*sin(pi*[-N:N]/2).^2./[-N:-1,1,1:N];

    Below are three plots.  The first is a plot of the impulse response of the Hilbert Transformer (time-domain).  The next two plots are in the frequency domain.  There is a magnitude plot and a phase plot.  Do these match the expected frequency response of the discrete-time Hilbert Transformer above?

    If you try to reproduce the spectrum plots using the FFT function in Matlab, the resulting phase plot will probably look like a  straight line sloping down.  The downward slope is due to a linear phase term introduced in the frequency domain because of the time delay of the impulse response in the time domain.  Don't worry if you can't reporduce these plots exactly.  You have not learned how to properly use the FFT function yet.

  7. An easier way to design a Hilbert transformer is using Matlab's remez function.
  8. % Remez Hilbert transformer design.
    L = 31;
    h = remez(L-1,[.1 .9],[1 1],'Hilbert');

  9. To test the Hilbert transformer, download the file x.mat into your working directory and load it into the Matlab workspace by typing the following at the Matlab prompt.
  10. load x

  11. This will load a variable called x into the Matlab workspace.  Filter x with your Hilbert transformer by typing the following at the Matlab prompt.
  12. xp=filter(h,1,x);

  13. By looking at the plots from above, you can see that the hilbert transformer has a delay of 15 taps.  In order to keep x and xp synchronized, we need to delay x by the same amount.  An easy way to do this is using a delay filter as follows.
  14. L = 31;
    delayfilter = zeros(L,1).';
    delayfilter(16) = 1;
    x = filter(delayfilter,1,x);

  15. Next we want to plot the real and imaginary parts of the spectrum of xp .  To do this, modify the spectrum function that you wrote for Lab 1 to plot the real and imaginary parts of the spectrum instead of just the magnitude.  Here's some example code that you may want to try:   sigspec.m .   (Note: This is a new and improved version of the sigspec.m function from Lab 1.)
  16. Using your new and improved spectrum function, plot the real and imaginary parts of the spectra of x and xp .  Write a description of the two spectra.  Do they appear as you expected?  Does the spectra of xp look like the spectra of x multiplied by the response of the Hilbert Transformer?  Is the real part an even function and the imaginary part an odd function?  Here's what my plots look like.

  17. Plot the magnitude (linear not dB scale) and phase of the spectra of x+j*xp .  Compare it with the magnitude (linear not dB scale) spectra of  x by itself.  What are the differences?  The signal x+j*xp should be zero for negative frequencies and look like  x at positive frequencies.  Is this the case?  What degredations do you see?  Here's what my plots look like.  The red line is the spectrum of x and the blue line is the spectrum of x+j*xp.

  18. Also plot the magnitude and phase spectrum of the Hilbert transformer h .  Write a description of this spectra.  Is the actual spectrum close to the expected spectrum.  What was the effect of truncating the infinte length impulse response and inserting a delay to make it causal?
  19. Turn in to the Lab TA: (1) the spectrum plots of x and xp , (2) the spectrum plots of the Hilbert transformer, (3) the spectral plots of x+j*xp and x , (4) all of the written descriptions.  Clearly lable plots.
  20. Now that we have a little experience with Hilbert transforms, we are ready to move on two single sideband modulation.

Single Sideband Modulation

  1. A basic single sideband (without carrier) modulator is shown below. The block labeled H is a Hilbert transformer.  The block labeled D is a pure delay block.  The signal x(t) experiences a delay while passing through the Hilbert Transformer.  A corresponding delay should also be inserted in the upper branch.  If you are using the L=31 tap Hilbert Transformer, then use a delay of 15 samples.
  2. Build a Simulink model of this diagram.  For the input, use the same signal that you used for testing the Hilbert transformer above.  Type "load x"  in Matlab to refresh the x variable.  For the carrier frequency use 0.25 and a sample time of 1.  In the Simulation Parameters dialog box, use Start Time and Stop Time of 0 and 65535.  My model looks like this.  (Note that this diagram contains the demodulator too which will be covered later in this lab.  For now, put a Signal To Workspace block in place of all of the demodulator stuff.) I pulled all of the blocks out of the DSP Block Library except the multipliers and adders which I got out of the Math Block Library and the filters which I got out of the Discrete Block Library.

  3. What is the highest frequency in x(t)?
  4. What is the highest frequency in any of the signals appearing in the single sideband modulator figure above?
  5. What is the lowest possible sample rate that will avoid aliasing at all points in the modulation process?
  6. In your Simulink model, insert Signal To Workspace blocks to capture the signals y0(t), y1(t) and z(t).  Run the simulation.  (Note:  Load the x variable again before you run the simulation.)
  7. Plot the magnitude (linear not dB scale) and phase of the spectra of the signals y0(t), y1(t) and z(t). Write a description explaining what you see.  Is z(t) a single sideband signal? Which sideband is obtained? Are the spectra of y0(t) and y1(t) as you expected?

Single Sideband Demodulation

  1. A basic synchronous single sideband demodulator is shown below.
  2. Build a Simulink model of this diagram.  Let z(t) be the output of your signle sideband modulator.
  3. Explain how you designed the low pass filter.
  4. Does the recovered signal xr(t) match the original signal x(t)?  What degredations appear in the time or frequency domains and where do you think they come from?
  5. For reference, here are the spectra of the original signal x(t) and the demodulated signal xr(t) that I got when I ran the simulation.

    The blue line is the original signal x(t) and the green line is the recovered signal xr(t).

Copyright 2008, by the Contributing Authors. Cite/attribute Resource . admin. (2006, June 28). Single Side Band. Retrieved January 07, 2011, from Free Online Course Materials — USU OpenCourseWare Web site: This work is licensed under a Creative Commons License Creative Commons License