[Speex-dev] Reg: Fixed point implementation

shashank shashi_vpsss at rediffmail.com
Tue Feb 21 02:47:45 PST 2012

Dear Sir, 

I am Shashank, fresher to DSP field. Sir I was going through your fixed point echo 
cancellation module , here I am not getting the computation of RER in the fixed 
point. The lower bound computation for the same in floating point is having the 
error energy term but when I tried to solve the same equation for fixed point I 
did not get the equation implemented in code, the term used in the LHS of the (b) 
if condition is equivalently modified to (RER * See) in fixed point, but I am not 
clear with RHS computation of the same in equation equation (f) and the 
corresponding comparisons.

RER = (.0001*Sxx + 3.*MULT16_32_Q15(st->leak_estimate,Syy)) / See; - a
   if (RER < Sey*Sey/(1+See*Syy)) ---------------------------------- b

tmp32 = MULT16_32_Q15(st->leak_estimate,Syy);----------------------- c
   tmp32 = ADD32(SHR32(Sxx,13), ADD32(tmp32, SHL32(tmp32,1)));------ d
      spx_float_t bound = PSEUDOFLOAT(Sey);------------------------- e
      bound = FLOAT_DIVU(FLOAT_MULT(bound, bound),
                                 PSEUDOFLOAT(ADD32(1,Syy)));-------- f
      if (FLOAT_GT(bound, PSEUDOFLOAT(See)))------------------------ g
         tmp32 = See;

Waiting for your reply...

Thank You in advance

With Regards
Shashank V K

-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.xiph.org/pipermail/speex-dev/attachments/20120221/7370f22f/attachment.htm 

More information about the Speex-dev mailing list