Files
radar_data_process/data_process_class_dll/track_asso.h
T

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