📄 anafilter.cxx
字号:
//A.10 anaFilter.c /****************************************************************** iLBC Speech Coder ANSI-C Source Code anaFilter.c Copyright (c) 2001, Global IP Sound AB. All rights reserved. ******************************************************************/ #include <string.h> #include"iLBC_define.h" //using namespace std; /*----------------------------------------------------------------* * LP analysis filter. *---------------------------------------------------------------*/ void anaFilter( float *In, /* (i) Signal to be filtered */ float *a, /* (i) LP parameters */ int len,/* (i) Length of signal */ float *Out, /* (o) Filtered signal */ float *mem /* (i/o) Filter state */ ){ int i, j; float *po, *pi, *pm, *pa; po = Out; /* Filter first part using memory from past */ for (i=0;i<LPC_FILTERORDER;i++) { pi = &In[i]; pm = &mem[LPC_FILTERORDER-1]; pa = a; *po=0.0; for (j=0;j<=i;j++) { *po+=(*pa++)*(*pi--); } for (j=i+1;j<LPC_FILTERORDER+1;j++) { *po+=(*pa++)*(*pm--); } po++; } /* Filter last part where the state is entierly in the input vector */ for (i=LPC_FILTERORDER;i<len;i++) { pi = &In[i]; pa = a; *po=0.0; for (j=0;j<LPC_FILTERORDER+1;j++) { *po+=(*pa++)*(*pi--); } po++; } /* Update state vector */ memcpy(mem, &In[len-LPC_FILTERORDER], LPC_FILTERORDER*sizeof(float)); }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -