66 lines
2.4 KiB
C++
66 lines
2.4 KiB
C++
#ifndef TRACK_ASSO_H
|
|
#define TRACK_ASSO_H
|
|
|
|
|
|
#include "data_process_class_dll.h"
|
|
#include "parameters.h"
|
|
#include "struct.h"
|
|
#include <QVector>
|
|
|
|
using namespace std;
|
|
|
|
|
|
|
|
/******************************* 航迹关联类 **************************************************/
|
|
class Track_Asso
|
|
{
|
|
public:
|
|
int track_asso_process(QVector<PointRecv> *point_recv_1, //点迹文件
|
|
QVector<PointRecv> *point_recv_2,
|
|
QVector <Trust_Track> *trust_track, //航迹文件
|
|
struct Track Trust_Track_Output[MAX_TRACK_NUM][10], //更新航迹信息
|
|
int *Trust_track_num_Output, //更新航迹数
|
|
struct RadarPara Work_Parameter //工作参数
|
|
);
|
|
|
|
|
|
Track_Asso();
|
|
private:
|
|
|
|
//要处理的点迹
|
|
QVector<PointRecv> point_process;
|
|
|
|
|
|
//IMM
|
|
void model_interaction(QVector <Trust_Track> *trust_track); //模型交互
|
|
|
|
|
|
void model_filter(QVector <Trust_Track> *trust_track, //滤波
|
|
struct RadarPara Work_Parameter
|
|
);
|
|
|
|
void model_output(QVector <Trust_Track> *trust_track ); //模型输出
|
|
|
|
void IMM_d_cal(float v_track,
|
|
float X1[6], float P1[6][6],
|
|
float X2[6], float P2[6][6],
|
|
float X3[6], float P3[6][6],
|
|
float Z[3], float prt,float freq_ind,
|
|
float delta_T,
|
|
float *d1,float *d2,float *d3,
|
|
struct RadarPara Work_Parameter);
|
|
|
|
void IMM_F_Q_gen(float v_track, float delta_T,float F[6][6], float Q1[6][6], float Q2[6][6], float Q3[6][6],struct RadarPara Work_Parameter);
|
|
|
|
float Pt[3][3]; //模型转移概率
|
|
|
|
|
|
|
|
//高度维更新
|
|
void track_hight_update(int updata_track_index, //更新的航迹号
|
|
int asso_point_index, //点迹号
|
|
QVector <Trust_Track> *trust_track //航迹
|
|
);
|
|
};
|
|
#endif // TRACK_ASSO_H
|