Signal Processing and Communications: Teaching and Research Using IPython Notebook
Mark Wickert
Abstract
This paper will take the audience through the story of how an electrical and computer
engineering faculty member has come to embrace Python, in particular IPython Notebook
(IPython kernel for Jupyter),
as an analysis and simulation tool for both teaching and research in signal processing
and communications. Legacy tools such as MATLAB are well established (entrenched) in
this discipline, but engineers need to be aware of alternatives, especially in the case
of Python where there is such a vibrant community of developers.
In this paper case studies will also be used to describe domain
specific code modules that are being developed to support both lecture and lab oriented
courses going through the conversion from MATLAB to Python. These modules in particular
augment scipy.signal in a very positive way and enable rapid prototyping of
communications and signal processing algorithms. Both student and industry team
members in subcontract work, have responded favorably to the use of Python as an
engineering problem solving platform. In teaching, IPython notebooks are used to augment
lecture material with live calculations and simulations. These same notebooks are then
placed on the course Web Site so students can download and tinker on their own. This
activity also encourages learning more about the language core and Numpy, relative to
MATLAB. The students quickly mature and are able to turn in homework solutions and
complete computer simulation projects, all in the notebook. Rendering notebooks to
PDF via LaTeX is also quite popular. The next step is to get other signals and systems faculty
involved.
numerical computing, signal processing, communications systems, system modeling
DOI10.25080/Majora-7b98e3ed-010