Hi,
I am presently trying to run a filter design code on C6748 processor using CCSv4. The code was fine when I was using integer values of filter coefficients. I was reading in the values as int32_t, and also writing them out in the same format. But now, I am converting the int32_t values into floats and separating them into left and right channels.
int32_t dataIn32;
int32_t ileft;
int32_t iright;
iright= dataIn32 >> 16;
ileft = (dataIn32 << 16) >> 16;
I am trying to multiply ileft and iright with the floating point filter coefficients (Coefficients which look like -0.00098430158499334622, -0.00094963812473876472 , 0.00066511408673153305 etc, in fact 64 values, as I am trying to implement a 64 order filter). I am merging the left and the right channel outputs into a single int32_t value and sending out to the McASP. However, I find that, the code which was working fine with integer filter coefficients does not yield the desired output at all the moment I convert it to floating point. Do I need to do something else when I use floating point multiplication in C6748? Any help in this regard will be greatly appreciated.
Thanks,
Debarati.