-
Range 1D-FFT for range detection
-
Doppler 2D-FFT for velocity and range detection
-
CFAR clutter removal technique and thresholding
-
Final Project : apply all the above with 2-D CFAR
Range_detection/
: FFT1D.m , range.m (range detection)
1-D FFT for range detection
Doppler_velocity_detection
: FFT2D.m , dopplerVelocity.m
2-D FFT for doppler velocity and range detection plot
Clutter_and_thresholding
: CFAR1D.m (only 1-D CFAR here, 2-D CFAR in the project.m file)
1-D CFAR with self adjusting threshold based on noise and object density.
- Loop over elements of RDM array each iteration selecting one cell to be the CUT (Cell Under Test)
for i = Tr+Gr+1 : (Nr/2)-(Gr+Tr)
for j = Td+Gd+1 : Nd-(Gd+Td)
- For each iteration loop over the training cells excluding the guarding cells to sum their values
for p = i-(Tr+Gr) : i+(Tr+Gr)
for q = j-(Td+Gd) : j+(Td+Gd)
- Calculate the average of the noise value
noise_level = noise_level + db2pow(RDM(p,q));
- Convert using pow2db
th = pow2db(noise_level/(2*(Td+Gd+1)*2*(Tr+Gr+1)-(Gr*Gd)-1));
- Add the offset value
- If the CUT is greater then the threshold replace it by
1
, else0
Tr = 12, Td = 10
For Range and Doppler Training Cells.Gr = 6, Gd = 6
For Range and Doppler Guard Cells.offset = 1.4
offset value.
sclicing the output such that we have the surrounding rows and columns depending on the Training cells for both range and doppler.
RDM(union(1:(Tr+Gr),end-(Tr+Gr-1):end),:) = 0; % Rows
RDM(:,union(1:(Td+Gd),end-(Td+Gd-1):end)) = 0; % Columns
final output for a target at 50m moving at -25 m/s relative velocity
Range detection 50m
Range and velocity from 2D-FFT
2-D CFAR