From 26b8e9773d86c259b7faa2d20846ca5ac3862281 Mon Sep 17 00:00:00 2001 From: Jamie Bullock Date: Fri, 20 Oct 2006 12:30:46 +0000 Subject: Replaced --enable-vector with --enable-fft and improved build --- src/vector.c | 131 ++++++++++++++++++++++++++++++++++++----------------------- 1 file changed, 81 insertions(+), 50 deletions(-) (limited to 'src/vector.c') diff --git a/src/vector.c b/src/vector.c index 9827bbe..8bc6f41 100644 --- a/src/vector.c +++ b/src/vector.c @@ -23,6 +23,9 @@ #include "xtract/libxtract.h" #include + +#ifdef XTRACT_FFT + #include int xtract_magnitude_spectrum(float *data, int N, void *argv, float *result){ @@ -50,23 +53,6 @@ int xtract_magnitude_spectrum(float *data, int N, void *argv, float *result){ } -int xtract_autocorrelation(float *data, int N, void *argv, float *result){ - - /* Naive time domain implementation */ - - int n = N, i; - - float corr; - - while(n--){ - corr = 0; - for(i = 0; i < N - n; i++){ - corr += data[i] * data[i + n]; - } - result[n] = corr / N; - } -} - int xtract_autocorrelation_fft(float *data, int N, void *argv, float *result){ float *temp; @@ -85,39 +71,6 @@ int xtract_autocorrelation_fft(float *data, int N, void *argv, float *result){ fftwf_free(temp); } -int xtract_amdf(float *data, int N, void *argv, float *result){ - - int n = N, i; - - float md, temp; - - while(n--){ - md = 0; - for(i = 0; i < N - n; i++){ - temp = data[i] - data[i + n]; - temp = (temp < 0 ? -temp : temp); - md += temp; - } - result[n] = md / N; - } -} - -int xtract_asdf(float *data, int N, void *argv, float *result){ - - int n = N, i; - - float sd; - - while(n--){ - sd = 0; - for(i = 0; i < N - n; i++){ - /*sd = 1;*/ - sd += SQ(data[i] - data[i + n]); - } - result[n] = sd / N; - } -} - int xtract_mfcc(float *data, int N, void *argv, float *result){ xtract_mel_filter *f; @@ -151,6 +104,84 @@ int xtract_dct(float *data, int N, void *argv, float *result){ fftwf_destroy_plan(plan); } +#else + +int xtract_magnitude_spectrum(float *data, int N, void *argv, float *result){ + + NOT_IMPLEMENTED; + +} + +int xtract_autocorrelation_fft(float *data, int N, void *argv, float *result){ + + NOT_IMPLEMENTED; + +} + +int xtract_mfcc(float *data, int N, void *argv, float *result){ + + NOT_IMPLEMENTED; + +} + +int xtract_dct(float *data, int N, void *argv, float *result){ + + NOT_IMPLEMENTED; + +} + +#endif + +int xtract_autocorrelation(float *data, int N, void *argv, float *result){ + + /* Naive time domain implementation */ + + int n = N, i; + + float corr; + + while(n--){ + corr = 0; + for(i = 0; i < N - n; i++){ + corr += data[i] * data[i + n]; + } + result[n] = corr / N; + } +} + +int xtract_amdf(float *data, int N, void *argv, float *result){ + + int n = N, i; + + float md, temp; + + while(n--){ + md = 0; + for(i = 0; i < N - n; i++){ + temp = data[i] - data[i + n]; + temp = (temp < 0 ? -temp : temp); + md += temp; + } + result[n] = md / N; + } +} + +int xtract_asdf(float *data, int N, void *argv, float *result){ + + int n = N, i; + + float sd; + + while(n--){ + sd = 0; + for(i = 0; i < N - n; i++){ + /*sd = 1;*/ + sd += SQ(data[i] - data[i + n]); + } + result[n] = sd / N; + } +} + int xtract_bark_coefficients(float *data, int N, void *argv, float *result){ int *limits, band, n; -- cgit v1.2.3