位相一致法
PhaseMethod.h
- Committer:
- k0050288
- Date:
- 2018-08-20
- Revision:
- 0:05d61debb1fe
File content as of revision 0:05d61debb1fe:
/* ** 位相一致法の計算をする ** 2018/07/04 */ #ifndef _PHASEMETHOD_H #define _PHASEMETHOD_H #include "mbed.h" #include "Adc.h" #include "Thermometer.h" #define INT_WINDOW 1500 // 積分窓:1ms分のデータ(AD変換が1.5MHzのため) #define REF_VALUE 2500.0 // 積分窓を開始する闘値 #define M_PI 3.141592653589793 // 円周率 #define SYNCHRO_DELAY 255.0 / 1000000.0 // Nucleo同士の同期遅れ 255µs (平均 (誤差最大5µs)) #define SAMPLING 1.0 / (1.5 * 1000000.0) // サンプリング 1.5MHz を秒に変換 #define PERIOD 2.0 / 1000.0 // syncPatternの周期 #define TX_SYNC 1.0 / 1000.0 // 送信側で生成したsyncPatternの中心の時間 class PhaseMethod{ private: Adc* adc; Thermometer* thermometer; double sinc(double x); // 標本化関数 public: void init(Adc* adc, Thermometer* thermometer); void selectSync(); void calculation(); double epoch; double TxTime; // 伝播時間 double arriveTime; // 到達時間 double distance; // 距離 double I1; double I2; double Q1; double Q2; int calAdcVal[INT_WINDOW]; // 位相一致で使う値を格納 }; #endif