2007 合成孔径雷达成像算法与实现 各figure的matlab实现(第四章 - 图4.4 )
程序员文章站
2022-06-08 18:39:41
...
matlab代码如下:
%% initial matlab workspace
% 图4.4 : page 81
clc
clear
close all
% 参数设置
Re = 6368e3; % 本地地球半径
h = 800e3; % 平台距地面高度
dr = 13.6 ; % 斜距分辨率
% 设置要扫描的所有地距
G_all = linspace( 255, 425, 101 )*1e3;
Ng = length( G_all );
% 初始化结果
R0_all = zeros( 1, Ng ); % 斜距
thi_all = zeros( 1, Ng ); % 入射角
dg_all = zeros( 1, Ng ); % 地距分辨率
%% 迭代
for cg = 1:length( G_all )
% 提取地距
G = G_all( cg );
% 计算地心角
betae = G/Re;
% 计算斜距R0
temp = ( Re + h ).^2 + Re.^2 - 2*( Re + h )*Re*cos( betae );
R0 = sqrt( temp );
% 计算星下点离线角
temp = Re/(R0/sin(betae));
thn = asin( temp );
% 计算入射角
thi = betae + thn;
% 计算地距分辨率
dg = dr/sin(thi);
% 结果记录
R0_all ( cg ) = R0;
thi_all( cg ) = thi;
dg_all ( cg ) = dg;
end
%% 画图
% 画图, 图片设置
h = figure(); set( h, 'position', [100,100,900,600]);
sub_row = 3; sub_col = 1; sub_count = 0;
% 作图
sub_count = sub_count + 1; subplot( sub_row, sub_col, sub_count ); plot( G_all/1e3, R0_all/1e3 ); ylabel('斜距(km)'); grid on; xlim([250,430])
sub_count = sub_count + 1; subplot( sub_row, sub_col, sub_count ); plot( G_all/1e3, thi_all*180./pi ); ylabel('入射角(°)'); grid on; xlim([250,430])
sub_count = sub_count + 1; subplot( sub_row, sub_col, sub_count ); plot( G_all/1e3, dg_all ); ylabel('地距分辨率(m)'); grid on; xlabel('地距(km)'); xlim([250,430])
matlab程序运行结果如下: