Main Content

clutterSurfaceRangeDopplerRCS

Surface RCS as a function of range and Doppler

Since R2022b

    Description

    rcs = clutterSurfaceRangeDopplerRCS(nrcs,rbins,freq,dopres,alt,speed,dive) returns the radar cross-section rcs of a surface illuminated by a monostatic radar.

    example

    rcs = clutterSurfaceRangeDopplerRCS(nrcs,rbins,freq,dopres,alt,speed,dive,Name=Value) returns the radar cross-section rcs of a surface illuminated by a monostatic radar with additional options specified using one or more name-value arguments. For example, NumDopplerBins specifies the number of Doppler bins and enables Doppler wrapping.

    example

    [rcs,dopbins] = clutterSurfaceRangeDopplerRCS(___) also returns the Doppler-shift bin values dopbins.

    clutterSurfaceRangeDopplerRCS(___) plots the radar cross-section of the surface clutter.

    Examples

    collapse all

    Calculate clutter RCS in a set of range-Doppler cells. The range swath begins at 3000 m and extends to 5000 m with a 50 m range bin width. The radar center frequency is 30 GHz and with a Doppler resolution of 100 Hz. The radar travels at an altitude of 1000 m and with a speed of 100 m/s with a10 dive angle.

    rngbins= 3000:50:5000;
    freq = 30e9;
    doplrres = 100;
    rdralt = 1000;
    rdrspeed = 100;
    dive = 10;

    Use a constant-gamma flatland reflectivity model to get the normalized radar cross-section at each range bin. Then compute the grazing angle using the grazingang function. Compute the normalized surface reflectivity.

    gamma = surfacegamma('Flatland');
    refl = surfaceReflectivityLand( ...
        'Model','ConstantGamma','Gamma',gamma);
    graze = grazingang(rdralt,rngbins,'Model','Flat');
    nrcs = refl(graze,freq);

    Calculate and display the radar cross-section of the clutter.

    [rcs,dop] = clutterSurfaceRangeDopplerRCS( ...
        nrcs,rngbins,freq,doplrres,rdralt, ...
        rdrspeed,dive);
    rcs(rcs < 10^-2) = 10^-2;
    imagesc(dop/1000.0,rngbins,10*log10(rcs))
    title('Radar Cross Section (dBsm)')
    xlabel('Doppler (kHz)')
    ylabel('Range (m)')
    axis('xy')
    colorbar

    Figure contains an axes object. The axes object with title Radar Cross Section (dBsm), xlabel Doppler (kHz), ylabel Range (m) contains an object of type image.

    Since R2025a

    This example shows how to calculate clutter RCS in a set of range-Doppler cells with Doppler wrapping enabled.

    Calculate clutter RCS for 128 Doppler bins. The range swath begins at 1200 m and extends to 2500 m with a 100 m range bin width. The radar center frequency is 1 GHz and with a Doppler resolution of 10 Hz. The radar flies at an altitude of 1000 m and travels at 120 m/s with a 20 dive angle.

    numDop = 128;
    rangeBinCenters = (1.2e3:100:2.5e3).';
    alt = 1e3;
    freq = 1e9;
    dopres = 10;
    speed = 120;
    dive = 20;

    Compute the normalized radar cross-section for the surface using the Barton constant-gamma reflectivity model for farmland at the grazing angle of the radar.

    graze = asind(alt./rangeBinCenters);
    nrcs = landreflectivity('Farm',graze,freq);

    Calculate and plot the clutter radar cross-section with no Doppler wrapping. The clutter return up to 2.5 km has about 1.3 kHz of bandwidth, and is skewed towards positive Doppler, as expected given the 20 dive angle.

    [rcs,dop] = clutterSurfaceRangeDopplerRCS(nrcs,rangeBinCenters,freq,dopres,alt,speed,dive);
    slantRange = linspace(1.2e3,2.5e3,1e3).';
    imagesc(dop,slantRange,10*log10(rcs))
    set(gca,'ydir','normal')
    xlabel('Doppler (Hz)')
    ylabel('Range (m)')
    title('RCS (dBsm)')
    colorbar

    Figure contains an axes object. The axes object with title RCS (dBsm), xlabel Doppler (Hz), ylabel Range (m) contains an object of type image.

    Calculate and plot the clutter radar cross-section with Doppler wrapping.

    [rcs,dop] = clutterSurfaceRangeDopplerRCS(nrcs,rangeBinCenters,freq,dopres,alt,speed,dive,NumDopplerBins=numDop);
    imagesc(dop,slantRange,10*log10(rcs))
    set(gca,'ydir','normal')
    xlabel('Doppler (Hz)')
    ylabel('Range (m)')
    colorbar

    Figure contains an axes object. The axes object with xlabel Doppler (Hz), ylabel Range (m) contains an object of type image.

    a=1;

    Input Arguments

    collapse all

    Normalized radar cross section of the surface, specified as a length-N nonnegative vector. Units are dimensionless but often expressed as m²/m². Each entry in nrcs corresponds to a range specified in rbins. The NRCS provides a measure of the reflectivity of a surface per unit area and is also referred to as σ0, the backscatter coefficient or reflectivity. NRCS can be determined from built-in surface models that are valid for pre-defined frequencies and grazing angles using landreflectivity or seareflectivity.

    Data Types: double

    Range bin centers, specified as a real-valued length-N vector. Units are in meters. Each entry in rbins corresponds to a NRCS value specified in nrcs. Elements of rbins must appear in increasing order and must have at least two elements. The total range swath starts below the first element of rbins and extends beyond the last element of rbins by half the range bin width. The starting and ending ranges are extrapolated from the first and last bins. Range bins need not be uniformly spaced. Range wrapping due to ambiguous range is not performed.

    Example: [20 25 30 35]

    Data Types: double

    Radar frequency, specified as a positive scalar. Units are in Hz.

    Data Types: double

    Doppler resolution, specified as a positive scalar. Units are in Hz. By default, no wrapping is performed in Doppler space. Doppler bins cover the full Doppler spectrum of clutter at the specified resolution. To enable Doppler wrapping, set NumDopplerBins.

    Example: 50

    Data Types: double

    Radar altitude, specified as a non-negative scalar. Units are in meters.

    Data Types: double

    Radar speed, specified as a non-negative scalar. Units are in meters/sec.

    Example: 50

    Data Types: double

    Radar dive angle, specified as a scalar between –90° and 90°. Units are in degrees. The dive angle is the angle that the radar velocity vector makes with the horizontal plane. A positive dive angle indicates that the velocity vector is pointing down.

    Data Types: double

    Name-Value Arguments

    collapse all

    Specify optional pairs of arguments as Name1=Value1,...,NameN=ValueN, where Name is the argument name and Value is the corresponding value. Name-value arguments must appear after other arguments, but the order of the pairs does not matter.

    Example: rcs = clutterSurfaceRangeDopplerRCS(nrcs,rbins,freq,dopres,alt,speed,dive,NumDopplerBins=80)

    Signal propagation speed, specified as a positive scalar. Units are in meters/second. The default propagation speed is the value obtained from physconst('LightSpeed').

    Example: PropagationSpeed=3e8

    Data Types: double

    Number of Density Corrected (DC)-centered Doppler bins, specified as a nonnegative integer scalar. Setting this parameter enables Doppler wrapping. When NumDopplerBins is specified and is greater than 0, the output rcs matrix will have NumDopplerBins columns, with contributions from the full Doppler spectrum of clutter wrapped into those bins. If NumDopplerBins is not specified set equal to 0, the output rcs matrix will have as many columns as needed to cover the full Doppler spectrum of clutter at the specified resolution.

    Example: NumDopplerBins=128

    Data Types: double

    Number of integration points per range bin, specified as a positive integer. clutterSurfaceRangeDopplerRCS performs a 1-dimensional numeric integration within each range bin and the default value of 40 integration points results in an error of less than 1% for 99.7% of the range-Doppler cells. Some very small cells at low ranges can show reduced accuracy, and the number of integration points can be increased as desired to mitigate this.

    Example: NumIntegrationPoints=100

    Data Types: double

    Output Arguments

    collapse all

    Radar cross section, returned as an complex-valued N-by-M matrix where RCS(i,j) gives the RCS of surface clutter in the range-Doppler cell at the ith range and jth Doppler bin. Units are in square meters.

    Doppler bins, returned as length-M vector, in hertz. By default, the Doppler bins extend over the entire Doppler spectrum of clutter at the resolution specified by dopres.

    More About

    collapse all

    Extended Capabilities

    expand all

    C/C++ Code Generation
    Generate C and C++ code using MATLAB® Coder™.

    Version History

    Introduced in R2022b