位相一致法
Embed:
(wiki syntax)
Show/hide line numbers
PhaseMethod.h
00001 /* 00002 ** 位相一致法の計算をする 00003 ** 2018/07/04 00004 */ 00005 00006 #ifndef _PHASEMETHOD_H 00007 #define _PHASEMETHOD_H 00008 00009 #include "mbed.h" 00010 #include "Adc.h" 00011 #include "Thermometer.h" 00012 00013 #define INT_WINDOW 1500 // 積分窓:1ms分のデータ(AD変換が1.5MHzのため) 00014 #define REF_VALUE 2500.0 // 積分窓を開始する闘値 00015 #define M_PI 3.141592653589793 // 円周率 00016 #define SYNCHRO_DELAY 255.0 / 1000000.0 // Nucleo同士の同期遅れ 255µs (平均 (誤差最大5µs)) 00017 #define SAMPLING 1.0 / (1.5 * 1000000.0) // サンプリング 1.5MHz を秒に変換 00018 #define PERIOD 2.0 / 1000.0 // syncPatternの周期 00019 #define TX_SYNC 1.0 / 1000.0 // 送信側で生成したsyncPatternの中心の時間 00020 00021 class PhaseMethod{ 00022 private: 00023 Adc* adc; 00024 Thermometer* thermometer; 00025 00026 double sinc(double x); // 標本化関数 00027 00028 public: 00029 void init(Adc* adc, Thermometer* thermometer); 00030 void selectSync(); 00031 void calculation(); 00032 00033 double epoch; 00034 double TxTime; // 伝播時間 00035 double arriveTime; // 到達時間 00036 double distance; // 距離 00037 double I1; 00038 double I2; 00039 double Q1; 00040 double Q2; 00041 00042 int calAdcVal[INT_WINDOW]; // 位相一致で使う値を格納 00043 }; 00044 #endif
Generated on Sat Jul 16 2022 04:24:16 by 1.7.2