Loading [MathJax]/jax/output/HTML-CSS/jax.js
Wee elcome to the companion site for DSP First.

This site contains the following information for each chapter

  • Demos - QuickTime movies, MATLAB-based demos, sound files, etc. that help reinforce the concepts introduced in the text.
  • Labs - Over 20 MATLAB based laboratory exercises for in-depth study of concepts and ideas introduced in the text.
  • Exercises - Solutions to the exercises in the text.
  • Examples - Examples given in the text.
  • Homework - A large collection of homework problems, most with solutions. This material is very useful as a study aid.
In chapter two, you are introduced to the most basic waveform in signal processing, the cosine wave. The frequency of a cosine wave determines what you will hear in the audio experiments. Then the complex exponential is introduced. The real part of the complex exponential is a cosine, and its imaginary part is the sine function, so a plot of the complex exponential is a rotating vector with a constant length A.

Demos - MATLAB 7

Here's a demo that shows the nearly sinusoidal waveforms produced by two clay whistles.
PhasorRaces began as a speed drill for testing complex addition. Now it includes many other related operations that can be tested in a "drill" scenario: adding sinusoids, z-transforms, etc. A timer starts as soon as the problem is posed, so that a student can try to solve questions quickly and accurately.
Here are four movies showing rotating phasors and how the real part of the phasor traces out a sinusoid versus time. Two of the movies show how rotating phasors of different frequencies interact to produce complicated waveforms such as beat signals.
Sine Drill (sindrill) is a program that tests the users ability to determine basic parameters of a sinusoid. After a plot of a sinusoid is displayed, the user must correctly guess its amplitude, frequency, and phase.
This is an introduction to plotting sinusoids (both sine and cosine waves) from equations. The tutorial also reviews how to write the equation of the sinusoid given a plot of the waveform.
This demo shows how the size and stiffness of a tuning fork affect the tone produced by three different tuning forks.
ZDrill is a program that tests the users ability to calculate the result of simple operations on complex numbers. The program emphasizes the vectorial view of a complex number. The following six operations are supported:
  • Add
  • Subtract
  • Multiply
  • Divide
  • Inverse
  • Conjugate

Demos - LabVIEW 3

Shows how the real part of the rotating phasors traces out a sinusoid versus time.
Tests the users' ability to determine basic parameters of a sinusoid.
Tests users ability to calculate the result of simple operations on complex numbers. The program emphasizes the vectorial view of a complex number. The following six operations are supported:
  • Add
  • Subtract
  • Multiply
  • Divide
  • Inverse
  • Conjugate

Labs - MATLAB 4

In this lab we introduce the fundamentals of Matlab. Matlab is a programming environment that you will find helpful for many of the exercises in this text.
Manipulating sinusoid functions using complex exponentials turns trigonometric problems into simple arithmetic and algebra. In this lab, we first review the complex exponential signal and the phasor addition property needed for adding cosine waves. Then we will use Matlab to make plots of phasor diagrams that show the vector addition needed when combining sinusoids.
Manipulating sinusoid functions using complex exponentials turns trigonometric problems into simple arithmetic and algebra. In this lab, we first review the complex exponential signal and the phasor addition property needed for adding cosine waves. Then we will use Matlab to make plots of phasor diagrams that show the vector addition needed when combining sinusoids. [Files]
The objective of this lab is to learn how the outputs from two spatially separated sensors that receive signals from the same source can be used to estimate the direction to the source of the signal. The key to this processing is phase difference or time difference of arrival (TDOA) at the two receivers. [Files]

Labs - LabVIEW 2

In this lab we introduce the fundamentals of LabVIEW. LabVIEW is a programming environment that you will find helpful for many of the exercises in this text.
Manipulating sinusoid functions using complex exponentials turns trigonometric problems into simple arithmetic and algebra. In this lab, we first review the complex exponential signal and the phasor addition property needed for adding cosine waves. Then we will use Matlab to make plots of phasor diagrams that show the vector addition needed when combining sinusoids. [Files]
In chapter three, the graphical representation of signals via their frequency content is treated. In addition, we will synthesize more complicated sinusoidal waveforms composed of sums of sinusoidal signals, each with a different frequency.

