📄 sar.h
字号:
// 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_)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -