Why are detections for Swerling 1 fusionRadarSensor not generated according the provided detection probability?
I am using the fusionRadarSensor to generate detections. The sensor is setup to detect a 0 dBm^2 RCS at a 100000 m range with 0.9 detection probability (i.e the default of the fusionRadarSensor). If I generate detections for such a target with such an RCS with Monte Carlo simulation, I get the correct detection probability for Swerling 0 (the default). But when I change to Swerling 1, the detection probability is incorrect, see example code below :
rdr = fusionRadarSensor(1,’ScanMode’,’No scanning’,’HasElevation’,true,’RangeLimits’,[0 1E6]);
% Default are the fields below :
% DetectionProbability: 0.9000
% ReferenceRange: 100000
% ReferenceRCS: 0
% So target with 0 dBm^2 at 100000 m is detected with probability 0.9
% Create target with 0 dBm^2 at 100000 m
rcs_dbm2 = 0; % Target RCS [dBm^2]
rdr.Profiles.Signatures{1} = rcsSignature("Pattern",rcs_dbm2*ones(2,2),’FluctuationModel’,’Swerling0′);
tgtRg = 1e5; % target range, [m]
% Create struct with target position
[X,Y,Z] = sph2cart(deg2rad(0),deg2rad(0),tgtRg);
tgt = struct(PlatformID=1,Position=[X Y Z]);
% Create detections with Monte-Carlo
simTime = 0; % [s]
Nmc = 1000; % Number of runs
pd = 0;
for i = 1:Nmc
dets = rdr(tgt,simTime);
if ~isempty(dets)
pd = pd+1;
end
end
% Estimate the pd, should be close to 0.9
pd = pd/Nmc
pd =
0.9180
So roughly correct answer
But if I change the Swerling case to 1 (rdr.Profiles.Signatures{1} = rcsSignature("Pattern",rcs_dbm2*ones(2,2),’FluctuationModel’,’Swerling1′); and do the same it does not give me the expected pd = 0.9 :
pd =
0.5250
What is wrong in my code?
Regards JanI am using the fusionRadarSensor to generate detections. The sensor is setup to detect a 0 dBm^2 RCS at a 100000 m range with 0.9 detection probability (i.e the default of the fusionRadarSensor). If I generate detections for such a target with such an RCS with Monte Carlo simulation, I get the correct detection probability for Swerling 0 (the default). But when I change to Swerling 1, the detection probability is incorrect, see example code below :
rdr = fusionRadarSensor(1,’ScanMode’,’No scanning’,’HasElevation’,true,’RangeLimits’,[0 1E6]);
% Default are the fields below :
% DetectionProbability: 0.9000
% ReferenceRange: 100000
% ReferenceRCS: 0
% So target with 0 dBm^2 at 100000 m is detected with probability 0.9
% Create target with 0 dBm^2 at 100000 m
rcs_dbm2 = 0; % Target RCS [dBm^2]
rdr.Profiles.Signatures{1} = rcsSignature("Pattern",rcs_dbm2*ones(2,2),’FluctuationModel’,’Swerling0′);
tgtRg = 1e5; % target range, [m]
% Create struct with target position
[X,Y,Z] = sph2cart(deg2rad(0),deg2rad(0),tgtRg);
tgt = struct(PlatformID=1,Position=[X Y Z]);
% Create detections with Monte-Carlo
simTime = 0; % [s]
Nmc = 1000; % Number of runs
pd = 0;
for i = 1:Nmc
dets = rdr(tgt,simTime);
if ~isempty(dets)
pd = pd+1;
end
end
% Estimate the pd, should be close to 0.9
pd = pd/Nmc
pd =
0.9180
So roughly correct answer
But if I change the Swerling case to 1 (rdr.Profiles.Signatures{1} = rcsSignature("Pattern",rcs_dbm2*ones(2,2),’FluctuationModel’,’Swerling1′); and do the same it does not give me the expected pd = 0.9 :
pd =
0.5250
What is wrong in my code?
Regards Jan I am using the fusionRadarSensor to generate detections. The sensor is setup to detect a 0 dBm^2 RCS at a 100000 m range with 0.9 detection probability (i.e the default of the fusionRadarSensor). If I generate detections for such a target with such an RCS with Monte Carlo simulation, I get the correct detection probability for Swerling 0 (the default). But when I change to Swerling 1, the detection probability is incorrect, see example code below :
rdr = fusionRadarSensor(1,’ScanMode’,’No scanning’,’HasElevation’,true,’RangeLimits’,[0 1E6]);
% Default are the fields below :
% DetectionProbability: 0.9000
% ReferenceRange: 100000
% ReferenceRCS: 0
% So target with 0 dBm^2 at 100000 m is detected with probability 0.9
% Create target with 0 dBm^2 at 100000 m
rcs_dbm2 = 0; % Target RCS [dBm^2]
rdr.Profiles.Signatures{1} = rcsSignature("Pattern",rcs_dbm2*ones(2,2),’FluctuationModel’,’Swerling0′);
tgtRg = 1e5; % target range, [m]
% Create struct with target position
[X,Y,Z] = sph2cart(deg2rad(0),deg2rad(0),tgtRg);
tgt = struct(PlatformID=1,Position=[X Y Z]);
% Create detections with Monte-Carlo
simTime = 0; % [s]
Nmc = 1000; % Number of runs
pd = 0;
for i = 1:Nmc
dets = rdr(tgt,simTime);
if ~isempty(dets)
pd = pd+1;
end
end
% Estimate the pd, should be close to 0.9
pd = pd/Nmc
pd =
0.9180
So roughly correct answer
But if I change the Swerling case to 1 (rdr.Profiles.Signatures{1} = rcsSignature("Pattern",rcs_dbm2*ones(2,2),’FluctuationModel’,’Swerling1′); and do the same it does not give me the expected pd = 0.9 :
pd =
0.5250
What is wrong in my code?
Regards Jan fusionradarsensor, swerling 1 MATLAB Answers — New Questions