合成孔径雷达SAR点目标仿真程序基于线性调频LFM信号 距离多普勒RD成像算法。这是理解 SAR 原理、写论文、做算法验证的标准起点。一、SAR 仿真核心参数X 波段机载 SAR%% sar_parameters.mfunctionparamsar_parameters()% SAR 系统参数X波段机载param.c3e8;% 光速 (m/s)param.fc10e9;% 载波频率 (Hz)param.lambdaparam.c/param.fc;% 波长 (m)% 平台参数param.V150;% 平台速度 (m/s)param.H5000;% 平台高度 (m)param.R0param.H;% 最近斜距 (m)% 信号参数param.PRF2000;% 脉冲重复频率 (Hz)param.Fs50e6;% 采样频率 (Hz)param.Tp10e-6;% 脉冲宽度 (s)param.BW30e6;% 信号带宽 (Hz)param.Krparam.BW/param.Tp;% 距离向调频率 (Hz/s)% 天线参数param.Da2;% 方位向天线长度 (m)param.Laparam.Da;% 方位向孔径 (m)param.Lrparam.c/(2*param.BW);% 距离向分辨率 (m)% 合成孔径参数param.Lsarparam.lambda*param.R0/param.Da;% 合成孔径长度 (m)param.Tsarparam.Lsar/param.V;% 合成孔径时间 (s)param.Naceil(param.Tsar*param.PRF);% 方位向采样点数param.Nrceil(param.Tp*param.Fs);% 距离向采样点数% 场景参数param.Xc0;% 场景中心方位坐标 (m)param.Ycparam.R0;% 场景中心距离坐标 (m)param.dxparam.Da/2;% 方位向采样间隔 (m)param.drparam.c/(2*param.Fs);% 距离向采样间隔 (m)fprintf(SAR Parameters:\n);fprintf( 波长: %.3f m\n,param.lambda);fprintf( 距离分辨率: %.2f m\n,param.Lr);fprintf( 方位分辨率: %.2f m\n,param.Da/2);fprintf( 合成孔径时间: %.2f s\n,param.Tsar);fprintf( 方位向采样点数: %d\n,param.Na);fprintf( 距离向采样点数: %d\n,param.Nr);end二、点目标回波生成核心%% generate_point_target_echo.mfunctionechogenerate_point_target_echo(param,targets)% 生成点目标回波信号% targets: N×3矩阵 [方位位置(m), 距离位置(m), RCS(m²)]Naparam.Na;Nrparam.Nr;echozeros(Na,Nr);% 距离向时间轴tr(0:Nr-1)/param.Fs;% 方位向时间轴ta(0:Na-1)/param.PRF;% 距离向参考函数LFM信号t_ref(0:param.Nr-1)/param.Fs-param.Tp/2;ref_rangeexp(1j*pi*param.Kr*t_ref.^2).*(abs(t_ref)param.Tp/2);fork1:size(targets,1)% 目标参数x_targettargets(k,1);% 方位位置r_targettargets(k,2);% 距离位置rcstargets(k,3);% 雷达散射截面% 距离徙动RCMRsqrt(r_target^2(param.V*ta-x_target).^2);% 距离向延迟td2*R/param.c;% 距离向压缩参考信号s_rangeexp(1j*pi*param.Kr*(tr-td).^2);% 方位向调制多普勒历程fd-2*param.V*(param.V*ta-x_target)./(param.lambda*R);s_azimuthexp(1j*2*pi*fd.*ta);% 距离向包络天线方向图thetaatan((param.V*ta-x_target)./r_target);Gsinc(theta/param.lambda*param.Da).^2;% 合成回波echo_targetrcs*G.*s_range.*s_azimuth;% 累加所有目标回波echoechoecho_target;end% 添加噪声SNR_dB20;signal_powermean(abs(echo(:)).^2);noise_powersignal_power/(10^(SNR_dB/10));echoechosqrt(noise_power/2)*(randn(Na,Nr)1j*randn(Na,Nr));end三、RD 成像算法距离多普勒算法%% rd_imaging_algorithm.mfunctionimagerd_imaging_algorithm(echo,param)% RD算法成像处理Naparam.Na;Nrparam.Nr;%% 1. 距离向压缩匹配滤波% 生成距离向参考信号t_ref(0:Nr-1)/param.Fs-param.Tp/2;ref_rangeexp(1j*pi*param.Kr*t_ref.^2).*(abs(t_ref)param.Tp/2);% FFTecho_fftfft(echo,Nr,2);ref_fftfft(ref_range,Nr,2);% 匹配滤波compressed_rangeifft(echo_fft.*conj(ref_fft),Nr,2);%% 2. 距离徙动校正RCMC% 计算距离徙动量RCMC_matrixzeros(Na,Nr);forna1:Na ta(na-1)/param.PRF;% 距离徙动公式RCMparam.lambda^2*param.PRF^2*ta.^2/(8*param.R0^2);RCMC_matrix(na,:)exp(-1j*2*pi*param.fc*RCM/param.c);end% 应用RCMCcompressed_rangecompressed_range.*RCMC_matrix;%% 3. 方位向压缩% 生成方位向参考信号ta(0:Na-1)/param.PRF;ref_azimuthexp(-1j*pi*param.PRF^2*ta.^2/(param.lambda*param.R0));% FFTcompressed_fftfft(compressed_range,Na,1);ref_azimuth_fftfft(ref_azimuth,Na,1);% 匹配滤波compressed_azimuthifft(compressed_fft.*conj(ref_azimuth_fft),Na,1);%% 4. 图像形成imageabs(compressed_azimuth);% 归一化imageimage/max(image(:));end四、主仿真程序%% main_sar_simulation.mclear;clc;close all;%% 1. 加载参数paramsar_parameters();%% 2. 定义点目标场景% 格式: [方位位置(m), 距离位置(m), RCS(m²)]targets[0,param.R0,1.0;% 中心点目标50,param.R0,0.8;% 右侧目标-50,param.R0,0.8;% 左侧目标0,param.R0100,0.6;% 前方目标0,param.R0-100,0.6;% 后方目标];fprintf(生成 %d 个点目标回波...\n,size(targets,1));%% 3. 生成回波信号echogenerate_point_target_echo(param,targets);%% 4. RD算法成像fprintf(开始RD算法成像处理...\n);sar_imagerd_imaging_algorithm(echo,param);%% 5. 结果可视化figure(Color,white,Position,[1001001400500])% 回波信号subplot(1,3,1)imagesc(abs(echo))xlabel(距离向采样);ylabel(方位向采样)title(SAR回波信号幅度)colorbar axis xy% SAR图像subplot(1,3,2)imagesc(sar_image)xlabel(距离向采样);ylabel(方位向采样)title(RD算法成像结果)colorbar axis xy% 等高线图聚焦质量评估subplot(1,3,3)contour(sar_image,20)xlabel(距离向采样);ylabel(方位向采样)title(SAR图像等高线)grid onsgtitle(合成孔径雷达(SAR)点目标仿真,FontSize,14)%% 6. 成像质量评估fprintf(\n 成像质量评估 \n);% 找到主瓣位置[max_val,max_idx]max(sar_image(:));[row_max,col_max]ind2sub(size(sar_image),max_idx);% 计算主瓣宽度profile_rangesar_image(row_max,:);half_maxmax_val/2;left_idxfind(profile_range(1:col_max)half_max,1,last);right_idxfind(profile_range(col_max:end)half_max,1,first)col_max-1;main_lobe_widthright_idx-left_idx;fprintf(主瓣位置: (%d, %d)\n,row_max,col_max);fprintf(主瓣宽度: %d 像素\n,main_lobe_width);fprintf(峰值旁瓣比(PSLR): %.2f dB\n,20*log10(max_val/min(sar_image(:))));五、高级扩展CS 算法Chirp Scaling%% cs_imaging_algorithm.m (简化版)functionimagecs_imaging_algorithm(echo,param)% Chirp Scaling算法更精确的RCMCNaparam.Na;Nrparam.Nr;% 距离向FFTSRCfft(echo,Nr,2);% 距离向Chirp Scaling相位fr(0:Nr-1)/param.Fs*param.Fs-param.Fs/2;Krparam.Kr;% CS因子CS_factorexp(-1j*pi*Kr*fr.^2/(param.fc^3));% 应用CS因子SRC_csSRC.*CS_factor;% 距离向压缩ref_csexp(1j*pi*Kr*(0:Nr-1).^2/param.Fs^2);compressedifft(SRC_cs.*conj(ref_cs),Nr,2);% 方位向压缩ta(0:Na-1)/param.PRF;fa(0:Na-1)/param.PRF*param.PRF-param.PRF/2;Ka-2*param.V^2/(param.lambda*param.R0);ref_azexp(-1j*pi*Ka*ta.^2);compressed_azifft(fft(compressed,Na,1).*conj(ref_az),Na,1);imageabs(compressed_az);imageimage/max(image(:));end参考代码 合成孔径雷达仿真程序www.youwenfan.com/contentcsw/82798.html六、与真实SAR系统的对比参数仿真值典型机载SAR星载SAR波长0.03m0.03-0.1m0.05-0.25m分辨率0.5-1m0.3-3m1-30mPRF2kHz1-5kHz1-3kHz带宽30MHz20-100MHz10-100MHz七、工程级改进方向1、更复杂的场景% 分布式目标面目标scenephantom(256);targets[];fori1:256forj1:256ifscene(i,j)0.1targets[targets;(i-128)*param.dx,param.R0(j-128)*param.dr,scene(i,j)];endendend2、运动补偿% 平台运动误差建模delta_R0.1*sin(2*pi*0.1*ta);% 正弦运动误差motion_compexp(-1j*4*pi*delta_R/param.lambda);echo_compecho.*motion_comp;3、极化SAR仿真% 极化散射矩阵S[S_hh,S_hv;S_vh,S_vv];% 分别仿真HH、HV、VH、VV通道