Main Content

surfaceReflectivityCustom

Normalized reflectivity of custom surface

Description

Normalized reflectivity is the radar cross-section of a unit area of a general surface. Multiplying by the total area of the surface or the illuminated area of a surface gives the total radar cross-section. Normalized reflectivity is also referred to as surface σ0 and is a function of frequency and grazing angle.

To compute the normalized reflectivity:

  1. Create the surfaceReflectivityCustom object and set its properties.

  2. Call the object with arguments, as if it were a function.

To learn more about how System objects work, see What Are System Objects?

Creation

Description

example

refl = surfaceReflectivityCustom creates a normalized reflectivity System object™ refl for a custom surface with default reflectivities. The default custom surface has reflectivity set to 1 m²/m² for grazing angles from 0° – 90° for frequencies from 0 – 1e20 Hz.

example

refl = surfaceReflectivityCustom(Name=Value) also creates a normalized reflectivity object for a surface with the specified property Name set to the specified Value. You can specify additional name-value pair arguments in any order as (Name1=Value1, ..., NameN=ValueN).

Example: refl = surfaceReflectivityCustom(Reflectivity = nrcsTable,Frequency = (0:10)*1e9,GrazingAngle = (0:0.001:2)) creates a custom normalized reflectivity object from a table of reflectivity values nrcsTable for frequencies from 0 – 10 GHz and grazing angles from 0° – 2°.

Properties

expand all

Unless otherwise indicated, properties are nontunable, which means you cannot change their values after calling the object. Objects lock when you call them, and the release function unlocks them.

If a property is tunable, you can change its value at any time.

For more information on changing property values, see System Design in MATLAB Using System Objects.

Normalized radar cross section (NRCS) or reflectivity values, specified as an M-by-N real-valued matrix. where Q corresponds to the number of angles set in the GrazingAngle property and R corresponds to the number of frequencies set in the Frequency property.

For more than one surface, you can specify an Q-by-R-by-S real-valued array where P corresponds to the surface type index.

Units are dimensionless but often expressed in m²/m².

Data Types: double

Valid frequencies for the normalized reflectivity, specified as a length-R row-vector of real values. R corresponds to the number of rows in the Reflectivity property. Frequency units are in Hz.

Data Types: double

Grazing angles, specified as a length-Q row-vector of real values. Q corresponds to the number of columns in the Reflectivity property. Units are in degrees.

Data Types: double

Speckle distribution type, specified as 'None', 'Lognormal', 'Rayleigh', 'Weibull', or 'Custom'. Speckle is a multiplicative factor used to make clutter data appear noisier and is especially applicable to imaging applications.

Speckle is correlated with clutter RCS and is applied as I = σ*n, where σ represents the clutter RCS and n represents random numbers, which are often drawn from an independent identically-distributed unity mean noise statistical distribution.

  • None – No speckle is applied.

  • Lognormal – Speckle has a lognormal distribution. Define the distribution using the SpeckleMean and SpeckleStandardDeviation properties. Default values of these properties create speckle with a normalized mean lognormal distribution.

  • Rayleigh – Speckle has a Rayleigh distribution. Define the distribution using the SpeckleScale property. The default value of this property creates speckle with a unit mean Rayleigh distribution.

  • Weibull – Speckle has a Weibull distribution. Define the distribution using the SpeckleScale and SpeckleShape properties. The default values of these properties create speckle with a unit mean Rayleigh distribution.

Data Types: char | string

Mean value of lognormal-distributed speckle, specified as a scalar.

Dependencies

To enable this property, set the Speckle property to 'Lognormal'.

Data Types: double

Standard deviation of lognormal-distributed speckle, specified as a non-negative scalar.

Dependencies

To enable this property, set the Speckle property to 'Lognormal'.

Data Types: double

Scale parameter for speckle for the Rayleigh and Weibull distributions, specified as a positive scalar.

Dependencies

To enable this property, set the Speckle property to 'Rayleigh' or 'Weibull'.

Data Types: double

Shape value for the Weibull speckle distribution, specified as a positive scalar.

Dependencies

To enable this property, set the Speckle property to Weibull.

Data Types: double

Usage

Description

nrcs = refl(graz,freq) returns the normalized radar cross section nrcs at grazing angle graz and frequency freq. When either graz or freq lies outside of the valid region defined by the GrazingAngle and Frequency properties, the nearest value of the normalized reflectivity is returned.

nrcs = refl(graz,freq,idx) also specifies the surface type index idx of the surface patch. To enable this syntax, specify the Reflectivity property as an M-by-N-by-P array, where M corresponds to the number of angles specified in the GrazingAngle property, N corresponds to the number of frequencies in the Frequency property, and P corresponds to the surface type index. MATLAB® array.

