Files
radar_data_process/data_process_class_dll/track_asso.h
T
2026-09-07 14:29:24 +08:00

58 lines
2.1 KiB
C++

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