Demos - MATLAB 6

This demo shows the interesting situation that occurs when we have two sinusoidal signals of slightly different frequencies.
This demo gives the mathematical derivation of how instrument sounds can be synthesized using the principles of frequency modulation. The example sounds include a bell and a clarinet.
This MATLAB demo reconstructs a square, triangle, or sawtooth waveform, using a given number of Fourier Series coefficients.
Here are four movies showing rotating phasors and how the real part of the phasor traces out a sinusoid versus time. Two of the movies show how rotating phasors of different frequencies interact to produce complicated waveforms such as beat signals.
This demo illustrates the connection between a variety of sounds and their spectrograms. Among the different sounds are:
This demonstrates the idea of harmonic sinusoids. Five sinusoids with a common fundamental frequency are added together, one at a time.

Demos - LabVIEW 3

Shows the effect of multiplying two sinusoids that are close in frequency.
This demo gives the mathematical derivation of how instrument sounds can be synthesized using the principles of frequency modulation. The example sounds include a bell and a clarinet.
Shows how any periodic signal can be approximated as a sum of sinusoids. It allows you to choose from several input signals and creates an approximati on to the signal you choose. You can select how mnay cosine terms to use in the approximation.

Labs - MATLAB 7

In this lab, we will synthesize more complicated sinusoidal waveforms composed of sums of sinusoidal signals, each with a different frequency. The sounds synthesized will one of several songs. [Files]
In this lab, we will synthesize more complicated sinusoidal waveforms composed of sums of sinusoidal signals, each with a different frequency. The sounds synthesized will sound like a voice. [Files]
The objective of this lab is to introduce more complicated signals that are related to the basic sinusoid. These are signals which implement frequency modulation (FM) and amplitude modulation (AM) are widely used in communication systems such as radio and television, but they also can be used to create interesting sounds that mimic musical instruments.
This lab includes a project on sound synthesis with sinusoids. The sound synthesis will be done with sinusoidal waveforms of the form x(t)=kAkcos(ωkt+ϕk) where the amplitudes can be manipulated to produce a musical illusion. The challenge of the lab is to adjust the amplitudes to improve the subjective quality for listening.
The objective of this lab is to introduce more complicated signals that are related to the basic sinusoid. These are signals which implement frequency modulation (FM) and amplitude modulation (AM) are widely used in communication systems such as radio and television, but they also can be used to create interesting sounds that mimic musical instruments. [Files]
The objective of this lab is to introduce more complicated signals that are related to the basic sinusoid. These signals which implement frequency modulation (FM) and amplitude modulation (AM) are widely used in communication systems such as radio and television. In addition, they can be used to create interesting sounds that mimic musical instruments. The resulting signal can be analyzed to show its time-frequency behavior by using the spectrogram. This lab studies signal synthesis for AM and FM signals, and their time-frequency content as shown in a spectrogram. An underlying objective of the lab is to learn more about the spectrogram.
In this lab, we will synthesize more complicated sinusoidal waveforms composed of sums of sinusoidal signals, each with a different frequency. The sounds synthesized will one of several songs.

Labs - LabVIEW 5

The objective of this lab is to introduce more complicated signals that are related to the basic sinusoid. These are signals which implement frequency modulation (FM) and amplitude modulation (AM) are widely used in communication systems such as radio and television, but they also can be used to create interesting sounds that mimic musical instruments.
In this lab, we will synthesize more complicated sinusoidal waveforms composed of sums of sinusoidal signals, each with a different frequency. The sounds synthesized will one of several songs. [Files]
This lab includes a project on speech synthesis with sinusoids. The speech synthesis will be done with sinusoidal waveforms where each sinusoid will have short duration on the order of the pitch period of the speaker. One objective of this lab is to study how many sinusoids are needed to create a sentence that sounds good. A secondary objective of the lab is the challenge of putting together the short duration sinusoids without introducing artifacts at the transition times. Finally, much of the understanding needed for this lab involves the spectral representation of signals - a topic that underlies this entire course. [Files]
The objective of this lab is to introduce more complicated signals that are related to the basic sinusoid. These are signals which implement frequency modulation (FM) and amplitude modulation (AM) are widely used in communication systems such as radio and television), but they also can be used to create interesting sounds that mimic musical instruments. [Files]
In this lab, we will synthesize more complicated sinusoidal waveforms composed of sums of sinusoidal signals, each with a different frequency. The sounds synthesized will one of several songs.
In chapter four, the conversion of signals between the analog and digital domains is studied. The basic ideas underlying sampling (continuous-to-discrete conversion, or C-to-D) and signal reconstruction (D-to-C conersion) are presented. As a result the important features of analog-to-digital converters, or ADCs, and digital-to analog converters (DACs) can be understood.

