Main Content

ringClutterRegion

Ring clutter region

Since R2022a

    Description

    region = ringClutterRegion(cluttergen,minrad,maxrad,azimuth_span,azimuth_center) creates a ring-shaped clutter region in the clutter generator object cluttergen. The region ranges from a minimum radius minrad to a maximum radius maxrad and a span of azimuth angles azimuth_span centered on azimuth_center. Clutter regions are listed in the Regions of ClutterGenerator object.

    example

    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:
    
        ScattererDistribution: "Uniform"
                   Resolution: 20
                      Regions: [1x2 radar.scenario.RingClutterRegion]
                      UseBeam: 1
                 UseShadowing: 1
                   RangeLimit: 20000
                        Radar: [1x1 radarDataGenerator]
                   SeedSource: "Auto"
    
    

    Input Arguments

    collapse all

    Clutter generator, specified as a ClutterGenerator object. You can create a clutter generator using the clutterGenerator object function.

    Minimum radius of ring clutter region, specified as a scalar. Range is defined with respect the surface point directly below the radar. Units are in meters.

    Data Types: double

    Maximum radius of ring clutter region, specified as a scalar. Range is defined with respect the surface point directly below the radar. Units are in meters.

    Data Types: double

    Azimuth span of ring clutter region, specified as a scalar. Units are in degrees.

    In flat-Earth scenarios, azimuth angles are defined with respect to the global x-y coordinates system, with azimuth angle increasing counter-clockwise from the +x axis. In curved-Earth scenarios, azimuth angle is measured clockwise from North.

    Data Types: double

    Azimuth center of ring clutter region, specified as a scalar. Units are in degrees.

    In flat-Earth scenarios, azimuth angles are defined with respect to the global x-y coordinates system, with azimuth angle increasing counter-clockwise from the +x axis. In curved-Earth scenarios, azimuth angle is measured clockwise from North.

    Data Types: double

    Output Arguments

    collapse all

    Ring clutter region, returned as a RingClutterRegion handle.

    Data Types: double

    Version History

    Introduced in R2022a