diff intercom/ilbc/filter.h @ 2:13be24d74cd2

import intercom-0.4.1
author Peter Meerwald <pmeerw@cosy.sbg.ac.at>
date Fri, 25 Jun 2010 09:57:52 +0200
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/intercom/ilbc/filter.h	Fri Jun 25 09:57:52 2010 +0200
@@ -0,0 +1,75 @@
+
+   /******************************************************************
+
+       iLBC Speech Coder ANSI-C Source Code
+
+       filter.h
+
+       Copyright (C) The Internet Society (2004).
+       All Rights Reserved.
+
+   ******************************************************************/
+
+
+
+
+
+
+#ifndef __iLBC_FILTER_H
+#define __iLBC_FILTER_H
+
+void AllPoleFilter(float *InOut,        /* (i/o) on entrance InOut[-orderCoef] to
+                                           InOut[-1] contain the state of the
+                                           filter (delayed samples). InOut[0] to
+                                           InOut[lengthInOut-1] contain the filter
+                                           input, on en exit InOut[-orderCoef] to
+                                           InOut[-1] is unchanged and InOut[0] to
+                                           InOut[lengthInOut-1] contain filtered
+                                           samples */
+  float *Coef,                  /* (i) filter coefficients, Coef[0] is assumed
+                                   to be 1.0 */
+  int lengthInOut,              /* (i) number of input/output samples */
+  int orderCoef                 /* (i) number of filter coefficients */
+  );
+
+void AllZeroFilter(float *In,   /* (i) In[0] to In[lengthInOut-1] contain
+                                   filter input samples */
+  float *Coef,                  /* (i) filter coefficients (Coef[0] is assumed
+                                   to be 1.0) */
+  int lengthInOut,              /* (i) number of input/output samples */
+  int orderCoef,                /* (i) number of filter coefficients */
+  float *Out                    /* (i/o) on entrance Out[-orderCoef] to Out[-1]
+                                   contain the filter state, on exit Out[0]
+                                   to Out[lengthInOut-1] contain filtered
+                                   samples */
+  );
+
+void ZeroPoleFilter(float *In,  /* (i) In[0] to In[lengthInOut-1] contain filter
+                                   input samples In[-orderCoef] to In[-1]
+                                   contain state of all-zero section */
+  float *ZeroCoef,              /* (i) filter coefficients for all-zero
+                                   section (ZeroCoef[0] is assumed to
+                                   be 1.0) */
+  float *PoleCoef,              /* (i) filter coefficients for all-pole section
+                                   (ZeroCoef[0] is assumed to be 1.0) */
+  int lengthInOut,              /* (i) number of input/output samples */
+  int orderCoef,                /* (i) number of filter coefficients */
+  float *Out                    /* (i/o) on entrance Out[-orderCoef] to Out[-1]
+                                   contain state of all-pole section. On
+                                   exit Out[0] to Out[lengthInOut-1]
+                                   contain filtered samples */
+  );
+
+
+
+
+
+
+void DownSample(float *In,      /* (i) input samples */
+  float *Coef,                  /* (i) filter coefficients */
+  int lengthIn,                 /* (i) number of input samples */
+  float *state,                 /* (i) filter state */
+  float *Out                    /* (o) downsampled output */
+  );
+
+#endif

Repositories maintained by Peter Meerwald, pmeerw@pmeerw.net.