FFT アナライザ このプログラムの説明は,CQ出版社「トランジスタ技術」の2021年10月号から開始された連載記事「STM32マイコンではじめるPC計測」の中にあります.このプログラムといっしょに使うPC側のプログラムについても同誌を参照してください.

Dependencies:   Array_Matrix mbed SerialTxRxIntr DSP_ADDA UIT_FFT_Real Window

Revision:
1:d9dbfbe95c8d
Parent:
0:e5fc70976c00
--- a/main.cpp	Thu Sep 09 08:52:33 2021 +0000
+++ b/main.cpp	Wed Nov 03 01:29:16 2021 +0000
@@ -8,7 +8,7 @@
 //      ● 入力:  A1
 //      ● 白色雑音の出力:A2
 //
-//  2021/07/11, Copyright (c) 2021 MIKAMI, Naoki
+//  2021/10/22, Copyright (c) 2021 MIKAMI, Naoki
 //---------------------------------------------------------------------
 
 #include <string>
@@ -30,14 +30,14 @@
 const int N_FFT_ = 1024;            // FFT の点数
 const int N_FRAME_ = N_FFT_;        // 1フレーム当たり標本化するデータ数
 const int N_SPC_ = N_FFT_/2 + 1;    // 有効なスペクトルの点数
-const int RATIO_ = 10;              // オーバーサンプリングの倍率
+const int RATIO_ = 10;              // ダウンサンプリングの倍率:1/10
 const int N_TX_ = 501;              // PC に転送するデータ数
 
-DoubleBuffer<float> buf_(N_FRAME_);     // AD の結果を保存するバッファ
+DoubleBuffer buf_(N_FRAME_);            // ダウンサンプリングの結果を保存するバッファ
 DspAdcIntr myAdc_(10.24f*RATIO_, A1);   // 標本化周波数: 102.4 kHz
-DspDac myDac;
+DspDac myDac_;
 IirCascade df1_(ORDER1_, CK1_, G01_);   // ダウンサンプリング用 Anti-alias フィルタ
-IirCascade df2_(ORDER2_, CK2_, G02_);   // 白色雑音発生用低域通貨フィルタ
+IirCascade df2_(ORDER2_, CK2_, G02_);   // 白色雑音発生用低域通過フィルタ
 MSeq16 mSeq_;                           // M 系列信号発生器(N = 16)
 
 // ADC 変換終了割り込みに対する割り込みサービス・ルーチン
@@ -48,7 +48,7 @@
     float xn = myAdc_.Read();   // AD 変換された値を取得
 
     float noise = df2_.Execute(mSeq_.Execute());
-    myDac.Write(0.8f*noise);    // 白色雑音出力
+    myDac_.Write(1.6f*noise);   // 白色雑音出力
 
     float yn = df1_.Execute(xn);    // ダウンサンプリング用 Anti-alias フィルタの実行