• 大小: 8KB
    文件类型: .rar
    金币: 2
    下载: 1 次
    发布日期: 2021-05-07
  • 语言: C/C++
  • 标签: SAR  CS  成像  C++  仿真  

资源简介

机载条带模式、点阵目标、CS算法。complex.h是定义复数类的头文件;vector.h是定义三维向量类的头文件; watch.h是复数矩阵的输出头文件;echo_m.cpp是生成回波的仿真程序;deal_m.cpp是成像处理程序;

资源截图

代码片段和文件信息

#include “watch.h“

//系统参数
#define lamda 0.0175 //载波波长单位m
#define Vlight 3e8 //光速,单位m/s
#define Tr 5.0 //脉冲长度,单位us
#define Kr 12.0 //脉冲调频率,单位MHz/us
#define Fr 100.0 //距离向采样率,单位MHz
#define PRF 2000.0 //脉冲重复频率,单位Hz
#define Vradar 1770.0 //平台速度,单位m/s
#define H 18000.0 //平台高度,单位m
#define R0 18000*sqrt(2) //零多普勒斜距 18000*sqrt(2)

#define seta 60*Pi/180 //中心斜视角

//图像大小
#define Na 2048
#define Nr 2048
#define pwra 11
#define pwrr 11

//方位向距离徙动因子
double D(double fa)
{
double z;
z=fa*fa*lamda*lamda/(4*Vradar*Vradar);
z=1-z;
z=sqrt(z);
return z;
}

//与目标和方位相关的距离调频率
//单位MHz/us
double Km(double ddouble fa)
{
double z;
z=lamda*lamda*lamda*d*fa*fa;
z=z/(2*Vradar*Vradar*D(fa)*D(fa)*D(fa));
z=Kr*1e12*z/(Vlight*Vlight);
z=Kr/(1-z);
return z;
}

//三次相位补偿因子
double fai3(double ddouble fadouble fr)
{
double za;
z=Pi*d*fa*fa*pow(lamda4);
a=D(fa);
a=2*pow(a5)*Vradar*Vradar*27e6;
z=z/a*pow(fr3);
return z;
}

//cs因子
double cs(double taodouble fadouble fa_c)
{
double z;
z=Pi*Km(tao*Vlight*cos(seta)/2/1e6fa)*(D(fa_c)/D(fa)-1)*(tao-2*R0*1e6/Vlight/D(fa))*(tao-2*R0*1e6/Vlight/D(fa));
return z;
}

//与距离相关的中心斜视角sin值
double sinseta(double d)
{
double zszm;
zs=sqrt(d*d-H*H)*tan(seta);
zm=sqrt(d*d/2+(d*d-H*H)*tan(seta)*tan(seta));
zs=zs/zm;
return zs;
}

void main()
{
//读取回波
int ij;
complex ** echo;
ifstream fi;

echo=new complex*[Na];
for(i=0;i echo[i]=new complex[Nr];

fi.open(“echo_m60.txt“);
for(i=0;i for(j=0;j fi>>echo[i][j];
fi.close();

// showamp(echoNaNr“echo_m60.bmp“);

//声明参数
double fa_movfr_movfa_cfrfataotao0yita_cR;
tao0=2*R0*1e6/cos(seta)/Vlight-Nr/2/Fr;

//频谱对准
fa_c=-2*Vradar*sin(seta)/lamda;
fr_mov=Fr/2;
fa_mov=fa_c;
while(fa_mov<0)
fa_mov+=PRF;
fa_mov=fa_mov>PRF/2 ? 3*PRF/2-fa_mov : PRF/2-fa_mov;

for(i=0;i for(j=0;j {
echo[i][j]=echo[i][j]*pole(12*Pi*fa_mov*i/PRF);
echo[i][j]=echo[i][j]*pole(12*Pi*fr_mov*j/Fr);
}

//二维FFT
FFT_ar(echopwrapwrr-1);

// showamp(echoNaNr“fft_m60.bmp“);

//三次相位补偿
for(i=0;i {
fa=(i-Na/2)*PRF/Na+fa_c;
for(j=0;j {
fr=(j-Nr/2)*Fr/Nr;
echo[i][j]=echo[i][j]*pole(1fai3(R0fafr));
}
}

//距离向IFFT
FFT_r(echopwrapwrr1);

//乘以CS因子
for(i=0;i {
fa=(i-Na/2)*PRF/Na+fa_c;
for(j=0;j {
tao=tao0+j/Fr;
echo[i][j]=echo[i][j]*pole(1cs(taofafa_c));
}
}

//距离向FFT
FFT_r(echopwrapwrr-1);


//第二步相位相乘
for(i=0;i {
fa=(i-Na/2)*PRF/Na+fa_c;
for(j=0;j {
fr=(j-Nr/2)*Fr/Nr;
echo[i][j]=echo[i][j]*pole(1Pi*D(fa)*fr*fr/(Km(R0fa)*D(fa_c)));
echo[i][j]=echo[i][j]*pole(14*Pi*R0*fr*1e6*(1/D(fa)-1/D(fa_c))/Vlight);
}
}

//距离向IFFT
FFT_r(echopwrapwrr1);

//方位压缩
yita_c=R0*tan(seta)/Vradar;
for(i=0;i {
fa=(i-Na/2)*PRF/Na+fa_c;
for(j=0

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       5969  2009-09-21 22:47  SAR成像仿真c++程序\complex.h

     文件       4521  2009-06-02 15:54  SAR成像仿真c++程序\deal_m.cpp

     文件       2520  2009-05-21 19:36  SAR成像仿真c++程序\echo_m.cpp

     文件       1003  2009-05-06 17:00  SAR成像仿真c++程序\vector.h

     文件       6764  2009-09-21 23:03  SAR成像仿真c++程序\watch.h

     文件        809  2009-09-22 00:04  SAR成像仿真c++程序\说明.txt

     目录          0  2014-11-12 16:24  SAR成像仿真c++程序

----------- ---------  ---------- -----  ----

                21586                    7


评论

共有 条评论