Educational Matlab GUIs

On this page are Graphical User Interfaces developed by the members of the Center for Signal and Information Processing (CSIP), a part of the School of Electrical and Computer Engineering at the Georgia Institute of Technology.

Individual GUIs can be downloaded from the links to ZIP files given below, or

All of the GUIs are contained in the DSP/SP First toolbox (see installation instructions).

  • For MATLAB 9.3 (R2017b) and earlier versions (15-Feb-2018): spfirst_v172.zip
  • For Octave open-source version the spfirst library has been updated by Joshua Milas from Rochester Institute of Technology.

Most of these GUIs appear in the textbook DSP First (2nd edition), and also in the textbook Signal Processing First,
published by Pearson Education / A Pearson Education Company / Upper Saddle River, New Jersey 07458

Complex Spin Demo
Complex Spin Screenshot

The Complex Spin Demo is a program that illustrates phasors spinning in the complex plane and the resulting real and imaginary parts of the signal, together with the corresponding spectral lines.

MATLAB Command Name:   cspin

Download:   Cspin Demo (Version 1.48)

Requirements:   Matlab R2016a or greater

Tested on:   UNIX, Windows and Macintosh

Last update:   07-Dec-2016


Spectrogram Demo
Spectrogram Demo Screenshot

The Spectrogram Demo is a program that illustrates the spectrogram of a linear chirp, sum of sinusoids, or user recorded audio signal.

MATLAB Command Name:   specgramdemo

Download:   Spectrogram Demo (Version 2.82)

Requirements:   Matlab R2016a or greater

Tested on:   UNIX, Windows and Macintosh

Last update:   23-Jul-2017


Filter Design Demo
Filter Design Demo Screenshot
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:

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

MATLAB Command Name:   filterdesign

Download:   Filter Design Demo (Version 2.85)

Requirements:   Matlab 7.2 or greater

Tested on:   UNIX, Windows and Macintosh

Last update:   17-Apr-2017


PEZ Demo
PEZdemo Screenshot
PEZdemo allows the user to select the poles and zeros of a system and then change those poles and zero dynamically. The z-plane, Fourier domain and time-domain are all updated simultaneously.

MATLAB Command Name:   pezdemo

Download:   PEZdemo (Version 2.9)

Requirements:   Matlab 6.0 or greater

Tested on:   Windows

Last update:   30-Mar-2016


FourierSeries
FourierSeriesDemo Screenshot
FourierSeriesDemo is a GUI that shows Fourier Series synthesis for different number of Fourier coefficients. Different signals can be selected: square wave, sawtooth, triangle and rectified sinusoids.

MATLAB Command Name:   fseriesdemo

Download:   FourierSeriesDemo (Version 1.44)

Requirements:   Matlab 6 or greater

Tested on:   Windows, Linux

Last update:   30-Mar-2016


PhasorRaces
PhasorRaces Screenshot
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.

MATLAB Command Name:   phrace

Download:   PhasorRaces (Version 1.16)

Requirements:   Matlab 6 or greater

Tested on:   Windows

Last update:   30-Mar-2016


SinDrill
SinDrill Screenshot
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.

MATLAB Command Name:   sindrill

Download:   SinDrill (Version 2.14)

Requirements:   Matlab 6 or greater

Tested on:   UNIX, Windows and Macintosh

Last update:   15-Feb-18


ZDrill
ZDrill Screenshot
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

MATLAB Command Name:   zdrill

Download:   ZDrill (Version 2.14)

Requirements:   Matlab 6 or greater

Tested on:   UNIX, Windows and Macintosh

Last update:   15-Feb-2018


CLTI Demo
CLTIDemo Screenshot
CLTI Demo is a program that illustrates the relationship between the input and output of a continuous-time linear time-invariant (LTI) filter when the input is a sinusoidal signal. The user is allowed to control the parameters of both the input sinusoid and the analog LTI filter.

MATLAB Command Name:   cltidemo

Download:   CLTI Demo (Version 2.6)

Requirements:   Matlab 6 or greater

Tested on:   UNIX, Windows and Macintosh

Last update:   15-Feb-2018


DLTI Demo
DLTIDemo Screenshot
DLTI Demo 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 signal. The user is allowed to control the parameters of both the input sinusoid and the digital filter.

MATLAB Command Name:   dltidemo

Download:   DLTI Demo (Version 2.77)

Requirements:   Matlab 6 or greater

Tested on:   UNIX, Windows and Macintosh

Last update:   15-Feb-2018


Continuous-Discrete Sampling Demo
Continuous-Discrete Sampling Demo Screenshot
The Continuous-Discrete Sampling Demo 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.

MATLAB Command Name:   con2dis

Download:   Continuous-Discrete Sampling Demo (Version 2.31)

Requirements:   Matlab 6 or greater (not yet tested on Macintosh)

Tested on:   UNIX, Windows

Last update:   15-Feb-2018


Discrete Convolution Demo
Discrete Convolution Demo Screenshot
The Discrete Convolution Demo 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.

MATLAB Command Name:   dconvdemo

Download:   Discrete Convolution Demo (Version 3.18)

Requirements:   Matlab 6 or greater

Tested on:   UNIX, Windows and Macintosh

Last update:   7-Mar-2017


Continuous Convolution Demo
Continuous Convolution Demo Screenshot
The Continuous Convolution Demo is a program that helps visualize the process of continuous-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.

MATLAB Command Name:   cconvdemo

Download:   Continuous Convolution Demo (Version 2.18)

Requirements:   Matlab 6 or greater

Tested on:   UNIX, Windows and Macintosh

Last update:   30-Oct-2017