Demos - MATLAB 6

Here are some movies that illustrate the concepts of aliasing and folding when a sinusoid is sampled below the Nyquist rate.
By visualizing the spectrogram of a synthesized chirp and listening to the sound, we experience the fact that a D-to-C converter cannot create output signals with frequencies higher than one half of the sampling frequency.
The Continuous-Discrete Sampling Demo (con2dis) is a program that shows the continuous and discrete spectra (and signals) during sampling.
Features:
  • Users can change the input frequency and sampling rate.
  • Frequency axis can be labeled in hertz or radians/sec.
  • Reconstruction through D/A is also shown.
Here are some movies that illustrate the reconstruction process
These movies give an alternate view of the sampling process by using the strobing nature of a camcorder (30 frames per second) to show aliasing of a pattern on a rotating disk.
These movies were generated in MATLAB to show the strobe/sampling effect on a rotating disk. With MATLAB the rotation rate can be calibrated exactly, so that forward and backward movement of the spokes on the disk (due to aliasing) can be tracked.

Demos - LabVIEW 1

The Continuous-Discrete Sampling Demo is a program that shows the continuous and discrete spectra (and signals) during sampling.

Labs - MATLAB 2

The objective in this lab is to introduce digital images as a second useful signal type. We will show how the A-to-D sampling and the D-to-A reconstruction processes are carried out for digital images. In particular, we will show a commonly used method of image zooming (reconstruction) that gives poor results a later lab will revisit this issue and do a better job. [Files]
The objective of this lab is to study further the spectral content of signals analyzed via the spectrogram. There are several specific steps that will be considered in this lab:
  1. Synthesize a linear-FM chirp with a Matlab M-file, and display its spectrogram. Choose the chirp parameters so that aliasing will happen.
  2. Synthesize a periodic triangle wave with a Matlab M-file, and display its spectrogram. Relate the harmonic line spectrum to the fundamental period of the triangle wave.
  3. Compare spectrograms using different scales for amplitude: decibels (dB) for amplitude versus linear amplitude.
  4. Examine details of the harmonic lines in the dB spectrogram of the triangle wave.
  5. Spectrogram: make a spectrogram of your voice signal, and relate the harmonic line spectrum to your previous measurement of pitch period.

Labs - LabVIEW 1

The objective in this lab is to introduce digital images as a second useful signal type. We will show how the A-to-D sampling and the D-to-A reconstruction processes are carried out for digital images. In particular, we will show a commonly used method of image zooming (reconstruction) that gives poor results a later lab will revisit this issue and do a better job. [Files]
The class of FIR (finite-impulse-response) filters is introduced. These filters use a running weighted average to form the output signal from the input signal. Convolution is introduced as the general operation for computing the output from the input. The general properties of linearity and time-invariance are presented, because the FIR filter is special case of an LTI system.

Demos - MATLAB 3

The Discrete Convolution Demo (dconvdemo) is a program that helps visualize the process of discrete-time convolution.
Features:
  • Users can choose from a variety of different signals.
  • Signals can be dragged around with the mouse with results displayed in real-time.
  • Tutorial mode lets students hide convolution result until requested.
  • Various plot options enable the tool to be effectively used as a lecture aid in a classroom environment.
This block diagram demo illustrates the property of linearity in FIR filters. Click on any of the blocks, the input or the output for a close-up.
This block diagram demo illustrates the property of time-invariance in FIR filters. Click on any of the blocks, the input or the output for a close-up.

Demos - LabVIEW 1

