欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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程序运行结果如下:
2007 合成孔径雷达成像算法与实现 各figure的matlab实现(第四章 - 图4.4 )

相关标签: 数字信号处理