| 
																	
																	
																		
																	
																	
																 | 
																@@ -31,38 +31,38 @@ | 
															
														
														
													
														
															
																 | 
																 | 
																static void compute_lpc_coefs(const double *autoc, int max_order, | 
																 | 
																 | 
																static void compute_lpc_coefs(const double *autoc, int max_order, | 
															
														
														
													
														
															
																 | 
																 | 
																                              double lpc[][MAX_LPC_ORDER], double *ref) | 
																 | 
																 | 
																                              double lpc[][MAX_LPC_ORDER], double *ref) | 
															
														
														
													
														
															
																 | 
																 | 
																{ | 
																 | 
																 | 
																{ | 
															
														
														
													
														
															
																 | 
																 | 
																   int i, j, i2; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																   double r, err, tmp; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																   double lpc_tmp[MAX_LPC_ORDER]; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																   for(i=0; i<max_order; i++) lpc_tmp[i] = 0; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																   err = autoc[0]; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																   for(i=0; i<max_order; i++) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																      r = -autoc[i+1]; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																      for(j=0; j<i; j++) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																          r -= lpc_tmp[j] * autoc[i-j]; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																      } | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																      r /= err; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																      ref[i] = fabs(r); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																      err *= 1.0 - (r * r); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																      i2 = (i >> 1); | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																      lpc_tmp[i] = r; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																      for(j=0; j<i2; j++) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																         tmp = lpc_tmp[j]; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																         lpc_tmp[j] += r * lpc_tmp[i-1-j]; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																         lpc_tmp[i-1-j] += r * tmp; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																      } | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																      if(i & 1) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																          lpc_tmp[j] += lpc_tmp[j] * r; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																      } | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																      for(j=0; j<=i; j++) { | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																          lpc[i][j] = -lpc_tmp[j]; | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																      } | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																   } | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    int i, j, i2; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    double r, err, tmp; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    double lpc_tmp[MAX_LPC_ORDER]; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    for(i=0; i<max_order; i++) lpc_tmp[i] = 0; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    err = autoc[0]; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    for(i=0; i<max_order; i++) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        r = -autoc[i+1]; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        for(j=0; j<i; j++) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            r -= lpc_tmp[j] * autoc[i-j]; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        r /= err; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        ref[i] = fabs(r); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        err *= 1.0 - (r * r); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        i2 = (i >> 1); | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        lpc_tmp[i] = r; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        for(j=0; j<i2; j++) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            tmp = lpc_tmp[j]; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            lpc_tmp[j] += r * lpc_tmp[i-1-j]; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            lpc_tmp[i-1-j] += r * tmp; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        if(i & 1) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            lpc_tmp[j] += lpc_tmp[j] * r; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																 | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        for(j=0; j<=i; j++) { | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																            lpc[i][j] = -lpc_tmp[j]; | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																        } | 
															
														
														
													
														
															
																 | 
																 | 
																 | 
																 | 
																 | 
																    } | 
															
														
														
													
														
															
																 | 
																 | 
																} | 
																 | 
																 | 
																} | 
															
														
														
													
														
															
																 | 
																 | 
																
  | 
																 | 
																 | 
																
  | 
															
														
														
													
														
															
																 | 
																 | 
																/** | 
																 | 
																 | 
																/** | 
															
														
														
													
												
													
														
															
																| 
																	
																		
																	
																	
																	
																 | 
																
  |