Adaptive Noise Cancellation

Implement an adaptive filtering algorithm on an FPGA.

As an individual, I was given the task of implementing a simple LMS (Least Mean Squares) filter on an arbitrarily selected platform. The first attempt was on an Arduino Due, second was on a Raspberry Pi, and the final attempt was on a Spartan 3E FPGA (Field Programmable Gate Array) Development Board.

In the end I was able to implement this algorithm both on the Spartan 3E and Nexys 4 Artix-7 FPGAs. Below is a picture of the oscilloscope readout; in yellow is the input signal, and in green is the filtered signal.