Digital Wave Systems Lab banner image

Cookie policy

Digital Signal Processing and Embedded Systems

Plus supporting technologies.
Click here for my teaching page
surface plot of DWT
Search :


Programming Fundamentals Using MATLAB, 2020

DSP Using MATLAB and Wavelets, Second Edition, April 2010
Updated from the first edition, this book includes a new chapter on the Continuous Wavelet Transform, combined information from chapters 4 and 7, plus new questions, projects, and example code.
Where to get it Errata

Introduction to MATLAB & SIMULINK A Project Approach, Third Edition, October 2007
If you want to learn about MATLAB, this is the book for you! It has many in-depth projects.
Where to get it Errata

DSP Using MATLAB and Wavelets, September 2006
I taught DSP to computer science students for a number of years, but I was not happy with the available textbooks. So I wrote my own. This book is the product of over five years of experimentation, notes, and explaining DSP concepts to students who do not have backgrounds in the topic.
(No longer in print.) Errata

Having trouble with the compress_test program? Look here for a solution.

The Calq Project

What is calq?

Click here for the latest version.

Resources for Graduate students

Click here for more information about the lab / my interests.

Equipment check out form for CS 400 hardware.

Graduate students: here is the registration form that you will need to complete and turn in.

Sean put together a thesis template to use (with recent changes from GSU).
Evelyn put together a dissertation template with the most-recent changes for GSU.

Here is a list of references for the Discrete Wavelet Transform (DWT)

Here are my publications (through 2006) as a Latex .bib file.

Follow this link to the department webpage.

Here's an example MATLAB file.

LaTeX Resources

Are you interested in writing a LaTeX document, but do not know where to begin? Follow this link to a latex example.

Here is an example that contains LaTeX math in a webpage.

Current and Recent Research

Interesting Images and video

Computing an Inverter function with Mentos and Diet Coke

Occasionally, plotting data or making an image turns out differently than expected, especially with a mistake such as plotting complex numbers instead of their absolute values. Sometimes the results look interesting, almost artistic. Here are a few of my favorites, with fanciful titles.

plot of cosine and sine functions
This is a plot of arrays of cosine and sine data. It was supposed to be an image, not a plot.

dragon with bad opacity values
This is a dragon with automatically (and incorrectly) generated alpha (opacity) values

complex data plot that
looks like circles within circles
spirals - a plot of complex data without finding the abs() first

H(z) plot that looks like sand on 
a beach
sandy beach - a H(z) plot near a pole that looks like sand on a beach
a colorful transfer plane that resembles a sunrise a colorful transfer plane that resembles a sunset
Sunrise and sunset - a couple of colorful plots of a transfer function, area around a pole (left), and area around a zero with a nearby pole (right)

squares of several colors arranged like
a staircase from left to right
rainbow staircase - a plot of a transfer function near a zero, but the column index is never reset to 1 like it should have been.

white background image with colored lines criss-crossing in such a way as the top middle is lower than the top left or right, 
and the bottom middle is higher than the bottom left or right
Finger trap (plot of two channels of an audible tone, in the wrong dimensions)

red with blue dots
Club tie (plot of x.' * y, where x = cos(theta(t)) and y = -sin(theta(t)))

shape like a football with solid rainbow colors shape like a football with a mesh of rainbow colors
shape like a football with a sparser mesh of rainbow colors shape like a football with sparse grid of rainbow colors
Deteriorating color footballs (other plots of x.' * y, where x = cos(theta(t)) and y = -sin(theta(t)))

interesting pattern small
Hippie belt

interesting pattern #2 small
Continuous wavelet sunrise

interesting pattern #3 small
Salmon swimming upstream

interesting pattern #4 small
The valley of 8-bit graphics

What happens when we plot a matrix of CWT values all at once? We get the following "filters". artistic filter LPF artistic filter ILPF
Low pass and inverse low pass along the top.

artistic filter HPF artistic filter IHPF
High pass and inverse High pass along the bottom.

the bat
The bat

zebra mountain

white background image with several colors making overlapping crosses in the middle
Turning off the TV (plot of stretched Haar wavelets)

An H pattern, like the goalposts seen on high-school sports fields, repeated again and again.
Goalposts (plot of two, related signals: a target temperature, and a measured temperature. I used plot(data1, data2); when it should have been plot(data1); plot(data2); )

Like a prism from triangles, bending line segments
triangle prism. I included a debug feature in a program, and it made this. It shows two triangles, where one is rotated in 3D space from the other one. The points along the edges are connected to see where each point in one maps to the other.

Some errors/warnings/problems that I've encountered, and how to fix them

See this link if you are having trouble installing xv on a Mac.

Getting an error like "error: variable or field `printme' declared void", or maybe "error: `string' was not declared in this scope"? How to fix the "string not declared in this scope" error, that claims to be a "declared void" error.

Getting an error like "error: ‘strcpy’ was not declared in this scope"? How to fix the "strcpy not declared in this scope" compiler error.

Getting a "malformed header from script. Bad header" when trying to make a cgi program (using csh)? Here's what I did to fix it.

Having trouble with a "backward_warning.h" warning when compiling a C++ file? Here is how to fix this.

Having trouble with a "X Error of failed request: BadAccess" error when trying to run an Xwindows program remotely? Here is how to fix that.

Having trouble with a "Can't open display" error when connecting to a remote server? How to get Xwindows to work.

Having an error with LaTeX that says "Missing $ inserted"? I found solution to a weird LaTeX error.

Having an error with LaTeX / TeXShop that says "unknown graphics extension" or that your graphics file cannot be found? There is a default setting to change to fix it.

I had an Exception in thread "AWT-EventQueue-0"... message when I ran MATLAB, but I think I fixed it.

I had warnings working with a C program, including warning: incompatible implicit declaration of built-in function ‘round’. Oddly, the program behaved differently depending on which machine compiled it! The linked document tells how I resolved it.

See the following link to get a Mac to run MATLAB faster if it is running slowly.

MATLAB crashes when drawing figures.

Xcode problem with base SDK

Having a problem setting cookies with Safari? This Safari cookie problem link might have your answer.

I had an error with the "Processing" environment that software updating fixed.

I had an error compiling a C++ program, that compiled fine a few years ago. error: ‘exit’ was not declared in this scope.

A web-page using PHP tells me it has an XML Parsing Error, once for "XML Parsing Error: unclosed token" and again for "XML Parsing Error: no root element found". Read the link for how I fixed it.

Content Security Policy: The page’s settings blocked the loading of a resource at inline

Forbidden (403) error when accessing web content

Disallowed MIME type error

Georgia State University
Department of Computer Science,
College of Arts and Sciences

email address

Valid HTML 4.01 Transitional (Last checked: August 3, 2017)

You are visitor .