www.pudn.com > lpc.zip > deemp_i.c
/******************************************************************
*
* DEEMP Version 48
*
******************************************************************
*
* De-Emphasize output speech with 1 / ( 1 - .75z**-1 )
* cascaded with 200 Hz high pass filter
* ( 1 - 1.9998z**-1 + z**-2 ) / ( 1 - 1.75z**-1 + .78z**-2 )
*
* Input:
* N - Number of samples
* In/Output:
* X - Speech
*/
#include "ourstuff.h"
deemp0_i( x, n )
int_type n;
int_type x[];
{
static long_type dei1=0, dei2=0, deo1=0, deo2=0, deo3=0;
static long_type deo4=0;
long_type dei0,temp;
int_type k;
for(k=1;k<=n;k++) {
dei0 = x[k]<<5;
/*printf("x[k]: %f dei0:%f ", x[k]/8., dei0/2048.0);*/
temp = (-dei1<<1)+ dei2 + (704*deo1>>8)
- (80*deo4>>8)- (750*deo2>>8) + (379*deo3>>8) + dei0;
x[k] = (int_type)(temp>>6);
/*printf("int---x: %d %f %f\n",k, x[k]/4., temp/256.);*/
/*printf("int-----dei1:%f dei2:%f deo1:%f deo4:%f deo2:%f deo3:%f\n",dei1/2048., dei2/2048., deo1/2048., deo4/2048., deo2/2048., deo3/2048.);*/
/*printf("int-----k:%d x: %f temp:%f dei0:%x\n",k, x[k]/8., temp/2048.,dei0/2048.);*/
dei2 = dei1;
dei1 = dei0;
deo4 = deo3;
deo3 = deo2;
deo2 = deo1;
deo1 = temp;
}
}