This program helps visualize the process of discrete-time convolution.

Labs - MATLAB 4

The goal of this lab is to learn how to implement FIR filters in Matlab, and then study the response of FIR filters to various signals, including images and speech. As a result, you should learn how filters can create interesting effects such as blurring and echoes. In addition, we will use FIR filters to study the convolution operation and properties such as linearity and time-invariance. [Files]
The goal of this lab is to learn how to implement FIR filters in Matlab, and then study the response of FIR filters to various signals, including images or speech. [Files]
The goal of this lab is to learn how to implement FIR filters in Matlab, and then study the response of FIR filters to various signals, including images or speech.
This mini project concentrates on the use of dconvdemo a GUI for discrete-time convolution. This demo is exactly the same as the Matlab functions conv() and firfilt() used to implement FIR filters. This demo illustrates an important point about the behavior of a linear, time-invariant (LTI) system. It also provide a convenient way to visualize the output of a LTI system.

Labs - LabVIEW 2

The goal of this lab is to learn how to implement FIR filters in MATLAB, and then study the response of FIR filters to various signals, including images and speech. As a result, you should learn how filters can create interesting effects such as blurring and echoes. In addition, we will use FIR filters to study the convolution operation and properties such as linearity and time-invariance. [Files]
This mini project concentrates on the use of dconvdemo a GUI for discrete-time convolution. This demo is exactly the same as the MATLAB functions conv() and firfilt() used to implement FIR filters. This demo illustrates an important point about the behavior of a linear, time-invariant (LTI) system. It also provide a convenient way to visualize the output of a LTI system.
The frequency response function for FIR filters is introduced. The magnitude and phase versus frequency govern the response of sinusoidal input signals through the filter. Thus frequency-selective filtering is possible, and the running average filter is shown to be a lowpass filter.

Demos - MATLAB 3

LTI FIR filters are used to process images, thus demonstrating that low-pass filtering is blurring, while high-pass filtering will sharpen edges.
DLTIDemo is a program that illustrates the relationship between the input and output of a discrete-time linear time-invariant (LTI) filter when the input is a sinusoidal function. The user is allowed to control the parameters of both the input sinusoid and the digital filter.
A brief introduction to FIR filters and how they can change the sound of speech signals.

Demos - LabVIEW 2

The Dirichlet function Demo lets you look at how changing L changes the Dirichlet function.
Illustrates the sinusoid-in gives sinusoid-out concept.

Labs - MATLAB 4

The goal of this lab is to study the frequency response. For FIR filters this is the response to inputs such as complex exponentials and sinusoids. You can use firfilt(), or conv(), to implement filters and freqz() to obtain the filter’s frequency response. As a result, you should learn how to characterize a filter by knowing how it reacts to different frequency components in the input.
The goal of this lab is to study the response of FIR filters to inputs such as complex exponentials and sinusoids. In the experiments of this lab, you will use firfilt(), or conv(), to implement filters and freqz() to obtain the filter's frequency response. As a result, you should learn how to characterize a filter by knowing how it reacts to different frequency components in the input. This lab also introduces two practical filters: bandpass filters and nulling filters. Bandpass filters can be used to detect and extract information from sinusoidal signals, e.g., tones in a touch-tone telephone dialer. Nulling filters can be used to remove sinusoidal interference, e.g., jamming signals in a radar.
The goal of this lab is to study the sinusoidal response of some simple FIR filters in Matlab. This leads to a study of the frequency response function. In the experiments of this lab, you will use the Matlab GUI called dltidemo to find the frequency response function for FIR filters. [Files]
In this mini-project you will write a simple Matlab program that removes unwanted tones from a wav file. The file SunshineSquare.wav has had some unwanted tones added to it. Your job is to remove the tones so you can hear the message better. [Files]

Labs - LabVIEW 4

