FFT アナライザ このプログラムの説明は,CQ出版社「トランジスタ技術」の2021年10月号から開始された連載記事「STM32マイコンではじめるPC計測」の中にあります.このプログラムといっしょに使うPC側のプログラムについても同誌を参照してください.
Dependencies: Array_Matrix mbed SerialTxRxIntr DSP_ADDA UIT_FFT_Real Window
Diff: main.cpp
- 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 フィルタの実行