FMCW Radar Processing for SAR
27 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
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 commentaire
silvia cano
le 31 Juil 2023
hi can you explain me . your code ? i want to made a imege from FMCW radar
Réponses (1)
Abhimenyu
le 27 Sep 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.
0 commentaires
Voir également
Catégories
En savoir plus sur Detection, Range and Doppler Estimation dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!