I have a grid of 15 by 21 Leds, I’m using a pic16F877 to drive the Leds, one column at a time from left to right, I have an
audio signal going into the pic and output level shown by the Leds, the display looks some what like an oscilloscope. the unit sample's the audio data at 42K using a16bit ADC it then passes the data to a 1Mb chip then on the next loop of the ram it gets read out to a DAC . anyway I have the pic and ram ADC and DAC all workign fine what I need to work on now is the software filter, What I would like to do is make the display show frequency levels across each column of Leds starting from bass frequency’s on the left up to the higher frequency’s on the right , like a Audio Spectrum Analyzer ,
Ive beed told I may probably need to implement multiple bandpass filters in the software , something like ;
FILT <-- FILT + FF(NEW - FILT)
This forms a single pole low pass filter where NEW is a new sample being accumulated into filter FILT. FF is the filter fraction .
thing is I have never wrote code for a digital filter before
I can use a Pic18F442 if the 16F877 is to slow , anyway has anyone here done anything like this and could maybe give me a few tips on wirting the code for the BandPass filter part ,, thanks for reading and all the best
audio signal going into the pic and output level shown by the Leds, the display looks some what like an oscilloscope. the unit sample's the audio data at 42K using a16bit ADC it then passes the data to a 1Mb chip then on the next loop of the ram it gets read out to a DAC . anyway I have the pic and ram ADC and DAC all workign fine what I need to work on now is the software filter, What I would like to do is make the display show frequency levels across each column of Leds starting from bass frequency’s on the left up to the higher frequency’s on the right , like a Audio Spectrum Analyzer ,
Ive beed told I may probably need to implement multiple bandpass filters in the software , something like ;
FILT <-- FILT + FF(NEW - FILT)
This forms a single pole low pass filter where NEW is a new sample being accumulated into filter FILT. FF is the filter fraction .
thing is I have never wrote code for a digital filter before
I can use a Pic18F442 if the 16F877 is to slow , anyway has anyone here done anything like this and could maybe give me a few tips on wirting the code for the BandPass filter part ,, thanks for reading and all the best