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;
}
}