예제 #1
0
파일: _mlsadf.c 프로젝트: r9y9/SPTK
static double mlsadf2(double x, double *b, const int m, const double a,
                      const int pd, double *d)
{
   double v, out = 0.0, *pt;
   int i;

   pt = &d[pd * (m + 2)];

   for (i = pd; i >= 1; i--) {
      pt[i] = mlsafir(pt[i - 1], b, m, a, &d[(i - 1) * (m + 2)]);
      v = pt[i] * ppade[i];

      x += (1 & i) ? v : -v;
      out += v;
   }

   pt[0] = x;
   out += x;

   return (out);
}
예제 #2
0
파일: Vocoder.cpp 프로젝트: vichug/mage
double MAGE::Vocoder::mlsadf2( double x, double * b, const int m, const double a, const int pd, double * d )
{
	double v, out = 0.0, * pt, aa;
	int i;
	
	aa = 1 - a * a;
	pt = &d[pd * ( m + 2 )];
	
	for( i = pd; i >= 1; i-- )
	{
		pt[i] = mlsafir( pt[i - 1], b, m, a, &d[( i - 1 ) * ( m + 2 )] );
		v = pt[i] * ppadesptk[i];
		
		x += ( 1 & i ) ? v : -v;
		out += v;
	}
	
	pt[0] = x;
	out += x;
	
	return( out );
}