surfaceReflectivityLand
Description
This System object™ computes the normalized reflectivity of a land surface. Normalized reflectivity is the radar cross-section of a unit area of a surface. Multiplying by the total area of a 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:
Create the
surfaceReflectivityLand
object and set its properties.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
creates a
normalized reflectivity object refl
= surfaceReflectivityLandrefl
for a land surface. Use this
object to generate a normalized radar cross section (NRCS). This syntax creates a
normalized reflectivity object with a 'Barton'
land
Model
and a 'Flatland'
LandType
.
It is not recommended to use models outside of their defined validity regions. See
the Model
property description for more information about available
models and at what frequency and grazing angles the models are valid. See the
LandType
property help for information about applicable land types
for each model.
creates a normalized reflectivity object for a land surface with the specified property
refl
= surfaceReflectivityLand(Name=Value
)Name
set to the specified Value
. You can
specify additional name-value pair arguments in any order as
(Name1=Value1
, … ,NameN=ValueN
).
Example: refl =
surfaceReflectivityLand(Model="GIT",LandType="Soil",SurfaceHeightStandardDeviation=1)
creates a normalized reflectivity object for land using the GIT model with a
LandType
of Soil
and a
SurfaceHeightStandardDeviation
of 1.
Properties
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.
EnablePolarization
— Enable polarization
false
(default) | true
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 formwhere σ0HV and σ0VH are the cross-polarization components specified by the
ReflectivityHV
andReflectivityVH
properties, respectively. The remaining components, σ0HH and σ0VV, are determined by the particular model set by theModel
property.When
false
, the System object lets you specify the mean polarization using thePolarization
property based on the selectedModel
.
CrossPolarization
— Cross-polarization components
'Full'
(default) | 'Symmetric'
Cross-polarization components, specified as 'Full'
or
'Symmetric'
.
When the CrossPolarization
property is set to
'Full'
:
If the
Model
property is not set to'ConstantGamma'
, theReflectivityHV
andReflectivityVH
properties are applicable, and unique speckle values are generated for all reflectivity components (σ0HH, σ0HV, σ0VH, and σ0VV).If the
Model
property set to'ConstantGamma'
, theCrossPolarization
property only affects speckle generation.
When the CrossPolarization
property is set to
'Symmetric'
then reciprocity applies for monostatic geometry and
the cross-polarization terms are equal,
σ0HV =
σ0VH.
If the
Model
property is not'ConstantGamma'
, only theReflectivityHV
property can be set. TheReflectivityVH
property is assumed to be equal to theReflectivityHV
property. In addition, speckle values corresponding to the HV and VH components are equal.If the
Model
property is'ConstantGamma'
, setting theCrossPolarization
property to'Symmetric'
requires that the HV and VH components of theGamma
property are equal and the object returns equal HV and VH speckle values.
Dependencies
To enable this property, set the EnablePolarization
property
to true
.
Data Types: char
| string
Model
— Land reflectivity model
'Barton'
(default) | 'APL'
| 'Billingsley'
| 'GIT'
| 'Morchin'
| 'Nathanson'
| 'UlabyDobson'
| 'ConstantGamma'
Land reflectivity model, specified as 'Barton'
,
'APL'
, 'Billingsley'
, 'GIT'
,
'Morchin'
, 'Nathanson'
,
'Nathanson'
, 'UlabyDobson'
, or
'ConstantGamma'
. Descriptions of the models and land types are
shown in the table Land Reflectivity Models and Land Types.
LandType
— Land type
char | string
Land type, specified as a char or string. The allowable land type and their default
values depend on the Model
property. If the
Model
property is not specified, the default land type is
'Flatland'
. Descriptions of the models and land types are shown in
the table Land Reflectivity Models and Land Types.
Data Types: char
| string
SurfaceHeightStandardDeviation
— Surface height standard deviation
0 (default) | scalar
Standard deviation of the surface height, specified as a positive scalar. Units are in meters.
Dependencies
To enable this property, set the Model
property to
'GIT'
and specify the LandType
.
Data Types: double
Polarization
— Mean polarization of reflectivity model
'H'
(default) | 'V'
Mean polarization of reflectivity model, specified as 'H'
or
'V'
. 'H'
designates horizontal polarization and
'V'
designates vertical polarization.
Dependencies
To enable this property, set the Model
property to
'UlabyDobson'
and set the EnablePolarization
property to false
.
Data Types: char
| string
Gamma
— Terrain gamma value
-20
(default) | real scalar | 2-by-2 real-valued matrix
Gamma value used in the constant gamma clutter reflectivity model, specified as a scalar or 2-by-2 real-valued matrix. The gamma value depends on both terrain type and operating frequency. The default value is representative of flat land. Units are in dB.
If
EnablePolarization
isfalse
, specifyGamma
as a scalar.If
EnablePolarization
istrue
, specifyGamma
as a scalar or a 2-by-2 matrix, such that Gamma = [GammaHH GammaHV; GammaVH GammaVV]. When specified as a scalar, it is assumed that all polarimetric components are equal.To control the speckle values for the polarimetric
Gamma
case, set theCrossPolarization
property to'Full'
for unique speckle values for all components or'Symmetric'
to set the speckle value for HV = VH.
Example: -15
Dependencies
To enable this property, set the Model
property to
'ConstantGamma'
.
Data Types: double
ReflectivityHV
— HV normalized radar cross section
zeros(91,2)
(default) | Q-by-R real-valued matrix
Normalized radar cross section (NRCS), for the cross-polarized
σ0HV
component, where 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. The
σ0HH and
σ0VV
components are derived from the selected model designated by the
Model
property and associated properties. Units are
m²/m².
Dependencies
To enable this property, set the EnablePolarization
property to
true
and set the Model
property is
anything other than 'ConstantGamma'
.
Data Types: double
ReflectivityVH
— VH normalized radar cross section
zeros(91,2)
(default) | Q-by-R real-valued matrix
Normalized radar cross section (NRCS), for the cross-polarized
σ0VH
component, where VH 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. The
σ0HH and
σ0VV
components are derived from the selected model designated by the
Model
property and associated properties. Units are
m²/m².
Dependencies
To enable this property, set the CrossPolarization
property
to 'Full'
.
Frequency
— Radar frequency
[0 1e20]
(default) | length-R row vector
Valid frequencies for the normalized reflectivity, specified as a length-R row vector. Frequency units are in Hz.
Example: [1e6,10e6]
Dependencies
To enable this property, set the EnablePolarization
property
to true
and set the Model
property to any
value except 'Constant Gamma'
.
Data Types: double
GrazingAngle
— Grazing angles
[0:90]
(default) | length-Q row vector
Grazing angles, as a length-Q row vector. Units are in degrees.
Example: [45:60]
Dependencies
To enable this property, set the EnablePolarization
property
to true
and set the Model
property any value
except 'Billingsley'
or 'Constant Gamma'
.
Data Types: double
DepressionAngle
— Depression angles
[0:90]
(default) | length-Q row vector
Depression angles, specified as a length-Q row vector. Units are in degrees.
Example: [10:5:80]
Dependencies
To enable this property, set the EnablePolarization
property
to true
and set the Model
property to
'Billingsley'
.
Data Types: double
Speckle
— Speckle distribution type
'None'
(default) | 'Lognormal'
| 'Rayleigh'
| 'Weibull'
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 theSpeckleMean
andSpeckleStandardDeviation
properties. Default values of these properties create speckle with a normalized mean lognormal distribution.Rayleigh
– Speckle has a Rayleigh distribution. Define the distribution using theSpeckleScale
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 theSpeckleScale
andSpeckleShape
properties. The default values of these properties create speckle with a unit mean Rayleigh distribution.
Data Types: char
| string
SpeckleMean
— Mean of value of lognormal-distributed speckle
-0.5*log(2)
(default) | scalar
Mean value of lognormal-distributed speckle, specified as a scalar.
Dependencies
To enable this property, set the
Speckle
property to
'Lognormal'
.
Data Types: double
SpeckleStandardDeviation
— Standard deviation of lognormal-distributed speckle
sqrt(log(2))
(default) | non-negative scalar
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
SpeckleScale
— Scale parameter for Weibull and Rayleigh speckle distribution
sqrt(4/π)
(default) | non-negative scalar
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
SpeckleShape
— Shape value for Weibull distribution
2
(default) | positive scalar
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
Input Arguments
graz
— Grazing or depression angle
Q-length vector of real values
Grazing or depression angle of a surface relative to the radar, specified as a
Q-length row vector of real values. When the land
Model
property is set to 'Billingsley'
, the
angle is interpreted as a depression angle depressionang
between –90° and 90°. For all other models, the angle is
interpreted as a grazing angle grazingang
ranging from 0° to 90°. Units are in degrees.
freq
— Transmitted frequencies
R-length vector of positive values
Transmitted frequencies, specified as a positive scalar or R-length vector of positive values. Units are in Hz.
Example: freq = 70e9
Output Arguments
nrcs
— Normalized surface reflectivity
real-valued Q-by-R matrix | real-valued 2-by-2-by-Q-by-R array
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 formwhere SHV and SVH are the cross-polarization components specified by the
ReflectivityHV
andReflectivityVH
properties. The σ0HH and σ0VV components are derived from the specified model as set by theModel
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
.
speck
— Multiplicative speckle
Q-by-R matrix | 2-by-2-by-Q-by-R
MATLAB® array
Multiplicative speckle, returned as a Q-by-R
matrix where Q is the length of the angles vector in
ang
and R is the length of the frequency
vector in freq
. For the polarimetric reflectivity case, speckle
is returned as a 2-by-2-by-Q-by-R
MATLAB array.
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)
Examples
Surface Reflectivity of Default Land Model
Plot the normalized radar cross-section for grazing angles from 5 to 90 degrees. Assume the default 'Barton' land Model
and 'Flatland' LandType
. Set the radar frequency to 1 GHz.
grazAng = 5:90; freq = 1e9; reflectivity = surfaceReflectivityLand; nrcs = reflectivity(grazAng,freq); plot(grazAng,pow2db(nrcs)) grid on xlabel('Grazing Angle (deg)') ylabel('NRCS (dB m^2/m^2)') title('Barton Land Model with Flat Land Type')
Create Reflective Land Surface in Radar Scenario
Configure a radarscenario
to simulate a reflective land surface. Add a land surface object to define the physical properties of the scenario surface. The surface is a simple 200-by-200 meter rectangle. Use the surfaceReflectivityLand
function to create a constant-gamma reflectivity model with a gamma value of -10 dB. Use the scenario landSurface
method to add the rectangular land region and the radar reflectivity model to the scenario. Use a surface reference height of 16 meters.
scene = radarScenario(UpdateRate = 0, IsEarthCentered = false); refl = surfaceReflectivityLand(Model = "ConstantGamma", Gamma = -10); srf = landSurface(scene,RadarReflectivity = refl, ... Boundary=[-100 100; -100 100],ReferenceHeight = 16)
srf = LandSurface with properties: RadarReflectivity: [1x1 surfaceReflectivityLand] ReflectionCoefficient: [1x1 radar.scenario.SurfaceReflectionCoefficient] ReflectivityMap: 1 ReferenceHeight: 16 Boundary: [2x2 double] Terrain: []
Surface Reflectivity of GIT Land Model
Create a normalized reflectivity object using the GIT 'Model' and a 'Soil' land type. Obtain the normalized radar cross-section at a frequency of 3 GHz over grazing angles from 20 to 60 degrees. Assume a surface height standard deviation of two meters. Plot the surface reflectivity.
grazAng = 20:60; freq = 10e9; reflectivity = surfaceReflectivityLand(Model="GIT", ... LandType="Soil",SurfaceHeightStandardDeviation=2); nrcs = reflectivity(grazAng,freq); plot(grazAng,pow2db(nrcs)) grid on xlabel('Grazing Angle (deg)') ylabel('NRCS (dB m^2/m^2)') title('GIT Model')
Surface Reflectivity of Billingsley Land Model
Create a normalized reflectivity object using the Billingsley 'Model' and a 'LowReliefRural' land type. Obtain the normalized radar cross-section at a frequency of 3 GHz over depression angles from 0.1 to 3 degrees. Plot the surface reflectivity.
depAng = 0.1:0.1:2; freq = 3e9; reflectivity = surfaceReflectivityLand(Model="Billingsley", ... LandType="LowReliefRural"); nrcs = reflectivity(depAng,freq); plot(depAng,pow2db(nrcs)) grid on xlabel('Depression Angle (deg)') ylabel('NRCS (dB m^2/m^2)') title('Billingsley Model')
Surface Reflectivity of Ulaby-Dobson Land Model
Create a normalized reflectivity object using the Ulaby-Dobson model for a grass land type. Obtain the normalized radar cross-section for both vertical and horizontal polarizations at a frequency of 10 GHz over grazing angles from 1 to 10 degrees. Plot the surface reflectivities.
grazAng = 1:0.1:10; freq = 10e9; reflectivity_v = surfaceReflectivityLand(Model="UlabyDobson", ... LandType="Grass",Polarization="V"); nrcs_v = reflectivity_v(grazAng,freq); reflectivity_h = surfaceReflectivityLand(Model="UlabyDobson", ... LandType="Grass",Polarization="H"); nrcs_h = reflectivity_h(grazAng,freq); plot(grazAng,pow2db(nrcs_v)) hold on plot(grazAng,pow2db(nrcs_h)) grid on legend('Vertical Polarization','Horizontal Polarization') xlabel('Grazing Angle (deg)') ylabel('NRCS (dB m^2/m^2)') title('Ulaby-Dobson Model')
Create Land Surface in Radar Scenario
Create a surface with two hills. Plot the surface on a 200-by-200 meter grid with grid points one meter apart. Add the surface to a radar scenario. Assume the surface has a radar reflectivity defined by a constant gamma model.
[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); axis equal axis tight shading interp simTime = 3; scene = radarScenario(UpdateRate = 1, ... IsEarthCentered = false,StopTime = simTime); gammaDB = surfacegamma('Flatland'); refl = surfaceReflectivityLand(Model = 'ConstantGamma',Gamma = gammaDB); srf = landSurface(scene,RadarReflectivity = refl, ... Terrain = ht,Boundary = [-100,100;-100,100]);
Use surface manager to identify the surface.
scene.SurfaceManager
ans = SurfaceManager with properties: EnableMultipath: 0 UseOcclusion: 1 Surfaces: [1x1 radar.scenario.LandSurface]
scene.SurfaceManager.Surfaces
ans = LandSurface with properties: RadarReflectivity: [1x1 surfaceReflectivityLand] ReflectionCoefficient: [1x1 radar.scenario.SurfaceReflectionCoefficient] ReflectivityMap: 1 ReferenceHeight: 0 Boundary: [2x2 double] Terrain: [201x201 double]
Obtain and plot the height of the surface at the point (50,-30).
xt = 50; yt = -30; htx = height(srf,[xt,yt])
htx = 21.1046
hold on plot3(xt,yt,htx+5,'ow','MarkerFaceColor','r') xlabel('x') ylabel('y') hold off
Display Reflectivity Matrix for Land
Create a land normalized reflectivity object using the Ulaby-Dobson model and a grass land type. Enable polarization and specify the cross-polarization reflectivity. Obtain the NRCS at a frequency of 10 GHz over grazing angles from 1 to 10 degrees. Plot the reflectivities.
grazAng = 0:0.1:20; freq = 10e9; surf = surfaceReflectivityLand(Model='UlabyDobson', ... LandType='Grass',EnablePolarization=true, ... GrazingAngle=0:.1:90,Frequency=[100,1e6,11e6], ... ReflectivityHV=0.05*sind(0:.1:90)'*[1 1 1], ... ReflectivityVH=0.04*sind(0:.1:90)'*[1 1 1])
surf = surfaceReflectivityLand with properties: EnablePolarization: 1 CrossPolarization: 'Full' Model: 'UlabyDobson' LandType: 'Grass' ReflectivityHV: [901x3 double] ReflectivityVH: [901x3 double] Frequency: [100 1000000 11000000] GrazingAngle: [0 0.1000 0.2000 0.3000 0.4000 0.5000 0.6000 0.7000 0.8000 0.9000 1 1.1000 1.2000 1.3000 1.4000 1.5000 1.6000 1.7000 1.8000 1.9000 2 2.1000 2.2000 2.3000 2.4000 2.5000 2.6000 2.7000 2.8000 2.9000 3 3.1000 ... ] (1x901 double) Speckle: 'None'
nrcs = surf(grazAng,freq); plot(grazAng,pow2db(squeeze(nrcs(1,1,:))), ... grazAng,pow2db(squeeze(nrcs(2,2,:))), ... grazAng,pow2db(squeeze(nrcs(1,2,:))), ... grazAng,pow2db(squeeze(nrcs(2,1,:)))) legend('HH','VV','HV','VH'); grid on xlabel('Grazing Angle (deg)') ylabel('NRCS (dB m^2/m^2)') title('Ulaby-Dobson Model for Land Surface')
More About
Land Reflectivity Models and Land Types
Model | Land Type | Range of Validity | Settable Properties | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
|
| |||||||||||||||||
|
|
|
| |||||||||||||||||
|
|
|
| |||||||||||||||||
|
|
|
| |||||||||||||||||
|
|
|
| |||||||||||||||||
'Nathanson' – Applicable up to Ka band for low grazing
angle surface radars and medium grazing angle airborne radars for low mountains,
farmland, and wooded areas. See [3]. |
|
|
| |||||||||||||||||
|
|
|
| |||||||||||||||||
| Gamma |
Constant Gamma Model
The constant-gamma model expresses a simple analytic relationship between the normalized radar cross-section and grazing angle.
σ = 10(γ/10)sin(θ)
γ is defined by the Gamma
property and
θ is the grazing angle input argument graz
given
in degrees. The default value of Gamma
is –20, which is representative
of flat land.
Speckle Model
Speckle is modeled as an uncorrelated, multiplicative factor I = σ∙n, where σ represents the clutter RCS and n are independent identically distributed (IDD) mean noise samples with unity mean. Because speckle is correlated with underlying terrain RCS, it is usually applied to radar intensity. The speckle noise models include Weibull, Rayleigh, and lognormal.
References
[1] Barton, David Knox. Radar Equations for Modern Radar. Artech House, 2013.
[2] Long, Maurice W. Radar Reflectivity of Land and Sea. 3rd ed, Artech House, 2001.
[3] Nathanson, Fred E., et al. Radar Design Principles: Signal Processing and the Environment. 2. ed., Repr, Scitech Publ, 2004.
[4] Reilly, J. P., R. L. McDonald, and G. D. Dockery. "RF-Environment Models for the ADSAM Program." Report No. A1A97U-070, Laurel, MD: Johns Hopkins University Applied Physics Laboratory, August 22, 1997.
[5] Billingsley, J. Barrie. Low-Angle Radar Land Clutter: Measurements and Empirical Models. William Andrew Pub. : SciTech Pub. ; Institution of Electrical Engineers, 2002.
[6] Richards, M. A., et al., editors. Principles of Modern Radar. SciTech Pub, 2010.
[7] Morchin, Fred E., J. Patrick Reilly, and Marvin Cohen. Radar Design Principles: Signal Processing and the Environment. 2nd ed. New York: McGraw-Hill, 1991.
[8] Ulaby, Fawwaz T., and M. Craig Dobson. Handbook of Radar Scattering Statistics for Terrain. Artech House, 1989.
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using MATLAB® Coder™.
Version History
Introduced in R2022a
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)
Asia Pacific
- Australia (English)
- India (English)
- New Zealand (English)
- 中国
- 日本Japanese (日本語)
- 한국Korean (한국어)