October 13, 2013
about 8 months ago
The noise you put on pastebin looks like what I was seeing.
What I’ve been doing is smoothing the output signal by computing a running average with Welford’s algorithm, then computing a running average from the baseline corrected signal and outputting that. The result should be zero noise and a smoother output signal.
I put my arduino code (for an Uno) on https://github.com/Stabitha/Spectrum_Shield_Driver You can comment out all of the running variance and standard deviation code for space.
Add a baseline correction when you initialize your drivers. Compute the average for the first N samples per band and then reduce subsequent output values by the computed average, taking care not to assign a negative number (so write a function that assigns zero if average > output and the difference otherwise).
This should fix most of your noise.
You can also usually turn down the volume on whatever audio device you are inputting from.
Hi John, if you are interested I have a forked repository of your drivers that adds baseline correction for each band as well as in-place computation of the mean/variance/std. deviation for each band.
I will post this link as a source for drivers for this chip: http://tronixstuff.wordpress.com/2013/01/31/tutorial-arduino-and-the-msgeq7-spectrum-analyzer/
All you need to do is plug the Shield into the Arduino and plug in power and audio and you’re ready to go with the drivers above and the Processing sketch provided there as well.
All of the pins for the Arduino are for connecting additional components if you desire. The Spectrum Shield just sends multiplexed analog voltage signal to pins A0 and A1 and the drivers readAnalog() from there.
No public wish lists :(
Forgot your password?
No account? Register one!