public static void c2ir(double c[],int nc,double hh[],int leng){
  hh[0]=Math.exp(c[0]);
  for (int n=1; n < leng; n++) {
    double d=0;
    int upl=(n >= nc) ? nc - 1 : n;
    for (int k=1; k <= upl; k++)     d+=k * c[k] * hh[n - k];
    hh[n]=d / n;
  }
}

public static void c2ir ( double c [ ] , int nc , double hh [ ] , int leng ) { hh [ 0 ] = Math . exp ( c [ 0 ] ) ; for ( int n = 1 ; n < leng ; n ++ ) { double d = 0 ; int upl = ( n >= nc ) ? nc - 1 : n ; for ( int k = 1 ; k <= upl ; k ++ ) d += k * c [ k ] * hh [ n - k ] ; hh [ n ] = d / n ; } }
c2ir : the minimum phase impulse response is evaluated from the minimum phase cepstrum