The goal of this lab is to study the response of FIR filters to inputs such as complex exponentials and sinusoids. In the experiments of this lab, you will use firfilt(), or conv(), to implement filters and freqz() to obtain the filter's frequency response. As a result, you should learn how to characterize a filter by knowing how it reacts to different frequency components in the input. This lab also introduces two practical filters: bandpass filters and nulling filters. Bandpass filters can be used to detect and extract information from sinusoidal signals, e.g., tones in a touch-tone telephone dialer. Nulling filters can be used to remove sinusoidal interference, e.g., jamming signals in a radar.
This lab introduces a practical application where sinusoidal signals are used to transmit information: a touchtone dialer. Bandpass FIR filters can be used to extract the information encoded in the waveforms. The goal of this lab is to design and implement bandpass FIR filters in MATLAB, and do the decoding automatically. In the experiments of this lab, you will use firfilt(), or conv(), to implement filters and freqz() to obtain the filter's frequency response. As a result, you should learn how to characterize a filter by knowing how it reacts to different frequency components in the input. [Files]
This lab introduces a practical application where we attempt to extract information from sinusoidal signals - in this case, piano notes. Bandpass FIR filters can be used to extract the information encoded in the waveforms. The goal of this lab is to design and implement several bandpass FIR filters in MATLAB, and use the filtered outputs to determine automatically which note is being played. However, since there are 88 keys on the piano, we will only require the system to figure out which octave the note is in, not the exact note. In the experiments of this lab, you will use firfilt(), or conv(), to implement filters and freqz() to obtain the filter's frequency response. As a result, you should learn how to characterize a filter by knowing how it reacts to different frequency components in the input. [Files]
In this mini-project you will Write a simple LabVIEW VI that removes unwanted tones from a wav file. The file SunshineSquare.wav has had some unwanted tones added to it. Your job is to remove the tones so you can hear the message better. [Files]
The discrete-time Fourier transform (DTFT) is introduced with transform pairs and properties. The frequency response is now understood to be the DTFT of the impulse response. Ideal filters are presented along with the window method of FIR filter design.

Demos - MATLAB 2

A table of DTFT pairs is usually given as a list of formulas for the signal x[n] and its DTFT X(ejˆω). These formulas can be visualized as plots, and this demo focuses on the ability to recognize signals and transforms in a graphical form.
The Filter Design Demo is a program that designs simple FIR (and IIR) digital filters, along with tutorial visualizations of the filter design process.

Features:

  • FIR Design with many different window types
  • Numerous plot options: magnitude/phase response, pole-zero diagram, and impulse response
  • IIR Design of Butterworth filters
  • Parks-McClellan FIR Design showing the iterations of the Remez Exchange method

Labs - MATLAB 2

This lab introduces a practical application where sinusoidal signals are used to transmit information: a touch-tone dialer. Bandpass FIR filters can be used to extract the information encoded in the waveforms. The goal of this lab is to design and implement bandpass FIR filters in M ATLAB , and to do the decoding automatically. In the experiments of this lab, you will use firfilt(), or conv(), to implement filters and freqz() to obtain the filter’s frequency response. 1 As a result, you should learn how to characterize a filter by knowing how it reacts to different frequency components in the input. [Files]
The goal of this lab is to learn some methods for designing practical FIR filters in Matlab. These filters will have a finite number of coefficients, and a frequency response that approximates an ideal frequency response shape.
This chapter builds on the definition and discussion of the DTFT. The objective here is to define a numerical Fourier transform called the discrete Fourier transform (or DFT) that results from taking frequency samples of the DTFT. The spectrogram which provides a time-frequency representation of a signal is discussed in detail.

Demos - MATLAB 1

specgramdemo provides interactive control of the important parameters that define a spectrogram.

Features:

  • Change window length and window type
  • Change window overlap
  • Change FFT length (zero padding)
  • Show 1-D slice of spectrogram
  • Plot options: zooming, 30, 40, 50 and 60 dB magnitude ranges, four color maps
  • Three signal types: Sum of sinusoids, Linear chirp, Recorded signal, e.g., speech

Labs - MATLAB 2

