Gist
MFCC.h
Go to the documentation of this file.
1 //=======================================================================
22 //=======================================================================
23 
24 #ifndef __GIST__MFCC__
25 #define __GIST__MFCC__
26 
27 #define _USE_MATH_DEFINES
28 #include <vector>
29 #include <cmath>
30 #include <stddef.h>
31 
32 //=======================================================================
36 template <class T>
37 class MFCC
38 {
39 public:
40 
41  //=======================================================================
43  MFCC (int frameSize_, int samplingFrequency_);
44 
45  //=======================================================================
49  void setNumCoefficients (int numCoefficients_);
50 
54  void setFrameSize (int frameSize_);
55 
59  void setSamplingFrequency (int samplingFrequency_);
60 
61  //=======================================================================
69  void calculateMelFrequencyCepstralCoefficients (const std::vector<T>& magnitudeSpectrum);
70 
74  void calculateMelFrequencySpectrum (const std::vector<T>& magnitudeSpectrum);
75 
76  //=======================================================================
78  std::vector<T> melSpectrum;
79 
81  std::vector<T> MFCCs;
82 
83 private:
87  void initialise();
88 
95  void discreteCosineTransform (std::vector<T>& inputSignal, const std::size_t numElements);
96 
101  void calculateMelFilterBank();
102 
107  T frequencyToMel (T frequency);
108 
110  int samplingFrequency;
111 
113  int numCoefficents;
114 
116  int frameSize;
117 
119  int magnitudeSpectrumSize;
120 
122  T minFrequency;
123 
125  T maxFrequency;
126 
128  std::vector<std::vector<T> > filterBank;
129  std::vector<T> dctSignal;
130 };
131 
132 #endif /* defined(__GIST__MFCC__) */
MFCC::setFrameSize
void setFrameSize(int frameSize_)
Definition: MFCC.cpp:49
MFCC::melSpectrum
std::vector< T > melSpectrum
Definition: MFCC.h:78
MFCC::calculateMelFrequencyCepstralCoefficients
void calculateMelFrequencyCepstralCoefficients(const std::vector< T > &magnitudeSpectrum)
Definition: MFCC.cpp:65
MFCC::calculateMelFrequencySpectrum
void calculateMelFrequencySpectrum(const std::vector< T > &magnitudeSpectrum)
Definition: MFCC.cpp:77
MFCC::setNumCoefficients
void setNumCoefficients(int numCoefficients_)
Definition: MFCC.cpp:41
MFCC
Definition: MFCC.h:38
MFCC::MFCC
MFCC(int frameSize_, int samplingFrequency_)
Definition: MFCC.cpp:30
MFCC::MFCCs
std::vector< T > MFCCs
Definition: MFCC.h:81
MFCC::setSamplingFrequency
void setSamplingFrequency(int samplingFrequency_)
Definition: MFCC.cpp:57