www.pudn.com > 35890064SAR.rar > SAR.h, change:2005-12-04,size:3381b


// SAR.h: interface for the CSAR class. 
// 
////////////////////////////////////////////////////////////////////// 
 
#if !defined(AFX_SAR_H__E363A952_40EB_469B_8275_3A94EEC2B24E__INCLUDED_) 
#define AFX_SAR_H__E363A952_40EB_469B_8275_3A94EEC2B24E__INCLUDED_ 
 
#if _MSC_VER > 1000 
#pragma once 
#endif // _MSC_VER > 1000 
#include <math.h> 
#include <direct.h> 
#include <complex> 
#include "Fourier.h" 
using namespace std; 
#define C 300000000 // 光速 =300000000 
#define PI 3.141592653592 
#define AREA_TARGET 0 
#define POINT_TARGET 1 
class CSAR   
{ 
public: 
	int TargetSimuType;  //通过该二值变量判断目标类型,是面目标还是点目标 
	CString  lpAreaTargetImageFileName; 
	void GetAreaInformation(CString *FileName,int *w,int *h,BYTE **lpAreaImage); 
	 	 
	/* 回波信号有关的参数 */ 
    complex<double> *LpRangeMatchFilter; //存储距离向匹配滤波器,用于距离向向压缩 
	double * LpRecSignalRe; //存储回波接收数据的实部[Na*Nr] 
    double * LpRecSignalIm; //存储回波接收数据的虚部[Na*Nr] 
    /*与SAR点目标及发射信号有关的参数*/ 
	 
	int NaEffective;//方位向采样有效点数 
    int NrEffective;//距离向采样有效点数 
	int Na;    //方位向采样点数(NaEffective最接近的2的整数次幂) 
	int Nr;    //距离向采样点数 (NrEffective最接近的2的整数次幂) 
	 
	int NTao;  //脉冲持续时间内采样点数 
	int Nrcm;   //脉冲中断时间内采样点数 Nr>= NTao + Nrcm 
		 
	double Tsyn; //综合孔径时间 
	double Rt; //SAR与目标的距离 
	double R0;  //脉冲发射时的起始距离 
	double Rbin; //距离向每像素代表的实际距离 
 
	double FR; //多普勒信号调频率 
	double KR; //发射线性调频信号调频率 
	double FS; //接收信号采样率 
	double PRF; //脉冲重复率(多普勒信号采样率) 
	double B_d; //多普勒带宽 
	double B_r; //发射信号带宽   
	double Pulsewidth;  //脉冲宽度 Tao 
	double Wavelenth;  //载波长度 c=Wavelength*f 
	double V_ami ;  //载机飞行速度 
	double A_Res;  //方位向分辨率 
	double R_Res;  //距离向分辨率 
 
	double* LpAizm_Time;  //用来存储方位向时间 
	double* LpRange_Time; //用来存储距离向时间 
    double* LpTranSignalRe; //存储SAR点目标仿真信号数据的实部 
	double* LpTranSignalIm; //存储SAR点目标仿真信号数据的虚部 
    
	void SARParaInit();  //合成孔径雷达参数初始化 
	BOOL LMFSignalProduce(); //产生线性调频信号 
	BOOL RecEchoSignal(); //接收点目标回波 
 
    /*距离多普勒R-D算法参数*/ 
	int A_in;   //方位向插值点数 
	int R_in;   //距离向插值点数 
	int RCM_in; // 距离徙动校正插值点数 
    /*距离多普勒R-D算法函数*/	 
	void EchoAzimuthCompress(); //用方位向匹配滤波器在距离多普勒域进行方位向压缩 
	void RCMC();              //在距离多普勒域进行距离徙动校正 
	void EchoRangeCompress(); //用匹配滤波器对回波信号进行距离向压缩 
	 
	/*CS算法参数*/ 
    double * LpVTaoRef;        //CS参考函数的峰值中心 
	double * LpVTao;           //存储距离向压缩后的峰值中心 
	double* LpRange_Frequency; //用来存储距离向频率 
	double* LpAizm_Frequency;  //用来存储方位向频率 
	double* LpBeta; 
	double* LpKm;  
	double* LpKsrcInv;  
	double Ref;      //CS算法的参考距离,一般取回波成像中心 
	/*CS算法函数*/ 
    void CSARangeFFT(); 
	void CSAAzimuthCompress(); //CS算法方位向压缩,最终成像  
	void CSARangeCompress();   //CS算法距离向压缩 
	void CSAAzimuthFFT();      //CS算法方位向傅氏变换,在多普勒域进行CS处理 
	void CSAChirpSacle();      //CS算法 CS处理 
	void CSAParaInit();        //CS算法参数初始化 
	CSAR(); 
	virtual ~CSAR(); 
 
}; 
 
#endif // !defined(AFX_SAR_H__E363A952_40EB_469B_8275_3A94EEC2B24E__INCLUDED_)