view intercom/ilbc/hpInput.c @ 5:f762bf195c4b

import spandsp-0.0.3
author Peter Meerwald <pmeerw@cosy.sbg.ac.at>
date Fri, 25 Jun 2010 16:00:21 +0200
parents 13be24d74cd2
children
line wrap: on
line source


   /******************************************************************

       iLBC Speech Coder ANSI-C Source Code





       hpInput.c

       Copyright (C) The Internet Society (2004).
       All Rights Reserved.

   ******************************************************************/

#include "constants.h"

   /*----------------------------------------------------------------*
    *  Input high-pass filter
    *---------------------------------------------------------------*/

void hpInput(float *In,         /* (i) vector to filter */
  int len,                      /* (i) length of vector to filter */
  float *Out,                   /* (o) the resulting filtered vector */
  float *mem                    /* (i/o) the filter state */
  )
{
  int i;
  float *pi, *po;

  /* all-zero section */

  pi = &In[0];
  po = &Out[0];
  for (i = 0; i < len; i++) {
    *po = hpi_zero_coefsTbl[0] * (*pi);
    *po += hpi_zero_coefsTbl[1] * mem[0];
    *po += hpi_zero_coefsTbl[2] * mem[1];

    mem[1] = mem[0];
    mem[0] = *pi;
    po++;
    pi++;

  }

  /* all-pole section */

  po = &Out[0];
  for (i = 0; i < len; i++) {
    *po -= hpi_pole_coefsTbl[1] * mem[2];
    *po -= hpi_pole_coefsTbl[2] * mem[3];

    mem[3] = mem[2];
    mem[2] = *po;
    po++;





  }
}

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