Spectrum analyzer using DISCO-F746NG. Spectrum is calculated by FFT or linear prediction. The vowel data is in "vowel_data.hpp"

Dependencies:   BSP_DISCO_F746NG LCD_DISCO_F746NG TS_DISCO_F746NG UIT_FFT_Real mbed BUTTON_GROUP

Committer:
MikamiUitOpen
Date:
Tue Oct 09 10:34:47 2018 +0000
Revision:
6:f385940fbdb1
Parent:
0:c35b8a23a863
7

Who changed what in which revision?

UserRevisionLine numberNew contents of line
MikamiUitOpen 0:c35b8a23a863 1 //---------------------------------------------------------------
MikamiUitOpen 0:c35b8a23a863 2 // Class for spectrum analysis using linear prediction (Header)
MikamiUitOpen 0:c35b8a23a863 3 // Copyright (c) 2014 MIKAMI, Naoki, 2014/12/30
MikamiUitOpen 0:c35b8a23a863 4 //---------------------------------------------------------------
MikamiUitOpen 0:c35b8a23a863 5
MikamiUitOpen 0:c35b8a23a863 6 #ifndef LPC_ANALYZER_HPP
MikamiUitOpen 0:c35b8a23a863 7 #define LPC_ANALYZER_HPP
MikamiUitOpen 0:c35b8a23a863 8
MikamiUitOpen 0:c35b8a23a863 9 #include "fftReal.hpp"
MikamiUitOpen 0:c35b8a23a863 10 #include "Hamming.hpp"
MikamiUitOpen 0:c35b8a23a863 11 #include "LinearPrediction.hpp"
MikamiUitOpen 0:c35b8a23a863 12
MikamiUitOpen 0:c35b8a23a863 13 namespace Mikami
MikamiUitOpen 0:c35b8a23a863 14 {
MikamiUitOpen 0:c35b8a23a863 15 class LpcAnalyzer
MikamiUitOpen 0:c35b8a23a863 16 {
MikamiUitOpen 0:c35b8a23a863 17 public:
MikamiUitOpen 0:c35b8a23a863 18 LpcAnalyzer(int nData, int order, int nFft);
MikamiUitOpen 0:c35b8a23a863 19 ~LpcAnalyzer();
MikamiUitOpen 0:c35b8a23a863 20 void Execute(float xn[], float db[]);
MikamiUitOpen 0:c35b8a23a863 21 private:
MikamiUitOpen 0:c35b8a23a863 22 const int N_DATA_;
MikamiUitOpen 0:c35b8a23a863 23 const int ORDER_;
MikamiUitOpen 0:c35b8a23a863 24 const int N_FFT_;
MikamiUitOpen 0:c35b8a23a863 25
MikamiUitOpen 0:c35b8a23a863 26 HammingWindow hm_;
MikamiUitOpen 0:c35b8a23a863 27 LinearPred lp_;
MikamiUitOpen 0:c35b8a23a863 28 FftReal fft_;
MikamiUitOpen 0:c35b8a23a863 29
MikamiUitOpen 0:c35b8a23a863 30 float* xData_; // Data to be analyzed
MikamiUitOpen 0:c35b8a23a863 31 float* an_;
MikamiUitOpen 0:c35b8a23a863 32 float* xFft_; // Input for FFT
MikamiUitOpen 0:c35b8a23a863 33 Complex* yFft_; // Output of FFT
MikamiUitOpen 0:c35b8a23a863 34 float* normY_; // Powerspectrum
MikamiUitOpen 0:c35b8a23a863 35
MikamiUitOpen 0:c35b8a23a863 36 float Sqr(float x) { return x*x; }
MikamiUitOpen 0:c35b8a23a863 37 };
MikamiUitOpen 0:c35b8a23a863 38 }
MikamiUitOpen 0:c35b8a23a863 39 #endif // LPC_ANALYZER_HPP
MikamiUitOpen 0:c35b8a23a863 40