/[marvin]/marvin/src/libsip/algo/mfcc.cc
ViewVC logotype

Diff of /marvin/src/libsip/algo/mfcc.cc

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.8 by exos, Fri Sep 12 03:09:04 2003 UTC revision 1.9 by exos, Fri Sep 12 03:39:27 2003 UTC
# Line 163  mfcc::mfcc ( DiscSignal &signal ) Line 163  mfcc::mfcc ( DiscSignal &signal )
163            //for (j=0; j<512;j++) printf("%d %f\n",j,fftMag[j]);            //for (j=0; j<512;j++) printf("%d %f\n",j,fftMag[j]);
164            */            */
165      DiscSignal fftMag = (new fft(*new DiscSignal(fftData, (int)fftSize), true))->get_magnitude();      DiscSignal fftMag = (new fft(*new DiscSignal(fftData, (int)fftSize), true))->get_magnitude();
     std::cout << "fft" << std::endl;  
166      //fftMag.perl_capture();      //fftMag.perl_capture();
167      for (j = 0; j < totalFilters; j++) {      for (j = 0; j < totalFilters; j++) {
168        loga = 0;        loga = 0;
# Line 172  mfcc::mfcc ( DiscSignal &signal ) Line 171  mfcc::mfcc ( DiscSignal &signal )
171            fftMag[k] * mfccFilterWeights[k + j * (int) fftSize];            fftMag[k] * mfccFilterWeights[k + j * (int) fftSize];
172        earMag[j] = log10(loga);        earMag[j] = log10(loga);
173      }      }
     (new DiscSignal(mfccFilterWeights,(int)fftSize *  ((int)totalFilters)+1))->perl_capture();  
174      //              for (j=0;j<40;j++) printf("%d %f\n",j,earMag[j]);      //              for (j=0;j<40;j++) printf("%d %f\n",j,earMag[j]);
175      for (j = 0; j < linearFilters; j++) {      for (j = 0; j < linearFilters; j++) {
176        loga = 0;        loga = 0;
# Line 198  mfcc::mfcc ( DiscSignal &signal ) Line 196  mfcc::mfcc ( DiscSignal &signal )
196    maxi=0;    maxi=0;
197    for (i=0;i<12;i++) if (maxi*maxi<empreinte[i]*empreinte[i]) maxi=empreinte[i];    for (i=0;i<12;i++) if (maxi*maxi<empreinte[i]*empreinte[i]) maxi=empreinte[i];
198    for (i=0;i<12;i++) empreinte[i]=(empreinte[i]/fabs(maxi))*2;    for (i=0;i<12;i++) empreinte[i]=(empreinte[i]/fabs(maxi))*2;
199    //  (new DiscSignal(empreinte, 13))->perl_capture();    (new DiscSignal(empreinte, 13))->perl_capture();
200    //for (i=0;i<12;i++) printf("%d %lf\n",i,empreinte[i]);    //for (i=0;i<12;i++) printf("%d %lf\n",i,empreinte[i]);
201    free(mfccFilterWeights);    free(mfccFilterWeights);
202    free(triangleHeight);    free(triangleHeight);
# Line 220  mfcc::mfcc ( DiscSignal &signal ) Line 218  mfcc::mfcc ( DiscSignal &signal )
218    
219    
220  }  }
   

Legend:
Removed from v.1.8  
changed lines
  Added in v.1.9

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26