FMCW Radar Processing for SAR
25 次查看(过去 30 天)
显示 更早的评论
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 个评论
回答(1 个)
Abhimenyu
2023-9-27
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 个评论
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Detection, Range and Doppler Estimation 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!