• Implement the FFT on a DSP processor and display result.
• Study adaptive filters and implement one.
• Program the DSP processor to implement a DTMF coder and/or decoder.
• Study wavelets, and demonstrate their use
• Explore computer vision techniques based on DSP principles
• How can DSP algorithms be implemented on Gate Arrays. http//www.mathworks.com/digest_xilinx_training
• Implement a filter in Verilog
• Describe, in some depth, architectural features of our DSP processor designed particularly for DSP work, and write some code to demonstrate.
• Write a very efficient (assembly language) FIR filter for a DSP
• Code up a prime factor FFT (Matlab or C)
• Report on the advantages of Delta-Sigma (oversampling) D/A and A/D convertors
• Create a filter design package that generates source code for the DSP (ie, given a specified frequency response, the package generates a program that will implement that filter)
• Design a system that performs either µ-law or A-law companding, then test it.
• Construct a system that produces band-limited white noise. This would be very useful for the department for a wide variety of purposes.
• Perform data compression using Linear Predictive Coding, Huffman Coding, or some other compression algorithm.
• Show how quantization affects pole location in various realizations of IIR filters.
• Explore how quantization affect the performance of FIR filters.
• Description (and implementation?) of Parks-McClellan algorithm for filter design.
• Research/Implement Linear Predictive Coding
• Research Speech Analysis (tools and techniques used).
• Implement an IIR filter on a fixed point DSP processor and investigate scaling of coefficients.
• How can approximately linear phase IIR filters be designed.
• Detect the location of a sound by employing multiple microphones (or use multiple speakers to “steer” sound).

Design a wearable fitness monitor that measure pulse rate and oxygen saturation level of blood.

I2S is a popular digital interface for audio, but is not supported on many microcontrollers.  Design an interface from I2S to SPI (or I2C) that uses the smallest possible processor to do the work.  Build a PCB/develop software….

Research Bond graphs – a technique developed for handling linear systems (mechanical, electrical…) under a single framework. https://en.wikipedia.org/wiki/Bond_graph

The dynamics of the voltage across a nerve membrane are well defined by a set of three coupled non-linear equations.  MATLAB (or another tool) can be used to model these equations and accurately predict the dynamics of a nerve firing.

Make an animation (either MATLAB or web-based) of the inner ear example from class.  This involved some simulation and some relatively simple graphics programming.  You could also update and expand this web page (http://www.swarthmore.edu/NatSci/echeeve1/Ref/InEar/InnerEar.html) to include the animation.

The Makey Makey is essential a generalized input device  –  a touch keyboard that can be used in many different ways.

Use this to get some ideas, though some are rather complex and/or expensive.

Search for kits and projects on the Adafruit website

The Arduino is a cheap electronics board that allows you to make your own electronics without a ton of coding experience. We love the Arduino, but like any electronics project, coming up with ideas for what to build is tough. Whether you’re just looking for inspiration or just need a place to start, let’s take a look at ten of the coolest Arduino projects.

The servo’s we have used only have about 180 degrees of rotation.  You can make some fairly simple changes to modify the servo to rotate continuously so it could be used to drive wheels on a robot, or any other application that involves continuous rotation.

Explore modes on a drumhead – similar to modes on a guitar string, but in 2 dimensions.

The animation system at http://lpsa.swarthmore.edu/Animations/ uses a fixed step size animation.  Alter the code to use a variable step size.

Use the animation system (http://lpsa.swarthmore.edu/Animations/) developed by a student a few years ago to develop animations for some of the homework problems.

Use simulink and MATLAB together to simulate a system (and animate it).  You could also do it all in MATLAB.  The coupled pendulum system comes to mind.

Z-Transforms are related to the Laplace Transform, but are used for discrete time systems (i.e., when a computer is used to sample a signal).  This would be more research then physical.

Develop an interactive JavaScript tool for demonstrating some principal from class.  … pole locations and step response?  pole locations and Bode Plot?  animating the Runge-Kutta process?

Use JavaScript to develop a tool for visualizing convolutions.  Something like “The Joy of Convolution” from Johns Hopkins, or the MATLAB tool ConvolveGUI that I demoed in class.

It would be very nice to have a MATLAB gui that makes the audio analyzer output a series of impulses to a circuit and then have software that would add up the delayed and shifted impulse responses to create the output due to an arbitrary input.  This is ambitious, but if you want a very software (MATLAB) intensive project – this might be it.

Right now, the signal generator is only configured to create sine waves and square waves.  Code could be added to the U8903a GUI to enable the generation of triangle and Sawtooth waves.