[nrcs,speck] = relf(___) also returns speckle values speck.

Input Arguments

expand all

Grazing angle of the surface relative to the radar, specified as a scalar or a M-length row vector of nonnegative values. The angles range from 0° to 90°. Units are in degrees.

Example: 10

Transmitted frequencies, specified as a positive scalar or N-length vector of positive values. Units are in Hz.

Example: 7*10e9

Surface type index, specified as a scalar or length-P vector of positive values.

Data Types: double

Output Arguments

expand all

Normalized surface reflectivity, returned as either a real-valued N-length row vector or a real-valued M-by-N matrix. Normalized reflectivity is also called normalized radar cross section. M is the length of the grazing angle or depression angle vector graz and N is the length of the frequency vector freq. nrcs is dimensionless but often expressed as m²/m².

Multiplicative speckle, returned as an N-length real-valued vector where N is the length of the frequency vector in freq.

Data Types: double

Object Functions

To use an object function, specify the System object as the first input argument. For example, to release system resources of a System object named obj, use this syntax:

release(obj)

expand all

stepRun System object algorithm
releaseRelease resources and allow changes to System object property values and input characteristics
resetReset internal states of System object

Examples

collapse all

Construct a table of normalized reflectivities of a land surface using the surfacegamma function. The table covers frequencies from 1 - 10 GHz and grazing angles from 0 - 7 degrees. Use the surfaceReflectivityCustom System object™ directly.

freqs = (1:10)*1e9;
angs = 0:.1:7;
gammaFarm   = db2pow(surfacegamma('farmland',freqs));
gammaHills  = db2pow(surfacegamma('wooded hill',freqs));

Create a constant gamma model by multiplying the reflectivity coefficients by the sine of the grazing angle. Add Rayleigh speckle.

nrcsTbl   = zeros(numel(angs),numel(freqs),2);
nrcsTbl(:,:,1) = gammaFarm.*sind(angs).';  % Farmland
nrcsTbl(:,:,2) = gammaHills.*sind(angs).'; % Wooded hills
refl = surfaceReflectivityCustom(Reflectivity = nrcsTbl, Frequency = freqs, ...
    GrazingAngle = angs, Speckle = 'Rayleigh');

Find the normalized reflectivity of farm land (in dB).

nrcs = pow2db(refl(6.3, 2.5e9, 1));
disp(nrcs)
  -27.2110

Find the normalized reflectivity of wooded hills (in dB).

nrcs = pow2db(refl(6.3, 2.5e9, 2));
disp(nrcs)
  -22.2110

Create a land reflectivity model using the surfaceReflectivityCustom object and radarScenario.

First create a two hill scenario.

[x,y] = meshgrid(linspace(-100,100,201));
ht1 = 40*exp(-(x.^2 + y.^2)/30^2);
ht2 = 100*exp(-((x-60).^2 + y.^2)/25^2);
ht = ht1 + ht2;
p = surfc(x(1,:),y(:,1),ht);
shading interp

Figure contains an axes object. The axes object contains 2 objects of type surface, contour.

Construct a table of normalized reflectivities of a land surface using the surfacegamma function. The table covers frequencies from 1 - 10 GHz and grazing angles from 0 - 7 degrees.

freqs = (1:10)*1e9;
angs = 0:.1:7;
gammaFarm   = db2pow(surfacegamma('farmland',freqs));
gammaHills  = db2pow(surfacegamma('wooded hill',freqs));

Create a constant gamma model by multiplying the reflectivity coefficients by the sine of the grazing angle. Add Rayleigh speckle.

nrcsTbl   = zeros(numel(angs),numel(freqs),2);
nrcsTbl(:,:,1) = gammaFarm.*sind(angs).';  % Farmland
nrcsTbl(:,:,2) = gammaHills.*sind(angs).'; % Wooded hills
simTime = 3;
scene = radarScenario(UpdateRate = 1, ...
    IsEarthCentered = false,StopTime = simTime);
refl = surfaceReflectivityCustom(Reflectivity = nrcsTbl, Frequency = freqs, ...
    GrazingAngle = angs, Speckle = 'Rayleigh');
srf = landSurface(scene,RadarReflectivity = refl, ...
    Terrain = ht,Boundary = [-100,100;-100,100]);

Find the normalized reflectivity of farm land (in dB).

nrcs = pow2db(refl(6.3, 2.5e9, 1));
disp(nrcs)
  -27.2110

Find the normalized reflectivity of wooded hills (in dB).

nrcs = pow2db(refl(6.3, 2.5e9, 2));
disp(nrcs)
  -22.2110

More About

expand all

Extended Capabilities

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

Version History

Introduced in R2022a