Main Content

getClutterGenerator

Obtain clutter generator belonging to a radar

    Description

    example

    cluttergen = getClutterGenerator(scenario,radar) returns a clutter generator object cluttergen for the radar belonging to the radar scenario scenario.

    Examples

    collapse all

    Generate clutter from a surface having two clutter regions. Start by creating a radarDataGenerator. Use a radar frequency of 1 GHz, a 100 meter range resolution, a 5 kHz pulse repetition frequency (PRF), and 128 pulses. The beam is symmetric with a 4 degree two-sided beamwidth in azimuth and elevation.

    fc = 1e9;
    rangeRes = 100;
    prf = 5e3;
    numPulses = 128;
    beamwidth = 4;

    Use the PRF and number of pulses to calculate the nominal Doppler and range-rate resolution. The radar will update once each coherent processing interval (CPI).

    dopRes = prf/numPulses;
    lambda = freq2wavelen(fc);
    rangeRateRes = dop2speed(dopRes,lambda)/2;
    cpiTime = numPulses/prf;
    
    rdr = radarDataGenerator(1,'No scanning','UpdateRate',1/cpiTime, ...
        'DetectionMode','Monostatic','TargetReportFormat','Detections', ...
        'DetectionCoordinates','Scenario', ...
        'HasINS',true,'HasElevation',true,'HasFalseAlarms',false, ...
        'HasNoise',false,'HasRangeRate',true, ...
        'HasRangeAmbiguities',true,'HasRangeRateAmbiguities',true, ...
        'CenterFrequency',fc,'FieldOfView',beamwidth, ...
        'AzimuthResolution',beamwidth,'ElevationResolution', ...
        beamwidth,'RangeResolution', ...
        rangeRes,'RangeRateResolution',rangeRateRes, ...
        'ReferenceRange',20e3,'ReferenceRCS',0, ...
        'DetectionProbability',0.9);

    Create a scenario using the radarScenario object, setting the update rate to zero so that the update interval is derived from sensors in the scene.

    scenario = radarScenario('UpdateRate',0,'IsEarthCentered',false);

    Now create the scenario surface. Choose a constant-gamma reflectivity model with a gamma value appropriate for flatland. This gamma value can be found using the surfacegamma function. Using this value, create a surfaceReflectivityLand object to add to a LandSurface using the RadarReflectivity property.

    gammaDB = surfacegamma('Flatland');
    refl = surfaceReflectivityLand('Model','ConstantGamma', ...
        'Gamma',gammaDB);
    landSurface(scenario,'RadarReflectivity',refl);

    Add two clutter regions to the scenario. Use the clutterGenerator object function to construct a clutter generator and enable clutter generation for the radar. The Resolution property defines the nominal spacing of clutter patches. Set this to be 1/5th of the range resolution to get multiple clutter patches per range gate. Set the range limit to 20 km. UseBeam indicates if clutter generation should be performed automatically for the mainlobe of the antenna pattern.

    cluttergen = clutterGenerator(scenario,rdr,'Resolution', ...
        rangeRes/5,'RangeLimit',20e3,'UseBeam',true);
    rgn1 = ringClutterRegion(cluttergen,1000,10000,30,45);
    rgn2 = ringClutterRegion(cluttergen,1000,10000,30,105);

    The getClutterGenerator function displays the two ring-shaped clutter regions belonging to the scenario.

    getClutterGenerator(scenario,rdr)
    ans = 
      ClutterGenerator with properties:
    
          Resolution: 20
          RangeLimit: 20000
             UseBeam: 1
        UseShadowing: 1
             Regions: [1×2 radar.scenario.RingClutterRegion]
               Radar: [1×1 radarDataGenerator]
    
    

    Input Arguments

    collapse all

    Radar scenario, specified as a radarScenario object.

    Radar, specified as a radarDataGenerator or radarTransceiver object.

    Output Arguments

    collapse all

    Clutter generator, returned as ClutterGenerator object.

    Version History

    Introduced in R2022a