int main(){ uint_t length = 1024; /* length */ uint_t height = 1024; /* height */ fmat_t * mat = new_fmat (length, height); /* input buffer */ fmat_print(mat); del_fmat(mat); return 0; }
int main () { uint_t win_s = 1024; // window size uint_t n_filters = 13; // number of filters cvec_t *in_spec = new_cvec (win_s); // input vector of samples fvec_t *out_filters = new_fvec (n_filters); // per-band outputs // create filterbank object aubio_filterbank_t *o = new_aubio_filterbank (n_filters, win_s); // apply filterbank ten times uint_t n = 10; while (n) { aubio_filterbank_do (o, in_spec, out_filters); n--; } // print out filterbank coeffs fmat_t *coeffs; // pointer to the coefficients coeffs = aubio_filterbank_get_coeffs (o); fmat_print (coeffs); aubio_filterbank_set_coeffs (o, coeffs); coeffs = aubio_filterbank_get_coeffs (o); fmat_print (coeffs); //fvec_print (out_filters); // clean up del_aubio_filterbank (o); del_cvec (in_spec); del_fvec (out_filters); aubio_cleanup (); return 0; }
int main (void) { /* allocate some memory */ uint_t win_s = 1024; /* window size */ uint_t n_filters = 13; /* number of filters */ cvec_t *in = new_cvec (win_s); /* input buffer */ fvec_t *out = new_fvec (win_s); /* input buffer */ fmat_t *coeffs = NULL; /* allocate fft and other memory space */ aubio_filterbank_t *o = new_aubio_filterbank (n_filters, win_s); coeffs = aubio_filterbank_get_coeffs (o); if (coeffs == NULL) { return -1; } /* if (fvec_max (coeffs) != 0.) { return -1; } if (fvec_min (coeffs) != 0.) { return -1; } */ fmat_print (coeffs); aubio_filterbank_do (o, in, out); del_aubio_filterbank (o); del_cvec (in); del_fvec (out); aubio_cleanup (); return 0; }
int main (void) { uint_t height = 3, length = 9, i, j; // create fmat_t object fmat_t * mat = new_fmat (height, length); for ( i = 0; i < mat->height; i++ ) { for ( j = 0; j < mat->length; j++ ) { // all elements are already initialized to 0. assert(mat->data[i][j] == 0); // setting element of row i, column j mat->data[i][j] = i * 1. + j *.1; } } fvec_t channel_onstack; fvec_t *channel = &channel_onstack; fmat_get_channel(mat, 1, channel); fvec_print (channel); // print out matrix fmat_print(mat); // destroy it del_fmat(mat); return 0; }
int main (void) { uint_t samplerate = 16000; // samplerate of signal to filter uint_t win_s = 512; // fft size uint_t n_filters = 40; // number of filters cvec_t *in_spec = new_cvec (win_s); // input vector of samples fvec_t *out_filters = new_fvec (n_filters); // per-band outputs // create filterbank object aubio_filterbank_t *o = new_aubio_filterbank (n_filters, win_s); // assign Mel-frequency coefficients aubio_filterbank_set_mel_coeffs_slaney (o, samplerate); // apply filterbank ten times uint_t n = 10; while (n) { aubio_filterbank_do (o, in_spec, out_filters); n--; } // print out filter coefficients fmat_t *coeffs; // pointer to the coefficients coeffs = aubio_filterbank_get_coeffs (o); fmat_print (coeffs); //fvec_print (out_filters); del_aubio_filterbank (o); del_cvec (in_spec); del_fvec (out_filters); aubio_cleanup (); return 0; }
int main() { int i, j, k, d = 10,d2=5; float * a = fvec_new (d * d); float * b = fvec_new (d * d); float * b0 = fvec_new (d * d); #define B0(i,j) b0[(i)+(j)*d] #define A(i,j) a[(i)+(j)*d] #define B(i,j) b[(i)+(j)*d] float * lambda = fvec_new (d); float * v = fvec_new (d * d); float *v_part=fvec_new (d * d2); for (i = 0 ; i < d ; i++) for (j = 0 ; j <= i ; j++) { A(i,j) = A(j,i) = drand48(); B0(i,j)=drand48(); B0(j,i)=drand48(); /* B(i,j) = B(j,i) = drand48(); */ } /* make a positive definite b (with b=b0*b0') */ for (i = 0 ; i < d ; i++) for (j = 0 ; j < d ; j++) { double accu=0; for(k=0;k<d;k++) accu+=B0(i,k)*B0(j,k); B(i,j)=accu; } printf ("a = "); fmat_print(a,d,d); printf ("\nb = "); fmat_print(b,d,d); printf ("Solution of the eigenproblem Av=lambda v\n"); printf ("\n"); int ret=eigs_sym (d, a, lambda, v); assert(ret==0); printf ("\n"); printf("Eigenvectors:\n"); fmat_print(v,d,d); fprintf(stdout, "lambda = "); fvec_print (lambda, d); printf ("\n"); printf("Partial eigenvalues/vectors:\n"); printf ("\n"); ret=eigs_sym_part (d, a, d2, lambda, v_part); assert(ret>0); if(ret<d2) printf("!!! only %d / %d eigenvalues converged\n",ret,d2); printf ("\n"); printf("Eigenvectors:\n"); fmat_print(v_part,d,d2); fprintf(stdout, "lambda = "); fvec_print (lambda, d2); printf ("\n"); printf ("Solution of the generalized eigenproblem Av=lambda B v\n"); printf ("\n"); ret=geigs_sym (d, a, b, lambda, v); assert(ret==0); printf ("\n"); fmat_print(v,d,d); fprintf(stdout, "lambda = "); fvec_print (lambda, d); printf ("\n"); free (a); free (lambda); free (v); return 0; }