位相一致法

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers PhaseMethod.h Source File

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