I think I see whats happening. Its performing an FFT, which results in a
linear frequency result. Most spectrum analyzers show log frequency not
linear. The result is something that doesn't look right. Rather than
convert to log frequency a mapping function is applied to the
amplitudes to try and make it look more like what people are expecting.


I think the best way to go is dump the amplitude mapping and really
convert the linear frequency to log frequency. Its not that hard to do.
You need to run the FFT with more frequency bands than you have on the
display, and average the bands, with more bands averaged together on
the top and fewer on the bottom. The code is already there to do it,
but its doing a linear averaging (the same number of bands per output
bar). 

If the number of output bars on the display is kept the same you will
need to increase the number of frequency bands in the FFT. So I think
the best compromise is to decrease the number of output bars (to say 8
or 10) and keep the number of bands about the same. This should give a
much more accurate display without taking much more cpu cycles. 

Of course this is all in C so it has to get compiled into the firmware.
It would probably be much faster to debug this in desktop squeezeplay
where you can get much faster turn around time. 

John S.


-- 
JohnSwenson
------------------------------------------------------------------------
JohnSwenson's Profile: http://forums.slimdevices.com/member.php?userid=5974
View this thread: http://forums.slimdevices.com/showthread.php?t=77783

_______________________________________________
Touch mailing list
Touch@lists.slimdevices.com
http://lists.slimdevices.com/mailman/listinfo/touch

Reply via email to