The objective of this lab is to introduce more complicated signals that are related to the basic sinusoid. These signals which implement frequency modulation (FM) and amplitude modulation (AM) are widely used in communication systems such as radio and television. In addition, they can be used to create interesting sounds that mimic musical instruments. The resulting signal can be analyzed to show its time-frequency behavior by using the spectrogram. This lab studies signal synthesis for AM and FM signals, and their time-frequency content as shown in a spectrogram. An underlying objective of the lab is to learn more about the spectrogram.
The objective of this lab is to study further the spectral content of signals analyzed via the spectrogram. There are several specific steps that will be considered in this lab:
  1. Synthesize a linear-FM chirp with a Matlab M-file, and display its spectrogram. Choose the chirp parameters so that aliasing will happen.
  2. Synthesize a periodic triangle wave with a Matlab M-file, and display its spectrogram. Relate the harmonic line spectrum to the fundamental period of the triangle wave.
  3. Compare spectrograms using different scales for amplitude: decibels (dB) for amplitude versus linear amplitude.
  4. Examine details of the harmonic lines in the dB spectrogram of the triangle wave.
  5. Spectrogram: make a spectrogram of your voice signal, and relate the harmonic line spectrum to your previous measurement of pitch period.
The z-Transform is introduced for FIR filters. This algebraic method introduces polynomials into the analysis of linear systems. The zeros the system function are related to the frequency response of the FIR filter.

Demos - MATLAB 3

PeZ (pezdemo) is a MATLAB tool for pole/zero manipulation. Poles and zeros can be placed anywhere on a map of the z-plane. The corresponding time domain (n) and frequency domain (ˆω) plots will be displayed. When a zero pair (or pole pair) is dragged, the impulse response and frequency response plots will be updated in real time.
The connection between the Z-transform domain of poles and zeros and the time domain, and also the frequency domain is illustrated with several movies where individual zeros or zero pairs are moved continuously.
A demo that illustrates the connection between the complex z-plane and the frequency response of a system. The frequency response is obtained by evaluating H(z) on the unit circle in the complex z-plane.

Labs - MATLAB 2

This lab introduces a practical application where sinusoidal signals are used to transmit information: a touch-tone dialer. Bandpass FIR filters can be used to extract the information encoded in the waveforms. The goal of this lab is to design and implement bandpass FIR filters in Matlab, and to do the decoding automatically. In the experiments of this lab, you will use firfilt(), or conv(), to implement filters and freqz() to obtain the filter’s frequency response. As a result, you should learn how to characterize a filter by knowing how it reacts to different frequency components in the input. [Files]
This lab introduces a practical application where we attempt to extract information from sinusoidal signals - in this case, piano notes. Bandpass FIR filters can be used to extract the information encoded in the waveforms. The goal of this lab is to design and implement several bandpass FIR filters in Matlab, and use the filtered outputs to determine automatically which note is being played. However, since there are 88 keys on the piano, we will only require the system to figure out which octave the note is in, not the exact note. In the experiments of this lab, you will use firfilt(), or conv(), to implement filters and freqz() to obtain the filter's frequency response. As a result, you should learn how to characterize a filter by knowing how it reacts to different frequency components in the input. [Files]
The class of feedback filters is introduced. These filters have infinite-length impulse responses, so they are usually referred to as infinite-impulse-response (IIR) filters. Their z-transforms contain both poles and zeros, so their frequency reponse can have very sharp peaks, as well as nulls. The partial fraction method for inverting the z-transform is described.

Demos - MATLAB 5

The Filter Design Demo is a program that designs simple IIR (and FIR) digital filters, along with tutorial visualizations of the filter design process.

Features:

  • IIR Design of Butterworth filters
  • Numerous plot options: magnitude/phase response, pole-zero diagram, and impulse response
  • FIR Design with many different window types
  • Parks-McClellan FIR Design showing the iterations of the Remez Exchange method
A short tutorial on first- and second-order IIR (infinite-length impulse response) filters. This demo shows plots in the three domains for a variety of IIR filters with different filter coefficients.
PeZ (pezdemo) is a MATLAB tool for pole/zero manipulation. Poles and zeros can be placed anywhere on a map of the z-plane. The corresponding time domain (n) and frequency domain (ˆω) plots will be displayed. When a zero pair (or pole pair) is dragged, the impulse response and frequency response plots will be updated in real time.
The connection between the z-transform domain of poles and zeros and the time domain, and also the frequency domain is illustrated with several movies where individual poles, or zeros or pole pairs of IIR filters are moved continuously.
A demo that illustrates the connection between the complex z-plane and the frequency response of a system. The frequency response is obtained by evaluating H(z) on the unit circle in the complex z-plane.

