This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
The setup is simple.
Hardware: C6713DSK
CCS Version: V2.14
DSPLIB Version: V1.00
DSPLIB API Used: DSPF_sp_biquad()
Application: 1-Band Parametric Equalizer (Eventually will be extended to 3-band)
The IOM driver fills the IOM buffers with audio data. The IOM buffer is copied to infilbuf. The infilbuf (input) and outfilbuf (output), both which are double-word aligned float buffers, are passed to DSPF_sp_biquad(). The filter coefficients are calculated on the fly whenever the gain, frequency and Q are updated on the PC application (VB app + RTDX). The parameters from PC app land accurately on the DSK, no issues there. The DSPF_sp_biquad() also works fine when a[2] = {1.0, 1.0} and b[3] = {1.0, 1.0, 1.0} and also for some parameter values. The problem is for most of the parameters (100% reproducible) the output of DSPF_sp_biquad() in outfilbuf is 0x7FFFFFFF which is obvious that the result is overflowing. So this is more of a scaling issue of either data or coefficients or both (I hope I am not going off-tangent when I say this). The closest I got to the solution was from the appnote "Overflow Avoidance Techniques in Cascaded IIR Filter Implementations on the TMS320 DSP’s (SPRA509)". But I was not able visualize the implementation in C code as it is explained using Matlab. Appreciate if you can help me with this issue. If this has been addresses earlier on this forum kindly point me to the thread.
Thanks in advance,
Sach