I have enjoyed using the audio library on my Teensy to build a software defined radio (SDR). I have added to the audio library code to include a TI3204 codec which has features which are benificial to SDR projects. And, I have successfully added a 512 bin FFT module.
I have been able to modify the library I2S input and output modules to operate at 48000 sample rate.
I would like to modify the sample rate to 8000 samples per second.
The I2S input and output modules are happy with this sample rate. I am able to feed in audio signals and get them out undamaged my doing a simple connection between input and output modules.
However, when I attempt to run the audio streams thru an FIR filter I get some huge noise bands over the entire 4 kHz audio spectrum.
I suspect the problem revolves around the requirement discussed in a 01-07-2014 post about the audio library which states that the update function must complete within 2.9 ms or 278528 cpu cycles.
Given a sample rate of 8000 hz and 128 block size, the update time would be 0.016 msec or 153600 cpu cycles.
I made a thorough review of the audio library code and I can not find where the update time rules are enforced so that I can modify the update time for the 8000 hz.
The most germane code that I have found is the function "void software_isr(void) // AudioStream::update_all()" which is in the AudioStream.cpp file.
Will you please help me by pointing me where or how I can get the audio streams to play nicely at 8000 hz?
Thanks for your patience.
Regards,
Charley
I have been able to modify the library I2S input and output modules to operate at 48000 sample rate.
I would like to modify the sample rate to 8000 samples per second.
The I2S input and output modules are happy with this sample rate. I am able to feed in audio signals and get them out undamaged my doing a simple connection between input and output modules.
However, when I attempt to run the audio streams thru an FIR filter I get some huge noise bands over the entire 4 kHz audio spectrum.
I suspect the problem revolves around the requirement discussed in a 01-07-2014 post about the audio library which states that the update function must complete within 2.9 ms or 278528 cpu cycles.
Given a sample rate of 8000 hz and 128 block size, the update time would be 0.016 msec or 153600 cpu cycles.
I made a thorough review of the audio library code and I can not find where the update time rules are enforced so that I can modify the update time for the 8000 hz.
The most germane code that I have found is the function "void software_isr(void) // AudioStream::update_all()" which is in the AudioStream.cpp file.
Will you please help me by pointing me where or how I can get the audio streams to play nicely at 8000 hz?
Thanks for your patience.
Regards,
Charley