src/spectral/fft.c: fix imag boundaries, including for odd fft sizes
authorPaul Brossier <piem@piem.org>
Sun, 11 Oct 2009 10:47:43 +0000 (12:47 +0200)
committerPaul Brossier <piem@piem.org>
Sun, 11 Oct 2009 10:47:43 +0000 (12:47 +0200)
src/spectral/fft.c

index 71acca641d5c18894ec1e0d362653763108ec334..b79fc06401706b217de74cc6681c37f84b96d85e 100644 (file)
@@ -224,7 +224,7 @@ void aubio_fft_get_norm(fvec_t * compspec, cvec_t * spectrum) {
 void aubio_fft_get_imag(cvec_t * spectrum, fvec_t * compspec) {
   uint_t i, j;
   for (i = 0; i < compspec->channels; i++) {
-    for (j = 1; j < compspec->length / 2 + 1; j++) {
+    for (j = 1; j < ( compspec->length + 1 ) / 2 /*- 1 + 1*/; j++) {
       compspec->data[i][compspec->length - j] =
         spectrum->norm[i][j]*SIN(spectrum->phas[i][j]);
     }
@@ -234,7 +234,7 @@ void aubio_fft_get_imag(cvec_t * spectrum, fvec_t * compspec) {
 void aubio_fft_get_real(cvec_t * spectrum, fvec_t * compspec) {
   uint_t i, j;
   for (i = 0; i < compspec->channels; i++) {
-    for (j = 0; j< compspec->length / 2 + 1; j++) {
+    for (j = 0; j < compspec->length / 2 + 1; j++) {
       compspec->data[i][j] = 
         spectrum->norm[i][j]*COS(spectrum->phas[i][j]);
     }