位相一致法
PhaseMethod.h@0:05d61debb1fe, 2018-08-20 (annotated)
- Committer:
- k0050288
- Date:
- Mon Aug 20 02:28:15 2018 +0000
- Revision:
- 0:05d61debb1fe
?????
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
k0050288 | 0:05d61debb1fe | 1 | /* |
k0050288 | 0:05d61debb1fe | 2 | ** 位相一致法の計算をする |
k0050288 | 0:05d61debb1fe | 3 | ** 2018/07/04 |
k0050288 | 0:05d61debb1fe | 4 | */ |
k0050288 | 0:05d61debb1fe | 5 | |
k0050288 | 0:05d61debb1fe | 6 | #ifndef _PHASEMETHOD_H |
k0050288 | 0:05d61debb1fe | 7 | #define _PHASEMETHOD_H |
k0050288 | 0:05d61debb1fe | 8 | |
k0050288 | 0:05d61debb1fe | 9 | #include "mbed.h" |
k0050288 | 0:05d61debb1fe | 10 | #include "Adc.h" |
k0050288 | 0:05d61debb1fe | 11 | #include "Thermometer.h" |
k0050288 | 0:05d61debb1fe | 12 | |
k0050288 | 0:05d61debb1fe | 13 | #define INT_WINDOW 1500 // 積分窓:1ms分のデータ(AD変換が1.5MHzのため) |
k0050288 | 0:05d61debb1fe | 14 | #define REF_VALUE 2500.0 // 積分窓を開始する闘値 |
k0050288 | 0:05d61debb1fe | 15 | #define M_PI 3.141592653589793 // 円周率 |
k0050288 | 0:05d61debb1fe | 16 | #define SYNCHRO_DELAY 255.0 / 1000000.0 // Nucleo同士の同期遅れ 255µs (平均 (誤差最大5µs)) |
k0050288 | 0:05d61debb1fe | 17 | #define SAMPLING 1.0 / (1.5 * 1000000.0) // サンプリング 1.5MHz を秒に変換 |
k0050288 | 0:05d61debb1fe | 18 | #define PERIOD 2.0 / 1000.0 // syncPatternの周期 |
k0050288 | 0:05d61debb1fe | 19 | #define TX_SYNC 1.0 / 1000.0 // 送信側で生成したsyncPatternの中心の時間 |
k0050288 | 0:05d61debb1fe | 20 | |
k0050288 | 0:05d61debb1fe | 21 | class PhaseMethod{ |
k0050288 | 0:05d61debb1fe | 22 | private: |
k0050288 | 0:05d61debb1fe | 23 | Adc* adc; |
k0050288 | 0:05d61debb1fe | 24 | Thermometer* thermometer; |
k0050288 | 0:05d61debb1fe | 25 | |
k0050288 | 0:05d61debb1fe | 26 | double sinc(double x); // 標本化関数 |
k0050288 | 0:05d61debb1fe | 27 | |
k0050288 | 0:05d61debb1fe | 28 | public: |
k0050288 | 0:05d61debb1fe | 29 | void init(Adc* adc, Thermometer* thermometer); |
k0050288 | 0:05d61debb1fe | 30 | void selectSync(); |
k0050288 | 0:05d61debb1fe | 31 | void calculation(); |
k0050288 | 0:05d61debb1fe | 32 | |
k0050288 | 0:05d61debb1fe | 33 | double epoch; |
k0050288 | 0:05d61debb1fe | 34 | double TxTime; // 伝播時間 |
k0050288 | 0:05d61debb1fe | 35 | double arriveTime; // 到達時間 |
k0050288 | 0:05d61debb1fe | 36 | double distance; // 距離 |
k0050288 | 0:05d61debb1fe | 37 | double I1; |
k0050288 | 0:05d61debb1fe | 38 | double I2; |
k0050288 | 0:05d61debb1fe | 39 | double Q1; |
k0050288 | 0:05d61debb1fe | 40 | double Q2; |
k0050288 | 0:05d61debb1fe | 41 | |
k0050288 | 0:05d61debb1fe | 42 | int calAdcVal[INT_WINDOW]; // 位相一致で使う値を格納 |
k0050288 | 0:05d61debb1fe | 43 | }; |
k0050288 | 0:05d61debb1fe | 44 | #endif |