def generate_img(self, param):
"""
Generate range compressed image.
Parameters
----------
param: object (ConfigurationManager instance).
ConfigurationManager instance to read parameters from file.
Returns
-------
-.
"""
# Light speed.
c = 300000000.0
# Load beamwidth, bandwidth and central frequency to use locally.
sar_bmw = (param.get_float_parameter("Radar/beamwidth")*np.pi)/180.
sar_B = param.get_float_parameter("Radar/B")
sar_f0 = param.get_float_parameter("Radar/f0")
# Get angles squint and look of view with respect to the antenna coordinate system.
#self.get_angles_antenna()
self.local_look, self.local_squint = Utils.get_angles_antenna(self.traj, self.nom_target)
# Set fast time axis.
start = 2*(min(self.distances))/c - self.fast_time_pixel_margin_mono*self.radar_dt
end = 2*(max(self.distances))/c + self.fast_time_pixel_margin_mono*self.radar_dt
step = self.radar_dt
self.t_axis_fast_time = np.arange(start, end, step)
# Number of elements in fast time axis.
self.Nt = np.size(self.t_axis_fast_time)
self.freq_axis_fftshift = Utils.freq_axis(self.radar_dt, self.Nt, False, True)
sar_lambda = c/sar_f0
# Doppler amplitude (envolvente de la antena).
doppler_amplitude = (np.sinc( (np.tile(self.local_squint, [self.Nt, 1]))/sar_bmw*(2*0.443) ))**2
# Range amplitude: range positions in raw data of backscattered signal.
Nd = np.size(self.distances)
range_amplitude = np.sinc( sar_B*( (np.tile(self.t_axis_fast_time, [Nd, 1])).transpose() - np.tile(2*self.distances/c, [self.Nt, 1]) ) )
# Signal phase received: 2*pi*2*r/lambda.
signal_phase = np.exp(-1j*4*np.pi/sar_lambda*np.tile(self.distances, [self.Nt, 1]))
# Generate range compressed simulated image.
self.image = doppler_amplitude*range_amplitude*signal_phase
评论列表
文章目录