how to write a m file code to cfar for fmcw radar

Answers (2)

CFAR thresholding does not depend on the radar type. It is about thresholding the signal at the mixer output. The signal is the amplitude level of range measurements. Here is a sample code. It is only about finding the noise average. This code implements the cell averaging cfar:
close all;
s=randn(1000,1);
s([100, 300, 700])=[30 40 50];
figure,plot(s);
refLength=12;
guardLength=3;
offset=3;
cfarWin=ones((refLength+guardLength)*2+1,1);
cfarWin(refLength+1:refLength+1+2*guardLength)=0;
cfarWin=cfarWin/sum(cfarWin);
noiseLevel=conv(s,cfarWin,'same');
cfarThreshold=noiseLevel+offset;
figure,plot(s);
hold on,plot(cfarThreshold,'r--','LineWidth',2)
legend('Signal','CFAR Threshold')

3 Comments

thank you for your answer, how we can choose s([100, 300, 700])=[30 40 50]; , efLength=12; guardLength=3; offset=3; values. usually s is the noise alone, if the signal corrupted with noise how we can choose these values compare with the signal without noise. please give me the code.
What about OS-CFAR? Do you have sample code for that?
Also how do you calculate the detection?
Thank you!
but why offset with addition?
This is different than the scale that have to be multiplied in linear domain. The scale should depend on the desired probability of false alarm.
N = refLength*2;
scale = pbFalseAlarm^(-1/N) - 1;
cfarThreshold=noiseLevel*scale;
is that correct?

Sign in to comment.

You may also want to take a look at CFAR detector offered in Phased Array System Toolbox. The noise is estimated using training cells that does not include signal.

Asked:

on 5 Dec 2014

Commented:

on 17 Aug 2022

Community Treasure Hunt

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

Start Hunting!