50 std::vector<std::vector<float>>
filterSpectrum(std::vector<float>& inputSignal);
62 void drawSpectrogram(juce::Image& image,
const std::vector<std::vector<float>>& erbSTFTPowMatrix);
67 static std::vector<float>
erbs2Hz(
const std::vector<float>& erbsVector);
68 static Eigen::VectorXf
erbs2Hz(
const Eigen::VectorXf& erbsVector);
71 static std::vector<float>
hz2Erbs(
const std::vector<float>& hzVector);
72 static Eigen::VectorXf
hz2Erbs(
const Eigen::VectorXf& hzVector);
73 static float hz2Erbs(
const float hz);
81 std::vector<float>
applyEarFilter(std::vector<float>& inputSignal);
88 std::vector<float>
gtWindow(
int numberOfPoints,
float bParam,
int order);
95 std::vector<float>
cferb(std::vector<float> cf);
96 float cferb(
const float cf);
97 double cferb(
const double cf);
109 std::vector<float>
erbSpace(
float low,
float hi,
int N);
115 float centroid(
const std::vector<float>& x);
179 void writeMatrixToFile(
const std::vector<std::vector<float>>& matrix,
const std::string& filename)
181 std::ofstream outputFile(filename);
182 if (!outputFile.is_open())
184 DBG(
"Failed to open file: ");
188 for (
const auto& row : matrix)
190 for (
const auto& value : row)
192 outputFile << value <<
" ";
juce::dsp::IIR::Coefficients< float > CoefficientsIIR
Definition ERB_FFTSpectrogram.h:10
juce::dsp::FIR::Coefficients< float > CoefficientsFIR
Definition ERB_FFTSpectrogram.h:11
FFT-based cochlear power spectrogram.
Definition ERB_FFTSpectrogram.h:35
static std::vector< float > hz2Erbs(const std::vector< float > &hzVector)
Definition ERB_FFTSpectrogram.cpp:403
float centroid(const std::vector< float > &x)
Definition ERB_FFTSpectrogram.cpp:278
ERB_FFTSpectrogram()
Definition ERB_FFTSpectrogram.cpp:10
float m_sampleRate
Definition ERB_FFTSpectrogram.h:141
void drawSpectrogram(juce::Image &image, const std::vector< std::vector< float > > &erbSTFTPowMatrix)
Definition ERB_FFTSpectrogram.cpp:337
const float m_exponent
Definition ERB_FFTSpectrogram.h:152
EarFilter m_earFilter
Definition ERB_FFTSpectrogram.h:146
std::vector< std::vector< double > > m_wfunct
Definition ERB_FFTSpectrogram.h:142
int m_numChans
Definition ERB_FFTSpectrogram.h:160
const float m_scalingConstant
Definition ERB_FFTSpectrogram.h:174
std::vector< float > getERBSpace()
Definition ERB_FFTSpectrogram.h:64
void setSampleRate(float fs)
Definition ERB_FFTSpectrogram.cpp:18
std::vector< float > cferb(std::vector< float > cf)
Definition ERB_FFTSpectrogram.cpp:234
std::vector< float > erbSpace(float low, float hi, int N)
Definition ERB_FFTSpectrogram.cpp:259
int m_wSize
Definition ERB_FFTSpectrogram.h:170
std::vector< float > m_gtWin
Definition ERB_FFTSpectrogram.h:171
std::vector< std::vector< float > > filterSpectrum(std::vector< float > &inputSignal)
Definition ERB_FFTSpectrogram.cpp:38
float getNextPowerOfTwo(float value)
Definition ERB_FFTSpectrogram.cpp:378
std::vector< float > applyEarFilter(std::vector< float > &inputSignal)
Definition ERB_FFTSpectrogram.cpp:102
static std::vector< float > erbs2Hz(const std::vector< float > &erbsVector)
Definition ERB_FFTSpectrogram.cpp:388
float m_b0
Definition ERB_FFTSpectrogram.h:168
void buildFilterBank(int startSamplesSize)
Definition ERB_FFTSpectrogram.cpp:112
void writeMatrixToFile(const std::vector< std::vector< float > > &matrix, const std::string &filename)
Definition ERB_FFTSpectrogram.h:179
int m_fftSize
Definition ERB_FFTSpectrogram.h:175
int m_hopSizeSamples
Definition ERB_FFTSpectrogram.h:150
std::vector< std::vector< float > > calculatePowerSpectrum(const std::vector< std::vector< float > > &inFrames)
Definition ERB_FFTSpectrogram.cpp:295
std::vector< float > gtWindow(int numberOfPoints, float bParam, int order)
Definition ERB_FFTSpectrogram.cpp:212
std::vector< float > m_cfArray
Definition ERB_FFTSpectrogram.h:144
float m_bw0
Definition ERB_FFTSpectrogram.h:167
float m_lo
Definition ERB_FFTSpectrogram.h:156
float m_hi
Definition ERB_FFTSpectrogram.h:158
float m_ERD
Definition ERB_FFTSpectrogram.h:169
float m_hopSizeSec
Definition ERB_FFTSpectrogram.h:149
Definition EarFilter.h:23
Definition AirAbsorptionFilter.cpp:2