The left channel has the filter enabled, and its frequency response is shown as the blue plot. The right channel is a simple pass-through, and its response is the red plot. To get the responses, we used NCH Tone Generator to generate white noise. The noise signal is patched through the SPDIF output from my computer to the DSP board. The output is sampled using an M-Audio Conectiv, connected via 3.5mm to RCA cable. Lastly, we used Adobe Audition to capture the output and provide some signal analysis.
Arriving at a working filter wasn't easy. Some of the things that we had to take into account were:
- Compiler limitations - The free DSP563CC compiler doesn't provide intrinisics necessary to fully utilize the DSP features, like a circular buffer data-type, parallel memory moves, and multiple memory space access. Many of these issues required the use of very hack-ish use of ASM, especially with respect to setting up the filter co-processor.
- Performance limitations - Since we resorted to using a slower (cheaper!) DSP, we had to be mindful with how we coded up everything, while keeping everything clear and maintainable. We are also limited with how complex we can make the filter (# of taps) due to memory and speed constraints.
Another goal that we've arrived at is the completion of the I2C architecture, which will provide the comm bridge that we've made earlier with something to talk to.
No comments:
Post a Comment