资源简介
机载条带模式、点阵目标、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
- 上一篇:C++大学教程第九版课后部分答案
- 下一篇:用openglMFC实现的魔方
相关资源
- 基于CS的TCP文件传输程序设计
- 基于空调项目的Autosar 架构的设计.d
- C语言进阶源码---基于graphics实现图书
- 各种关于CAsyncSocketCSocket内幕及其用法
- UNIX/LINUX下C语言中文短信UCS2编码和解
- WGS84 北京54 西安80 CGCS2000 布尔沙七参
- 我见过最漂亮的CS仿真程序openGL和C+
- C++编写的模拟流体运动
- CAsyncSocket异步实现服务器与客户端
- NOIP2019csp-j 初赛普及组 C++试题及答案
- C++写太阳/月球坐标计算,在地固坐标
- VC++,CSocket实现网络聊天,可发文件,
- libcstl数据结构和常用的算法库
- MFC Csocket实现点对点文件传输
- CSocket端口扫描源代码MFC、VC++耿网出品
- sart算法重建程序c++
- pimcsd_toolbox
- C++实现cs模式下文件传输
- 运用CST方法拟合NACA翼型
- 最好的CS游戏opengl、C++实现
- 康威生命游戏C语言并行实现intrinsic
- 服务端和客户端(MFC CSocket)
- 实验6-基于CSocket的网络程序设计
- VC++6.0编译通过的读写CSV文件的代码及
- 基于TCP的网络聊天室的设计一步一步
- 安徽大学操作系统实验八基于扫描的
- MFC 使用sqlite3
- 3D枪战射击游戏cs简单版源代码
- MFC42UD.libMFCd42UD.libMFCN42UD.libMFC042UD.li
- FastReport v4.13 CS Demo Delphi
评论
共有 条评论