Labs - MATLAB 6

The objective for this lab is to build an intuitive understanding of the relationship between the location of poles and zeros in the z-domain, the impulse response h[n] in the n-domain, and the frequency response H(ejˆω) (the ˆω-domain). A graphical user interface (GUI) called PeZ was written in MATLAB for doing interactive explorations of the three domains.
The goal of this lab is to explore the connection between the time domain (n), the frequency domain (ˆω), and the z-transform domain, using the GUI PeZ in Matlab.
  1. Placing Zeros: When placed on the unit circle, zeros of the numerator B(z) will force the frequency response to be zero which can then be used to null out sinusoids at one frequency.
  2. Placing Poles: When placed near the unit circle (but inside), roots of denominator A(z) will create peaks in the frequency response which can be used to form BPFs.
  3. Designing IIR Notch Filters: requires conjugate zeros on the unit circle (UC) with a poles at the same angle, just inside the UC. The frequency response of the notch is much sharper than a nulling filter which is an FIR filter formed only from the conjugate zeros on the UC.
In this mini-project you will experiment with PeZ to learn the connection between pole-zero placement and frequency response. Given this information you will redo the Tone Removal Mini-Project using an IIR.
For this mini project you will write a simple function that listens to a tone and identifies what note it is. [Files]
For this mini project you will write a simple function that listens to a wav file of a simple song and identifies the notes being played. The wav files have some simple songs on which you can practice. [Files]
You have gotten to the point in your studies that you can understand DSP papers that appear in IEEE publications. The purpose of this project is to read one such paper and reproduce some of its results.

Labs - LabVIEW 7

The objective for this lab is to build an intuitive understanding of the relationship between the location of poles and zeros in the z-domain, the impulse response h[n] in the n-domain, and the frequency response H(ejˆω) (the ˆω-domain). A graphical user interface (GUI) called PeZ was written in MATLAB for doing interactive explorations of the three domains.
In this mini-project you will experiment with PeZ to learn the connection between pole-zero placement and frequency response. Given this information you will redo the Tone Removal Mini-Project using an IIR. [Files]
For this mini project you will write a simple function that listens to a tone and identifies what note it is. [Files]
For this mini project you will write a simple function that listens to a wav file of a simple song and identifies the notes being played. The wav files have some simple songs on which you can practice. [Files]
You have gotten to the point in your studies that you can understand DSP papers that appear in IEEE publications. The purpose of this project is to read one such paper and reproduce some of its results.
The goal of this mini-project is to help you understand a simple modem, the FSK modem, referred to by the International Telecommunications Union (ITU) as V.21.
The goal of this mini-project is to build a simple modem receiver. This a follow on for the previous mini-project.
In Appendix A, you are introduced to the basic manipulations of complex numbers. The algebraic rules for combining complex numbers are reviewed, and then a geometric viewpoint is taken to explain various operations by drawing vector diagrams.

Demos - MATLAB 3

Examples of how complex numbers and complex exponentials can be handled by MATLAB.
PhasorRaces began as a speed drill for testing complex addition. Now it includes many other related operations that can be tested in a "drill" scenario: adding sinusoids, z-transforms, etc. A timer starts as soon as the problem is posed, so that a student can try to solve questions quickly and accurately.
ZDrill is a program that tests the users ability to calculate the result of simple operations on complex numbers. The program emphasizes the vectorial view of a complex number. The following six operations are supported:
  • Add
  • Subtract
  • Multiply
  • Divide
  • Inverse
  • Conjugate
This appendix provides an overview of MATLAB and some of its capabilities for signal processing specific operations.
In this appendix, we describe the mathematical theory of Fourier series, including Parseval's Theorem. Examples are given for rectified sinusoids and pulse waves.

Demos - MATLAB 1

This MATLAB demo reconstructs a square, triangle, or sawtooth waveform, using a given number of Fourier Series coefficients.
This appendix contains a list of the laboratories that are available on the Companion Website.