Main Content

surfaceReflectivityCustom

Normalized reflectivity of custom surface

Since R2022a

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.

Enable polarization, specified as false or true.

  • When true, the System object enables the specification of cross-polarization components to help form a complete polarimetric normalized radar cross-section (NRCS) reflectivity matrix σ0 of the form

    σ0=[σHH0σHV0σVH0σVV0]

    where σ0HV and σ0VH are the cross-polarization components specified by the ReflectivityHV and ReflectivityVH properties, respectively. The remaining components, σ0HH and σ0VV, are determined by the particular model set by the Model property.

  • When false, the System object lets you specify the mean polarization using the Polarization property based on the selected Model.

Cross-polarization components, specified as 'Full' or 'Symmetric'.

  • When the CrossPolarization property is set to 'Full', the ReflectivityHH, ReflectivityVV, ReflectivityHV and ReflectivityVH properties are applicable, and unique speckle values are generated for all reflectivity components (SHH, SHV, SVH, and SVV).

  • When the CrossPolarization property is set to 'Symmetric', reciprocity applies for monostatic geometry and the cross-polarization terms are equal, SHV = SVH. When this input method is selected, the ReflectivityHV property is available, but the ReflectivityVH property is not available. The ReflectivityVH property is assumed to be equal to the ReflectivityHV property. The speckle values corresponding to the HV and VH components are equal.

Dependencies

To enable this property, set the EnablePolarization property to true.

Data Types: char | string

Normalized radar cross section (NRCS) or reflectivity values, specified as an Q-by-R 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-P real-valued array where P corresponds to the surface type index.

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

Dependencies

To enable this property, set the EnablePolarization property to false.

Data Types: double

Normalized radar cross section (NRCS), for the polarized SHH component, Specified as a Q-by-R real-valued matrix or Q-by-R-by-P real-valued array. The subscript HH represents horizontal transmission and horizontal reception. Q corresponds to the number of angles in either the GrazingAngle or DepressionAngle property. R corresponds to the number of frequencies in the Frequency property. Units are m²/m².

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

The full, real reflectivity matrix in this case is given by Reflectivity = [ReflectivityHH, ReflectivityHV; ReflectivityVH, ReflectivityVV];

Dependencies

To enable this property, set the EnablePolarization property to true.

Data Types: double

Normalized radar cross section (NRCS), for the polarized SVV component, Specified as a Q-by-R real-valued matrix or Q-by-R-by-P real-valued array. The subscript VV represents vertical transmission and vertical reception. Q corresponds to the number of angles in either the GrazingAngle or DepressionAngle property. R corresponds to the number of frequencies in the Frequency property. Units are m²/m².

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

The full, real reflectivity matrix in this case is given by Reflectivity = [ReflectivityHH, ReflectivityHV; ReflectivityVH, ReflectivityVV];

Dependencies

To enable this property, set the EnablePolarization property to true.

Data Types: double

Normalized radar cross section (NRCS), for the polarized SHV component, specified as a Q-by-R real-valued matrix or Q-by-R-by-P real-valued array. The subscript HV represents horizontal transmission and vertical reception. Q corresponds to the number of angles in either the GrazingAngle or DepressionAngle property. R corresponds to the number of frequencies in the Frequency property. Units are m²/m².

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

The full, real reflectivity matrix in this case is given by Reflectivity = [ReflectivityHH, ReflectivityHV; ReflectivityVH, ReflectivityVV];

Dependencies

To enable this property, set the EnablePolarization property to true.

Data Types: double

Normalized radar cross section (NRCS), for the polarized SVH component, Specified as a Q-by-R real-valued matrix or Q-by-R-by-P real-valued array. The subscript VH represents vertical transmission and horizontal reception. Q corresponds to the number of angles in either the GrazingAngle or DepressionAngle property. R corresponds to the number of frequencies in the Frequency property. Units are m²/m².

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', or 'Weibull'. 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 a real-valued Q-by-R matrix or a real-valued 2-by-2-Q-by-R array. Q is the length of the grazing angle graz or, for land surfaces only, depression angle. R is the length of the frequency vector freq. nrcs is dimensionless but often expressed as m²/m². Normalized reflectivity is also called normalized radar cross section (NRCS).

  • For the non-polarimetric reflectivity case, nrcs is returned as a real-valued Q-by-R matrix.

  • For the polarimetric reflectivity case, nrcs is returned as a real-valued 2-b-2-byQ-by-R array. For each value of Q and R, NRCS forms a polarimetric normalized radar cross-section (NRCS) reflectivity matrix s of the form

    σ0=[σHH0σHV0σVH0σVV0]

    where SHV and SVH are the cross-polarization components specified by the ReflectivityHV and ReflectivityVH properties. The σ0HH and σ0VV components are derived from the specified model as set by the Model property

The returned normalized reflectivity for cross-polarization components σ0HV and σ0VH is calculated using nearest neighbor interpolation at a given grazing angle and frequency. To avoid interpolation errors, the normalized reflectivity values in the ReflectivityHV and ReflectivityVH properties should cover grazing angles from 0–90 degrees and all expected frequencies.

Dependencies

To enable the polarimetric reflectivity, set the EnablePolarization to true.

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

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

Construct a table of normalized polarized reflectivities of a land surface using the surfacegamma function. The table covers frequencies from 1 - 10 GHz and grazing angles from 0 - 90 degrees. Create a constant gamma model by multiplying the reflectivity coefficients by the sine of the grazing angle. Add Rayleigh speckle. Define the reflectivities for the VV, HV, and VH components as proportional to the HH component.

freqs = (1:10)*1e9;
angs = 0:.1:90;
gamma = db2pow(surfacegamma('farmland',freqs));
xhh = sind(angs)'*gamma;
xvv = 0.5*sind(angs)'*gamma;
xhv = 0.1*sind(angs)'*gamma;
xvh = 0.12*sind(angs)'*gamma;

Create the surfaceReflectivityCustom System object™.

refl = surfaceReflectivityCustom(Frequency=freqs, ...
    GrazingAngle=angs,Speckle='Rayleigh',EnablePolarization=true, ...
    CrossPolarization='Full',ReflectivityHH=xhh,ReflectivityVV=xvv, ...
    ReflectivityHV=xhv,ReflectivityVH=xvh);

Plot the normalized reflectivity of farm land for all grazing angles..

nrcs = refl(angs,3e9);
plot(angs,pow2db(squeeze(nrcs(1,1,:))), ...
    angs,pow2db(squeeze(nrcs(1,2,:))), ...
    angs,pow2db(squeeze(nrcs(2,1,:))), ...
    angs,pow2db(squeeze(nrcs(2,2,:))))
grid on
xlabel('Grazing angle (deg)')
ylabel('NRCS (dB m^2/m^2)')
title('Polarized Surface Reflectivity')

More About

expand all

Extended Capabilities

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

Version History

Introduced in R2022a