FMCW Radar Processing for SAR

28 visualizaciones (últimos 30 días)
Hariharan MK
Hariharan MK el 7 de Jun. de 2023
Respondida: Abhimenyu el 27 de Sept. de 2023
I have written some code to simulate a FMCW radar that is flying past. I have two targets in my scene which are found in the center of the aperture. I am working with a dechirped system hence, the radar equation is simplified. Although I am supposed to have two targets in the scene, when I perfrom the range FFT I only see a single target. I am not sure what I could be doing wrong. Any suggestion would be helpful. Thank you!
% FMCW Radar Simulation with Point Targets
clear;clc; close all;
% Constants
c = 3e8; % Speed of light (m/s)
Fc = 10e9; % Carrier frequency (Hz)
B = 500e6; % Chirp bandwidth (Hz)
PRF = 1e3; % Pulse Repetition Frequency
Tp = 1e-3; % Pulse length
H = 100; % Height of radar
Ys = 200; % Y center to scene center
radarVel = 10; % Radar Velocity
Y0 = 80; % ground range swath
Xs = 0; % X centers
Rs = sqrt(Ys^2+H^2); % Slant Range to scene Center
pa = 0.5;% azimuth res
pr = c/2/B;% range res
% Derieved Parameters
lamC = c/Fc;
delTh = (lamC)/(2*pa);
L = Rs*delTh/sin(deg2rad(90)); % Synthetic Aperture Length (2.21)
Ta = L/radarVel; % Synthetic Aperture time (2.22)
Naz = round(PRF * Ta /2) * 2; % Number of Azimuth samples (matter of convenience)
PRI = 1/PRF; % Pulse Repetition Interval
Cr=B/PRI; % Chirprate
Rmin = sqrt((Ys-Y0/2)^2 + H^2);
Rmax = sqrt((Ys+Y0/2)^2 + H^2);
Fs = (Cr*2*(Rmax-Rmin)/c) * 2; % Sampling frequency (Hz)
ts = 1/Fs;
Nrg=ceil(2*(Rmax)/c/ts - 2*(Rmin)/c/ts); % reuturns a 1
Nrg = 1024; % hardcoded value
ts=(2*Rmax/c-2*Rmin/c)/Nrg;
Fs=1/ts; % new Fs
t = linspace(-Nrg/2, Nrg/2, Nrg)*ts; %demodulated fast time
% Setting up the scene geometry
sceneCenter = [0, Ys, 0];
radarPosc = [0,0,H];% Radar Coords at Aperture center along the path
tSeq = [0:Naz] * PRI;
radarPoss = radarPosc - [radarVel, 0 ,0] * ceil(Naz/2) * PRI; % Radar's Starting Position
radarSeq = zeros(3,length(tSeq)); % x y z positions of radar
radarSeq(1,:) = radarPoss(1) + tSeq * radarVel(1);
radarSeq(2,:) = radarPoss(2) + tSeq * 0;
radarSeq(3,:) = radarPoss(3) + tSeq * 0;
radarSeq = radarSeq';
% Generation of signal
raw = zeros(Naz,Nrg);
ntargets = 2;
targets = [[0,sqrt(Rs^2-H^2)+20,0];[0,sqrt(Rs^2-H^2)-20,0]];
% Loop over each target
for i = 1:Naz
for k = 1:ntargets
% Calculate target range and delay
target_range = norm(radarSeq(i,:)-targets(k,:)); % Target range
tau = 2*target_range/c; % Target delay
% Add received signal to total received signal
raw(i, :) = raw(i, :) + exp(1j*2*pi*(Fc*tau + Cr*tau*t - 0.5*Cr*tau*tau));
end
end
figure;imagesc(abs(fftshift(fft(raw,[],2)))); % Range FFT -> range
  1 comentario
silvia cano
silvia cano el 31 de Jul. de 2023
hi can you explain me . your code ? i want to made a imege from FMCW radar

Iniciar sesión para comentar.

Respuestas (1)

Abhimenyu
Abhimenyu el 27 de Sept. de 2023
Hi Hariharan,
I understand that you are unable to see two targets after performing the range FFT. The code provided by you is correct and detects two objects, but the range resolution must be increased to view them using FFT. To improve range resolution in the above code, you can decrease the pulse length Tp or increase the chirp bandwidth “B. Both parameters affect the range resolution of the radar system.
You can use the following values to see the two targets,
B=5000e8;
Tp=0.1e-3;
However, you can experiment with the above values to get desired FFT response.
I hope this helps!
Thank you,
Abhimenyu.

Categorías

Más información sobre Detection, Range and Doppler Estimation en Help Center y File Exchange.

Productos


Versión

R2022b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by