Forums

Strange behaviour, PLEASE HELP!!!!

Started by Jaime Andres Aranguren Cardona November 12, 2001
Hi guys,

Please, enlighten me with the following issue.

I am implementing a 9 band audio equalizer with the ADDS-21160M EzKit Lite. For
the filtering I use the cascaded biquad implementation found on "Using The
Low-Cost, High Performance ADSP-21161 SIMD Digital Signal Processor For Digital
Audio Applications", pages 31-32.

Everything works fine for about 1-2 seconds, then no sound comes out from the
board. Debugging through a MTN-ISA emulator, I find there has been floating
point overflow. Trying to find out where was the overflow generated, I set a
conditional breakpoint (VDSP++ 2.0 for SHARC) to trigger when $AVSx == 1, but it
doesn't get the error, because it seems to work very slowly. And I say so,
because when running the program with the conditional breakpoint enabled, no
sound comes smoothly, rather some indication ("tick") when the current sample
was sent out to the DAC.

Some further info about the program:
- Each band gain is defined like (for example):
.var m62_G = 0.05;
.var masterVolume = 1.00;
Is this a correct way to define floating point variables?

- I have some DM variables like .var Out62; to hold the filtered output from
each filter. Once the sample has been passed through all the filters (bands),
already multiplied by the corresponding filter gain, I do the mixing by
summation of all the filter outputs.

So, my questions are:
- How can I get the information of when and where is the overflow generated?
- What can be the reason for getting such overflow?
- How can I correct it?

Kind regards,
Jaime Andr Aranguren Cardona