实例介绍
【实例简介】本代码详细的阐述了CSA算法的编写过程 具体参数参考合成孔径雷达成像-算法与实现
【实例截图】
【核心代码】
%% CSA算法 正侧视 %% ================================= clear;clc;close all; %%================================= % 参数设置 C=3e8; %光速 Fc=1e9; %载频 lambda=C/Fc; %波长 Xmin=-50; %方位向最小距离 Xmax=50; %方位向最大距离 Yc=10000; %观测带中心距离 Y0=500; %观测带地距宽度 V=100; %方位向速度 H=5000; %飞机高度 R0=sqrt(Yc^2 H^2); %观测带中心到飞机的位置 % RNear=sqrt((Yc-Y0)^2 H^2); % RFar=sqrt((Yc Y0)^2 H^2); % 天线参数 D=4; %实际孔径大小 Lsar=lambda*R0/D; %单孔径方位分辨率 Tsar=Lsar/V; % 一个合成孔径时间 %%================================= % 方位维参数 Ka=-2*V^2/lambda/R0; %方位调频率 Ba=abs(Ka*Tsar); %方位向带宽 PRF=Ba; %理想方位向采样率 PRT=1/PRF; %理想方位向采样间隔 display(PRF); ds=PRT; Nslow=ceil((Xmax-Xmin Lsar)/V/ds); Nslow=2^nextpow2(Nslow);%为了方便FFT sn=linspace((Xmin-Lsar/2)/V,(Xmax Lsar/2)/V,Nslow); PRT=(Xmax-Xmin Lsar)/V/Nslow;%实际采样间隔 PRF=1/PRT;%实际采样率 display(PRF); ds=PRT;%实际采样间隔 %%================================= % 距离维参数 Tr=5e-6; %调频周期 Br=30e6; %调频带宽 Kr=Br/Tr; %调频率 Fsr=3*Br; %采样率 dt=1/Fsr; %采样时间 Rmin=sqrt((Yc-Y0)^2 H^2); Rmax=sqrt((Yc Y0)^2 H^2 (Lsar/2)^2); Nfast=ceil(2*(Rmax-Rmin)/C/dt Tr/dt); Nfast=2^nextpow2(Nfast); tm=linspace(2*Rmin/C-Tr/2,2*Rmax/C Tr/2,Nfast); dt=(2*Rmax/C Tr-2*Rmin/C)/Nfast; %实际采样时间 Fsr=1/dt;%实际采样频率 RNear=Rmin-Tr/2*C/2;%近距 RFar=Rmax Tr/2*C/2;%远距 %%================================= % 分辨率 DY=C/2/Br; DX=D/2; display(DY); display(DX); %%================================= % 目标参数 Ntarget=3; %format [x, y, reflectivity] Ptarget=[(Xmin Xmax)/2,Yc,1 %方位向 距离向 反射系数 (Xmin Xmax)/2,Yc-Y0/2,1 (Xmin Xmax)/2,Yc Y0/2,1]; %%================================= % 产生回波数据 T=Ptarget; Srnm=zeros(Nslow,Nfast); for k=1:1:Ntarget sigma=T(k,3);%反射系数 Dslow=sn*V-T(k,1);%方位向 R=sqrt(Dslow.^2 T(k,2)^2 H^2);%瞬时斜距 tau=2*R/C;%时延 Dfast=ones(Nslow,1)*tm-tau'*ones(1,Nfast);%tau-2*R/c phase=pi*Kr*Dfast.^2-(4*pi/lambda)*(R'*ones(1,Nfast));%相位 Srnm=Srnm sigma*exp(1i*phase).*(-Tr/2<Dfast&Dfast<Tr/2).*((abs(Dslow)<Lsar/2)'*ones(1,Nfast)); end figure; mesh(abs(Srnm)); view(2); xlabel('距离向');ylabel('方位向');title('时域图像') axis tight %% %%================================= % 傅立叶变换,转换到距离多普勒域(FFT思路值得参考) SrnmTKx=zeros(Nslow,Nfast); for k = 1:Nfast SrnmTKx(:,k) = fftshift(fft(Srnm(:,k))); end figure; mesh(abs(SrnmTKx)); view(2); %%从上面往下看 xlabel('距离向');ylabel('方位向');title('方位向FFT图像') axis tight %% DR = linspace(RNear,RFar,Nfast); dx = ds*V; Kx = linspace(-1/2,1/2,Nslow)*PRF;%fn W = linspace(-1/2,1/2,Nfast)*Fsr;%ftau D_Kx_V = sqrt(1-(C*Kx).^2/(4*V^2*Fc^2));%徙动因子D %Km = Kr./(1-(Kr*C*R0*Kx.^2)./(2*V^2*Fc^3*D_Kx_V.^3)); % 新的调频率 Km = Kr./(1-(Kr*C*(ones(Nslow,1)*DR).*((Kx.^2).'*ones(1,Nfast)))./(2*V^2*Fc^3*(D_Kx_V.^3).'*ones(1,Nfast))); % 新的调频率 tmN = ones(Nslow,1)*tm - (2*R0./(C*D_Kx_V)).'*ones(1,Nfast);%参考距离是R0 Kxref = 0;%由于参考距离是R0 因此徙动因子是1 可知方位频率Kxref=0 D_Kxref_V = sqrt(1-(C*Kxref)^2/(4*V^2*Fc^2)); % 与变标方程进行相乘 %SrnmTKx = SrnmTKx.*exp(1i*pi*Km.'*ones(1,Nfast).*(D_Kxref_V./(D_Kx_V.'*ones(1,Nfast))-1).*tmN.^2); SrnmTKx = SrnmTKx.*exp(1i*pi*Km.*(D_Kxref_V./(D_Kx_V.'*ones(1,Nfast))-1).*tmN.^2); Hf=exp(-j*pi*Kr*Dfast.^2).*(-Tr/2<Dfast&Dfast<Tr/2).*((abs(Dslow)<Lsar/2)'*ones(1,Nfast)); % sr_cmps=ifty(fty(Hf).*fty(SrnmTKx1)); % sr_cmp=ifty(fty(Hf).*fty(SrnmTKx)); % figure % mesh(abs(sr_cmps)),view(2);axis tight % figure % mesh(abs(sr_cmp)),view(2);axis tight % mesh(abs(SrnmTKx1)),view(2);axis tight %% % 距离维匹配滤波 for n = 1:Nslow SrnmTKx(n,:) = fftshift(fft(SrnmTKx(n,:))); end Refr = exp(1i*pi*(ones(Nslow,1)*W).^2.*(D_Kx_V.'*ones(1,Nfast)./D_Kxref_V./Km ) ); SrnmTKx = SrnmTKx.*Refr; figure; mesh(abs(SrnmTKx)); view(2); xlabel('距离向');ylabel('方位向');title('二维频域图像') axis tight %% % 一致RCM RCMbulk = exp( 1i*4*pi/C*R0*ones(Nslow,1)*W.*( (1./D_Kx_V-1./D_Kxref_V).'*ones(1,Nfast)) ); %RCMbulk = exp( 1i*4*pi/C*(ones(Nslow,1)*(W.*DR)).*( (1./D_Kx_V-1./D_Kxref_V).'*ones(1,Nfast)) ); SrnmTKx = SrnmTKx.*RCMbulk; figure; mesh(abs(SrnmTKx)); view(2); xlabel('距离向');ylabel('方位向');title('一致RCM图像') axis tight %% for n = 1:Nslow SrnmTKx(n,:) = ifft(fftshift(SrnmTKx(n,:))); end % 方位维相位补偿 Dphase1 = 4*pi*Fc*(ones(Nslow,1)*DR).*(D_Kx_V.'*ones(1,Nfast))./C;%距离相关的方位调制 %Dphase2 = -4*pi/C^2*Km.'*ones(1,Nfast).*(1-(D_Kx_V./D_Kxref_V).'*ones(1,Nfast)).*( (ones(Nslow,1)*DR)./(D_Kx_V.'*ones(1,Nfast)) - R0./(D_Kx_V.'*ones(1,Nfast))).^2; Dphase2 = -4*pi/C^2*Km.*(1-(D_Kx_V./D_Kxref_V).'*ones(1,Nfast)).*( (ones(Nslow,1)*DR)./(D_Kx_V.'*ones(1,Nfast)) - R0./(D_Kx_V.'*ones(1,Nfast))).^2; %附加相位补偿 SrnmTKx = SrnmTKx.*exp(1i*Dphase1).*exp(1i*Dphase2); figure; mesh(abs(SrnmTKx)); view(2); xlabel('距离向');ylabel('方位向');title('方位FFT图像') axis tight %% for n = 1:Nfast SrnmTKx(:,n) = ifft(SrnmTKx(:,n)); end figure; mesh(abs(SrnmTKx)); view(2); view(2); xlabel('距离向');ylabel('方位向');title('最后图像') axis tight
好例子网口号:伸出你的我的手 — 分享!
相关软件
小贴士
感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。
- 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
- 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
- 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
- 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。
关于好例子网
本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明
网友评论
我要评论