16 #include "iLBC_define.h"
17 #include "constants.h"
37 float maxVal, tmpbuf[LPC_FILTERORDER+2*STATE_LEN], *tmp,
38 numerator[LPC_FILTERORDER+1];
39 float foutbuf[LPC_FILTERORDER+2*STATE_LEN], *fout;
44 maxVal = state_frgqTbl[idxForMax];
45 maxVal = (float)pow(10,maxVal)/(float)4.5;
49 memset(tmpbuf, 0, LPC_FILTERORDER*
sizeof(
float));
50 memset(foutbuf, 0, LPC_FILTERORDER*
sizeof(
float));
51 for (k=0; k<LPC_FILTERORDER; k++) {
52 numerator[k]=syntDenum[LPC_FILTERORDER-k];
54 numerator[LPC_FILTERORDER]=syntDenum[0];
55 tmp = &tmpbuf[LPC_FILTERORDER];
56 fout = &foutbuf[LPC_FILTERORDER];
60 for (k=0; k<len; k++) {
63 tmp[k] = maxVal*state_sq3Tbl[idxVec[tmpi]];
68 memset(tmp+len, 0, len*
sizeof(
float));
69 ZeroPoleFilter(tmp, numerator, syntDenum, 2*len,
70 LPC_FILTERORDER, fout);
72 out[k] = fout[len-1-k]+fout[2*len-1-k];