I just finished reading this whitepaper on Sigman Delta Modulation. It mainly promotes their older DSP56001 chip. The document is about 70 pages and took me a few days to get through as I had to mull over each section for a bit before moving on. It also made me realize how lacking I am in understanding digital signal processing.

One of our professors at WWU had retired with very short notice. This aligned with my digital communications course and the result was an unprepared professor (whos career at WWU was the single course) and a great wealth of information missed (I blame myself for failing to self study).

Nonetheless, the paper does a great job in explaining the sigma delta A/D process, touching on principles of sampling theorem, noise-shaping, etc…

I also stumbled into this code for implementations of a FIR filter on Netrino.com.  It’s accompanied by a really great explanation of how they work.

 * Sample the input signal (perhaps via A/D).
sample = input();

 * Insert the newest sample into an N-sample circular buffer.
 * The oldest sample in the circular buffer is overwritten.
x[oldest] = sample; 

 * Multiply the last N inputs by the appropriate coefficients.
 * Their sum is the current output.
y = 0; 

for (k = 0; k < N; k++) 
    y += h[k] * x[(oldest + k) % N]; 

oldest = (oldest + 1) % N;

 * Output the result.