資源簡介
機載條帶模式、點陣目標、CS算法。complex.h是定義復數(shù)類的頭文件;vector.h是定義三維向量類的頭文件; watch.h是復數(shù)矩陣的輸出頭文件;echo_m.cpp是生成回波的仿真程序;deal_m.cpp是成像處理程序;

代碼片段和文件信息
#include?“watch.h“
//系統(tǒng)參數(shù)
#define?lamda?0.0175 //載波波長單位m
#define?Vlight?3e8 //光速,單位m/s
#define?Tr?5.0 //脈沖長度,單位us
#define?Kr?12.0 //脈沖調(diào)頻率,單位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;
}
//與目標和方位相關(guān)的距離調(diào)頻率
//單位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;
}
//與距離相關(guān)的中心斜視角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“);
//聲明參數(shù)
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
評論
共有 條評論