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

Files at this revision

API Documentation at this revision

Comitter:
MikamiUitOpen
Date:
Sun Nov 04 10:41:02 2018 +0000
Parent:
5:fcc1b0b4737e
Child:
7:5ba884060d3b
Commit message:
7

Changed in this revision

MySpectrogram/AnalyzerBase.cpp Show annotated file Show diff for this revision Revisions of this file
MySpectrogram/AnalyzerBase.hpp Show annotated file Show diff for this revision Revisions of this file
MySpectrogram/FFT_Analyzer.cpp Show annotated file Show diff for this revision Revisions of this file
MySpectrogram/FFT_Analyzer.hpp Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/MySpectrogram/AnalyzerBase.cpp	Sun Oct 07 05:15:04 2018 +0000
+++ b/MySpectrogram/AnalyzerBase.cpp	Sun Nov 04 10:41:02 2018 +0000
@@ -1,7 +1,7 @@
 //-------------------------------------------------------
 //  Base abstract class for spectrum analysis
 //
-//  2017/02/09, Copyright (c) 2017 MIKAMI, Naoki
+//  2018/11/04, Copyright (c) 2018 MIKAMI, Naoki
 //-------------------------------------------------------
 
 #include "AnalyzerBase.hpp"
@@ -18,7 +18,13 @@
         // 高域強調
         for (int n=0; n<N_DATA_-1; n++)
             xData_[n] = xn[n+1] - b1_*xn[n];
-            
+
+        // 直流分を除去
+        float sum = 0;
+        for (int n=0; n<N_FFT_; n++) sum = sum + xData_[n];
+        float ave = sum/N_FFT_;
+        for (int n=0; n<N_FFT_; n++) xData_[n] = xData_[n] - ave;
+
         // 窓掛け
         wHm_.Execute(xData_, wData_);
             
--- a/MySpectrogram/AnalyzerBase.hpp	Sun Oct 07 05:15:04 2018 +0000
+++ b/MySpectrogram/AnalyzerBase.hpp	Sun Nov 04 10:41:02 2018 +0000
@@ -1,7 +1,7 @@
 //-------------------------------------------------------
 //  Base abstract class for spectrum analysis (Header)
 //
-//  2017/02/09, Copyright (c) 2017 MIKAMI, Naoki
+//  2018/11/04, Copyright (c) 2018 MIKAMI, Naoki
 //-------------------------------------------------------
 
 #ifndef BASE_ANALYZER_HPP
--- a/MySpectrogram/FFT_Analyzer.cpp	Sun Oct 07 05:15:04 2018 +0000
+++ b/MySpectrogram/FFT_Analyzer.cpp	Sun Nov 04 10:41:02 2018 +0000
@@ -1,7 +1,7 @@
 //-------------------------------------------------------
 //  Class for spectrum analysis using FFT
 //
-//  2017/02/04, Copyright (c) 2017 MIKAMI, Naoki
+//  2018/11/04, Copyright (c) 2018 MIKAMI, Naoki
 //-------------------------------------------------------
 
 #include "FFT_Analyzer.hpp"
@@ -17,7 +17,7 @@
         fft_.Execute(xn, yFft_);    // Execute FFT
         
         // Translate to dB
-        for (int n=0; n<=N_FFT_/2; n++)
+        for (int n=2; n<=N_FFT_/2; n++)
             yn[n] = 10.0f*log10f(Norm(yFft_[n]));
     }
 }
--- a/MySpectrogram/FFT_Analyzer.hpp	Sun Oct 07 05:15:04 2018 +0000
+++ b/MySpectrogram/FFT_Analyzer.hpp	Sun Nov 04 10:41:02 2018 +0000
@@ -1,7 +1,7 @@
 //-------------------------------------------------------
 //  Class for spectrum analysis using FFT (Header)
 //
-//  2017/02/04, Copyright (c) 2017 MIKAMI, Naoki
+//  2018/11/04, Copyright (c) 2018 MIKAMI, Naoki
 //-------------------------------------------------------
 
 #ifndef FFT_ANALYZER_HPP
--- a/main.cpp	Sun Oct 07 05:15:04 2018 +0000
+++ b/main.cpp	Sun Nov 04 10:41:02 2018 +0000
@@ -14,7 +14,7 @@
 //      ● 出力  A2: 左チャンネル,D13 右チャンネル
 //             入力をそのまま出力する
 //
-//  2018/10/07, Copyright (c) 2018 MIKAMI, Naoki
+//  2018/11/04, Copyright (c) 2018 MIKAMI, Naoki
 //---------------------------------------------------------------------
 
 #include "mbed.h"