Signals and Systems

From Class Wiki
Jump to navigation Jump to search


Overview of Signals and Systems

Individual Subjects

Some Useful Links to Suppliment or Substitute for a Textbook

Books on Signal Processing

Fourier Series

Dirac Delta Function and Convolution

Multi-rate Filtering

Multirate Filters Introduction

Slides from a Presentation on Polyphase Decimation and Interpolation by Mark Fowler

FIR Filters

  • Fast Convolution Based on the FFT This reference shows how end effects are dealt with. To use the FFT for convolution, you need to do it in blocks, which leads to end effects, and more latency, but if your blocks are big enough, it speeds up the convolution.

Adaptive FIR Filters

Your professor's cheesy video to explain Adaptive FIR Filters

Introduction to Adaptive Filters, Simon Haykin

Simon Haykin's book chapter

Adaptive LMS in an FPGA

Scott Douglas' chapter on Adaptive Filters has some interesting applications, among them linear predictive coding (LPC) used in speech codecs.

Adaptive Filters In the Frequency Domain

Adaptive Filter Echo Cancellation

Adaptive Filters and Applications (Mathworks)

More Applications of Adaptive Filters

Constant Modulus Algorythm

Using the CMA on antenna arrays

Math Editors for Your Notebook

You can make your notebook here on the wiki, but there are other options, including things like writing you notes on paper and using photo processing software to make notes like the old class notes. You can also make screencasts or videos for your notebook.

  • JupyterLab: This is my current favorite for making notebooks with a "literate programming" approach. It allows you to mix prose and other things with your equations in LaTex or python or octave code that illustrate the concepts.
  • LaTex: I suggest opening opening the following sample file with any of the LaTex editors below. LaTex is a document processing language that you compile like C or other compiled languages. It does produce the nicest looking documents, but it takes a bit of expertise to do that. If you are bound for graduate school, it is well worth learning.
    • TexStudio works with Windows, Linux, and OS X, has a previewer, menus to help newbies, and is about the most featured LaTex editor I have tried.
    • Texmaker is a LaTex editor with preview and a bunch of menus that help to figure out what you need to type to get the effects you want. It works on Linux, Windows, and OS X.
    • Gummi is a LaTex editor with preview for Linux and Windows.
    • Online LaTeX Editor especially for equations. This is useful for other systems that take LaTex input when you don't know LaTex yet.
  • Lurch is a math editor for your desktop that will check your logic. For this class it is primarily useful as an easy editor for mathematical subjects.
  • wxMaxima is a document based GUI for the Maxima computer algebra system. You can do quite a bit of algebra and calculus in wxMaxima. The notebooks it produces look good, but not as good as LaTex documents, however, you can easily change them, and it will redo all the math with the changes. I found a bug in the version that come with Ubuntu 15.04 where it segfaults when you type in a parenthesis to one of the helpful windows that come up when using the menus. I solved it by using the nightly builds from Peter Pall. As with most of the tools here, it will integrate in with LaTex.
  • SageMath is a computer algebra system similar to wxMaxima that uses python, maxima and other tools to make a very nice and powerful tool for making a notebook. In order to make it work with the octave kernel, I had to use the latest version, which I obtained at the Ubuntu Sage wiki where I the instructions to install the upstream binary like this:
sudo apt-add-repository -y ppa:aims/sagemath
sudo apt-get update
sudo apt-get install sagemath-upstream-binary
  • SageMath on the cloud uses sage (a computer algebra system) and latex to make your document. It has a nice preview that shows you what you get with your LaTex code. It also has a Linux terminal that you can use for octave and other things. You can create all kinds of files. It works well with the online LaTex editor below.
  • PTC Mathcad works for Windows and costs something, but is available on the campus network.
  • LibreOffice is an open source word processor.
  • Microsoft Word is a fancy word processor that I think you can get for free or minimal cost when you are a WWU student.
  • Maple is a commercial symbolic mathematics package similar to maxima. It will do notebooks. It is available on the school network.
  • Mathematica is another commercial symbolic software package. I don't think it is available on the school network.
  • Xcas is my current favorite open source alternative to Maple or Mathematica. Xcas uses syntax compatible with the TI-89, or Maple, or muPad, or the TI NSpire CAS or Voyager 200. It runs on Windows, Linux, or OS X and is also available on Android for your phone, and I use it that way sometimes too. It is based on Giac which was chosen for the recent fancy HP CAS calculator, and for Geogebra.

Course Pages

2005-2006 Assignments

2006-2007 Assignments

2008-2009 Assignments

2009-2010 Assignments

Class notes for Signals & Systems


Octave Tutorials and Scripts for Learning

Octave Scripts for Learning

