Minus a couple of tweaks, the circuit is basically finished. I just want to adjust the brightness of the LEDs and tune up the sensitivity of the comparators. I will follow with a video soon but I need to find a decent camera to capture the full effect.

As I built the circuit I measured the frequency response of each of my filters by injecting a frequency sweep from 0.1Hz to 97.66kHz using my signal generator and measuring the strength of the response using my oscilloscope’s spectrum analyser. This is what my raw data looked like:

16k_filter_frequency-response
The red line is the injected signal and the blue line is the output of the filter measured in dBu

To find the gain all I had to do was use Matlab to subtract the strength of the input signal away from the output signal. The final frequency responses for the 7 filters is shown below:final_gains

And here is what I was trying to create (note that the x-axis is Hz, not kHz):

filters

The match is pretty good. While the peak of each frequency band doesn’t quite reach 20dB it gets pretty close and this is to be expected with imperfect components.

The first thing you might see when you look at the image is that the frequency responses for the first two filters are pretty rubbish. This – I believe – is due to my frequency analyser having large frequency bins  which means that the resolution at low frequencies is quite poor. This also explains why all of the filters have higher than expected gain at low frequencies.

A more interesting observation is the small peaks that occur on each line after the the main peaks. If you measure the frequency of these peaks you will see that they represent the 3rd (and sometimes 5th) harmonics of the resonant frequency. This indicates that at the resonant frequency the gain was so large that the opamps were clipping which introduces odd harmonics as the signal looks more like a square wave than a sine wave. This isn’t a huge deal, and you can ignore the peaks easily enough – but what it does mean is that maybe the gain at resonance is higher than my graphs show, I just couldn’t capture it because my input signal was too large and resulted in clipping of the output therefore limiting the gain.

 

Advertisements