Realtime sound spectrogram using FFT or linear prediction. Spectrogram is displayed on the display of PC. リアルタイム・スペクトログラム.解析の手法:FFT,線形予測法.スペクトログラムは PC のディスプレー装置に表示される.PC 側のプログラム:F446_Spectrogram.
Dependencies: Array_Matrix mbed SerialTxRxIntr F446_AD_DA UIT_FFT_Real
LPC_Analyzer.cpp
00001 //------------------------------------------------------- 00002 // Class for spectrum analysis using linear prediction 00003 // 00004 // 2017/02/11, Copyright (c) 2017 MIKAMI, Naoki 00005 //------------------------------------------------------- 00006 00007 #include "LPC_Analyzer.hpp" 00008 00009 namespace Mikami 00010 { 00011 LpcAnalyzer::LpcAnalyzer(int nData, int nFft, int order) 00012 : AnalyzerBase(nData, nFft, nData-1), order_(order), 00013 lp_(nData-1, order), 00014 an_(order), xFft_(nFft), yFft_(nFft/2+1) {} 00015 00016 void LpcAnalyzer::Analyze(const float xn[], float yn[]) 00017 { 00018 float em; 00019 lp_.Execute(xn, an_, em); 00020 00021 // To spectrum 00022 xFft_[0] = 1.0f; 00023 for (int n=0; n<order_; n++) xFft_[n+1] = -an_[n]; 00024 for (int n=order_+1; n<N_FFT_; n++) xFft_[n] = 0.0f; 00025 fft_.Execute(xFft_, yFft_); // execute FFT 00026 00027 // Translate to dB 00028 for (int n=0; n<=N_FFT_/2; n++) 00029 yn[n] = 10.0f*log10f(em/Norm(yFft_[n])); 00030 } 00031 }
Generated on Mon Jul 25 2022 07:38:49 by 1.7.2