An octave/MATLAB u(t) function example

An octave/MATLAB RC circuit example with Fourier series that shows how to use the ideas of the linear time invariant systems game and phasors to find the output due to a square wave input

An octave/MATLAB script to show the relation:

An octave/MATLAB script to show the Fourier series of a string of impulse functions is given by:

This octave/MATLAB script shows the effect of not sampling fast enough. You can also see how the bandpass sampling theorem works from the plot this produces if you are clever.

A octave/MATLAB script to show how Nyquist's formula for in terms of sample points

An FIR Filter Example Code for Octave/MATLAB

Demonstration of an Oversampling FIR Filter

FIR Filter Design and Testing Using the DFT

Leakage Example Octave Script

Interpolation using the DFT Example Script

An example showing how convolution is just a dot product or matrix multiply

Tuner Upper Removal Demonstration

Airplane Noise Removal Demonstration

Octave/MATLAB Tutorials

A nice list of MATLAB tutorials from Duke University

Online Octave This works in your browser.

Installing Octave on a Mac (Chris Lau)

Octave and Scilab on a Mac (Ben Henry)

Installing Octave (with the GUI) from source on Ubuntu

ASN2 - Octave Tutorial (Jodi S. Hodge)

Python Examples

FFT Example

Final Project (2011)

Matlab/Octave deMorse.m

morse.m This is the one from mathworks

Table of Fourier Transform Properties

Homework Assignments

Please put your name next to the assignment, linking it to your submission

  • HW #4 - Given a linear time-invariant system where produces an output , find the output due to any function (Chris Lau)
  • HW #5: (Chris Lau)
    • Part 1 - Find and relate it to the Laplace Transform. Derive the Inverse Laplace Transform of this from the inverse Fourier Transform.
    • Part 2 -
  • HW #6 - Pick a property of the Fourier Transform & present it on the Wiki. Make a table with all your properties. Interpret your property. (Ben Henry)(Chris Lau)(Victor Shepherd)
  • HW #7 - Finish the practice tests
  • HW #8 - Make a page about interpolating FIR filters. Note how many multiply/add operations.(Jodi S. Hodge)(Chris Lau)(Victor Shepherd)
  • HW #9 - Add to #8 writeup how to do a decimating filter and figure out how many multiply & adds are needed for a $$ n/2 $$ decimating low pass filter.(Jodi S. Hodge)(Chris Lau)(Victor Shepherd)
  • HW #10 - Use Octave (or Mathlab or Silab) to plot the frequency response of low pass filters with cut-off frequencies of 1/32T, 1/8T, and 1/4T and compare how many coefficients are needed with an eye to answer the question "Is it less calculation to decimate and then filter, or better to put the filter in the pre-decimation filter?" (Jodi S. Hodge)(Victor Shepherd)
  • HW #11 - Is our method the same as Mark Fowler's? See

Wiki. Same # multiply and adds? See Notes 11/3/10. (Jodi S. Hodge)(Victor Shepherd)

  • HW #12 - Experiment with a variety of signals having a 3Khz bandwidth to determine the resolution you can get when doing a cross correlation . You can generate the signals randomly and filter them to obtain the band-limited signals. (Jodi S. Hodge)
  • HW #13 - Derive the following relations:
    • a)
    • b)
    • c) (Victor Shepherd)

People Involved with this Wiki

2013-2014 Contributors

Brian Lenz

Brian Clark

Daniel Liwag

Alex Haesche

2012-2013 Contributors

Brian Haddad

Kurt Hildebrand

Denver Lodge

Michael von Pohle

2011-2012 Contributors

Matthew Blaire

Cody Lorenz

2010-2011 Contributors

Ben Henry

Christopher Garrison Lau I

Chris Wills

Jodi S. Hodge

Luke Chilson

Victor Shepherd

2009-2010 Contributors

Nick Christman

Joshua Sarris

Kevin Starkey

Max Woesner

Jodi Hodge

Corneliu Turturica

2008-2009 Contributors

Eric Clay

Chuck Yang

Elton Zebron

Luke Chilson

Brandon Price

Greg Fong

2007-2008 contributors

Baldwin Britton

Denver Harris

Mark Priddy

Chris Rasmussen

Michael Roth

Sally Roth

2006-2007 contributors

Ryan J Smith

Nathan Ferch

Andrew Lopez

Nathan Sherman

Chris Adkins

2005-2006 contributors

Gabriela Valdivia

Raymond Betz

Jenni Christensen

Jeffrey Wonoprabowo

Paul Wilson

Instructor: Rob Frohne

2004-2005 contributors

Sam Barnes

Shawn Santana

Aric Goe

Todd Caswell

David Anderson

Anthony Guenterberg