clight = 3e8; elevation_angle = 45/180*pi; % assume this to be constant, but can easily vectorize this for non-flat flightpaths scene_radius = 2; range_max = [cos(elevation_angle), sin(elevation_angle)] * [scene_radius; tan(elevation_angle) * 2 * scene_radius]; u_sample_rate = 2 * (range_max / 2 / pi) * cos(elevation_angle); bandwidth = 600e6; center_frequency = 10e9; u_min = (center_frequency - bandwidth/2)*4*pi/clight; u_number_of_samples = ceil(bandwidth*4*pi/clight * u_sample_rate); u = (0:u_number_of_samples)/u_sample_rate + u_min; downrange_resolution = clight / 2 / bandwidth; azimuth_sample_rate = 2 * (scene_radius/2/pi) * 4 * pi * center_frequency / clight * cos(elevation_angle); azimuth_extent_min = clight / center_frequency / 2 / downrange_resolution; % for azimuth resolution equal to downrange resolution azimuth_extent = azimuth_extent_min; azimuth_number_of_samples = ceil(azimuth_extent * azimuth_sample_rate); azimuth = ceil((0:azimuth_number_of_samples-1) - azimuth_number_of_samples/2) / azimuth_sample_rate; boresight_range = norm([6000; 6000]); platform_velocity = 100; t = azimuth * boresight_range / platform_velocity; kx = u(:) * sin(azimuth) * cos(elevation_angle); ky = u(:) * cos(azimuth) * cos(elevation_angle); kz = u(:) * ones(size(azimuth)) * sin(elevation_angle); sensor_noise_var = 50; |