www.pudn.com > lpc.zip > dcbias_i.c


/**********************************************************************
*
*	DCBIAS Version 50
*
**********************************************************************
*
*    Calculate and remove DC bias from buffer
*
* Inputs:
*  LEN    - Length of speech buffers
*  SPEECH - Input speech buffer
* Output:
*  SIGOUT - Output speech buffer
*/
#include "ourstuff.h"


dcbias_i( len, speech, sigout )
int_type len;
int_type *speech, *sigout;
{
int_type i;
int_type bias;
register int_type *ptr1, *ptr2;

bias = 0;
ptr1 = speech+1;
for(i=1;i<=len;i++) {	
	bias = bias + *ptr1++;
	/*	printf("bias:%d ptr:%d\n",bias, *(ptr1-1));*/
}

bias = ((4096*bias)/len)>>12;
/*printf("bias:%d\n",bias);*/
ptr1 = sigout+1;
ptr2 = speech+1;
for(i=1;i<=len;i++) {
	*ptr1++ = *ptr2++ - bias;
	/*	printf("ptf1:%d ptr2:%d bias:%d\n",*(ptr1-1), *(ptr2-1), bias);*/
}

}