コード例 #1
0
/* Levinson recursion for linear prediction (LP) */
void LPFormantTracker::levinson(dtype * R, dtype * aa, const int size) {
	dtype ki, t;
    dtype E = R[0];
    int   i0, j0;

	if (R[0] == 0.0) {
		for(i0=1; i0<size; i0++)
			aa[i0] = 0.0;

		aa[0] = 1;
		return;
	}

    for(i0=1; i0<size; i0++) { 
        ki = R[i0]; 
      
        // Update reflection coefficient: 
        for (j0=1; j0<i0; j0++) 
			ki += aa[j0] * R[i0-j0]; 
      
        ki   /= -E; 
        E    *= (1 - ki*ki); 
        
        // Update polynomial: 
        for (j0 = 1; j0 <= RSL(i0 - 1, 1); j0++) {
            t = aa[j0];
            aa[j0] += ki * aa[i0 - j0];
            aa[i0 - j0] += ki * t; 
        } 
  
        if (i0%2 == 0) aa[RSL(i0, 1)] *= 1+ki; 
  
        // Record reflection coefficient
        aa[i0] = ki; 

    } // end of for loop

    aa[0] = 1.0;
}
コード例 #2
0
static void rsem_AA3(void)
{
	WSL(X1);
	RSL(X2); // this one should fail
}
コード例 #3
0
static void rsem_AA2(void)
{
	RSL(X1);
	WSL(X2); // this one should fail
}
コード例 #4
0
static void rsem_AA1(void)
{
	RSL(X1);
	RSL(X1); // this one should fail
}
コード例 #5
0
static void rsem_AA3(void)
{
	WSL(X1);
	RSL(X2); 
}
コード例 #6
0
static void rsem_AA2(void)
{
	RSL(X1);
	WSL(X2); 
}
コード例 #7
0
static void rsem_AA1B(void)
{
	RSL(X1);
	RSL(X2); 
}
コード例 #8
0
static void rsem_AA1(void)
{
	RSL(X1);
	RSL(X1); 
}