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/MSeq16.hpp	Thu Sep 09 08:52:33 2021 +0000
+++ b/MSeq16.hpp	Wed Nov 03 01:29:16 2021 +0000
@@ -1,7 +1,7 @@
 //---------------------------------------------------------
-//  M 系列信号発生器(N = 16)
+//	M 系列信号発生器(N = 16)
 //
-//  2020/10/17, Copyright (c) 2020 MIKAMI, Naoki
+//	2021/09/28, Copyright (c) 2021 MIKAMI, Naoki
 //---------------------------------------------------------
 
 #include "mbed.h"
@@ -11,32 +11,25 @@
 
 namespace Mikami
 {
-    class MSeq16
-    {
-    public:
-        MSeq16() : reg_(1) {}
+	class MSeq16
+	{
+	public:
+		MSeq16() : reg_(1) {}
 
-        // 戻り値: 1 => 1, 0 => -1
-        int Execute()
-        {
-            if ((reg_ & B_M_) == B_M_)
-            {
-                reg_ = ((reg_ ^ XOR_) << 1) | 1;    // 1 の場合の処理
-                return 1;
-            }
-            else
-            {
-                reg_ = reg_ << 1;                   // 0 の場合の処理
-                return -1;
-            }
-        }
-    private:
-        static const uint16_t XOR_ = (1 << (2-1))
-                                   | (1 << (3-1))
-                                   | (1 << (5-1));  // XOR の位置に対応する定数
-        static const uint16_t B_M_ = 1 << (16-1);   // 16 段目に相当するビットを調べる
-        
-        uint16_t reg_;
-    };
+		// 戻り値: 0 => -0.5, 1 => 0.5
+		float Execute()
+		{
+			msb_ = reg_ >> 15;
+			reg_ = ((reg_ ^ XOR_[msb_]) << 1) | msb_;
+			return RET_[msb_];
+		}
+	private:
+		static const uint16_t XOR_[2];	// XOR の一方の入力
+		static const float RET_[2];		// 戻り値として使用
+		uint16_t reg_;	// 16 段の D フリップ・フロップに対応
+		uint16_t msb_;	// 16 段目に相当するビット
+	};
+	const uint16_t MSeq16::XOR_[2] = { 0, 0x16 };
+	const float MSeq16::RET_[2] = { -0.5f, 0.5f };	
 }
-#endif  // MSEQ16_HPP
\ No newline at end of file
+#endif	// MSEQ16_HPP
\ No newline at end of file