Changes in src/spectral/mfcc.c [d95ff38:41bf913]
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
src/spectral/mfcc.c
rd95ff38 r41bf913 22 22 #include "aubio_priv.h" 23 23 #include "fvec.h" 24 #include "fmat.h"25 24 #include "cvec.h" 26 25 #include "mathutils.h" … … 41 40 aubio_filterbank_t *fb; /** filter bank */ 42 41 fvec_t *in_dct; /** input buffer for dct * [fb->n_filters] */ 43 f mat_t *dct_coeffs; /** DCT transform n_filters * n_coeffs */42 fvec_t *dct_coeffs; /** DCT transform n_filters * n_coeffs */ 44 43 }; 45 44 … … 65 64 66 65 /* allocating buffers */ 67 mfcc->in_dct = new_fvec (n_filters );66 mfcc->in_dct = new_fvec (n_filters, 1); 68 67 69 mfcc->dct_coeffs = new_f mat(n_coefs, n_filters);68 mfcc->dct_coeffs = new_fvec (n_coefs, n_filters); 70 69 71 70 /* compute DCT transform dct_coeffs[i][j] as … … 101 100 aubio_mfcc_do (aubio_mfcc_t * mf, cvec_t * in, fvec_t * out) 102 101 { 103 uint_t j, k;102 uint_t i, j, k; 104 103 105 104 /* compute filterbank */ … … 116 115 117 116 /* compute discrete cosine transform */ 118 for (j = 0; j < mf->n_filters; j++) { 119 for (k = 0; k < mf->n_coefs; k++) { 120 out->data[k] += mf->in_dct->data[j] 121 * mf->dct_coeffs->data[j][k]; 117 for (i = 0; i < out->channels; i++) { 118 for (j = 0; j < mf->n_filters; j++) { 119 for (k = 0; k < mf->n_coefs; k++) { 120 out->data[i][k] += mf->in_dct->data[i][j] 121 * mf->dct_coeffs->data[j][k]; 122 } 122 123 } 123 124 }
Note: See TracChangeset
for help on using the changeset viewer.