Software issues for LING525/CIS558
This is a lab course. What you learn is heavily dependent on doing exercises in Matlab or Octave (the free software version of MATLAB). There are several reasons for this:
- writing a program to implement a method is a good way to ensure that you understand it;
- using a system of this kind allows you to explore the relevant mathematics empirically as well as theoretically;
- this also prepares you to apply the ideas and techniques in your own future work.
MATLAB has long been widely used in signal-processing research, and so learning it will also give you access to an enormous amount of relevant software written by researchers in many subdisciplines. From the beginning, this course's lecture notes have been based entirely on MATLAB examples.
Octave is a free software (GPL) language that "mostly compatible with MATLAB" (see this link for a further discussion of (in)compatibilities). We believe that Octave development has now reached the point where it makes sense for us to make it the primary language of this course. However, if you have access to MATLAB and prefer to use it, (nearly?) everything that we do should work in either environment.
If you don't already have easy access to Octave (or MATLAB), on your own computer(s), you should download and install it right away.
Installing Octave on Windows and OS X systems involves several steps and may take some time. You will also need some additional packages available from Octave-Forge (in particular the signal package), which adds some more steps. During the first week, we will devote a special lab session to helping with this process.
According to this page,
Student Licenses: Wharton, SEAS, and SAS have special arrangements for distributing MATLAB. All other students purchase MATLAB at the Penn Computer Connection.
Given the various restrictions and costs, we continue to recommend using Octave unless there are features of MATLAB that you can't do without.