surfaceReflectivitySea
Description
This System object™ creates a normalized reflectivity object for a sea surface. Use
surfaceReflectivitySea to generate normalized radar cross section (NRCS), and
optionally speckle, as a function of frequency and grazing angle for sea surfaces. NRCS is the
radar cross section (RCS) 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 RCS.
NRCS is used to calculate RCS and surface clutter returns. Speckle is a multiplicative
factor used to make surface clutter appear noisier and is especially applicable to imaging
applications. Attach a surfaceReflectitySea object to a seaSurface in
radarScenario using
SurfaceManager. See
Radar Surface Clutter Simulation for more information.
To compute the normalized reflectivity:
Create the
surfaceReflectivitySeaobject 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 System object, refl = surfaceReflectivitySearefl, for a sea surface. Use refl
to generate normalized radar cross section as a function of frequency and grazing angle.
This syntax creates a normalized reflectivity object for an "NRL" sea
Model with a SeaState of
1.
also creates a normalized reflectivity object for a sea surface with each specified
refl = surfaceReflectivitySea(PropertyName=Value)PropertyName set to the corresponding Value.
For example, the Model and SeaState properties
specify built-in reflectivity models. The table Sea Reflectivity Models summarizes supported
sea surface models and their domain of application. You can specify additional pairs of
arguments in any order as (PropertyName1=Value1, …
,PropertyNameN=ValueN).
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.
Sea reflectivity model, specified as "NRL",
"APL", "GIT", "Hybrid",
"Masuko", "Nathanson", "RRE",
"Sittrop", "TSC", or
"ConstantGamma".
Tip
It is not recommended to use sea models outside of their valid frequency, grazing angle, and sea state ranges. See Sea Reflectivity Models for more information about the range of validity for supported sea models.
Sea state, specified as a nonnegative integer from 0 – 8. See Sea States for more information
on sea state values. When Model is set to
"ConstantGamma", specify the Gamma property
instead of the SeaState.
Data Types: double
Enable polarization, specified as true or
false. When EnablePolarization is set to
true, the output nrcs argument includes
polarimetric normalized radar cross section components.
EnablePolarization enables additional polarization-related
properties when set to either true or
false.
When set to true, EnablePolarization enables
the CrossPolarization property. Specifying the
CrossPolarization property enables additional properties that are
relevant for frequencies and grazing angles that you can specify using additional
properties:
| Enabled Property | Description |
|---|---|
|
|
| Frequencies associated with polarimetric reflectivity components.
You can specify this property when |
| Grazing angles associated with polarimetric reflectivity
components. You can specify this property when |
When set to false, EnablePolarization
enables:
| Enabled Property | Enabled Property |
|---|---|
Polarization – Mean polarization | Mean polarization of the sea reflectivity model. You can specify
this property when |
Data Types: char | string
Cross-polarization type, specified as "Full" or
"Symmetric".
When set to "Full", the CrossPolarization
property enables additional polarization-related properties and impacts
speckle:
| Enabled Property | Description | Speckle |
|---|---|---|
Note The HH and VV co-polarized
components are determined by the particular model selected in the
|
| When the |
ReflectivityVH – VH cross-polarized reflectivity component |
|
When set to "Symmetric", the
CrossPolarization property enables additional
polarization-related properties and impacts speckle:
| Enabled Property | Description | Speckle |
|---|---|---|
Note The HH and VV co-polarized
components are determined by the particular model selected in the
|
|
|
Data Types: char | string
Specify normalized radar cross section (NRCS), or reflectivity values, for the
cross-polarized HV reflectivity component. HV
represents horizontal transmission and vertical reception. Q corresponds
to the number of angles in GrazingAngle and R
corresponds to the number of frequencies in the Frequency
property.
The HH and VV
co-polarized polarimetric reflectivity components are determined by the particular model
selected in the Model property.
The returned nrcs for cross-polarized components is calculated using
nearest neighbor interpolation at a given grazing angle and frequency. Therefore, normalized
reflectivity values should cover grazing angles from 0–90° and all expected frequencies to
avoid interpolation errors. Units are dimensionless but commonly expressed as m²/m².
Dependencies
To enable this property, set the EnablePolarization property
to true and set the Model property to any
value other than "ConstantGamma".
Data Types: double
Specify normalized radar cross section (NRCS), or reflectivity values, for the
cross-polarized VH reflectivity component. VH
represents vertical transmission and horizontal reception. Q corresponds
to the number of angles in GrazingAngle and R
corresponds to the number of frequencies in the Frequency
property.
The returned nrcs for cross-polarized components is calculated using
nearest neighbor interpolation at a given grazing angle and frequency. Therefore, normalized
reflectivity values should cover grazing angles from 0–90° and all expected frequencies to
avoid interpolation errors. Units are dimensionless but commonly expressed as m²/m².
Dependencies
To enable this property, set the EnablePolarization property
to true, set the CrossPolarization property to
"Full", and set the Model property to any
value other than "ConstantGamma".
Data Types: double
Frequencies associated with polarimetric reflectivity components, specified as a
length-R row vector, where R is no less than
two. When R is a 2-element vector, it defines the minimum and maximum
frequencies over which the reflectivity components are valid. By default, the
EnablePolarization property is false and the
Frequency property is ignored. 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 "ConstantGamma".
Data Types: double
Grazing angles associated with polarimetric reflectivity components, specified as a
length-R row vector, where R is no less than
two. When Q is a 2-element vector, it defines the minimum and maximum
Grazing Angle over which the reflectivity components are valid.
By default, the EnablePolarization property is
false and the GrazingAngle property is
ignored. Units are in degrees.
Example: [45:60]
Dependencies
To enable this property, set the EnablePolarization property
to true and set the Model property to any
value except "ConstantGamma".
Data Types: double
Mean polarization of surface reflectivity model, specified as "H"
or "V". "H" designates horizontal polarization and
"V" designates vertical polarization.
Dependencies
To enable this property, set the EnablePolarization property
to false and set the Model property to any
value except "ConstantGamma".
Data Types: char | string
Gamma value, γ, used in the Constant Gamma Model, specified as a
scalar or 2-by-2 real-valued matrix. When Model is set to
"ConstantGamma", you specify the Gamma value
that represents the desired sea characteristics at a given frequency instead of the
SeaState property. The default value of -40 is representative
of sea state 3. Units are in dB.
If
EnablePolarizationisfalse, specifyGammaas a scalar.If
EnablePolarizationistrue, specifyGammaas 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. WhenCrossPolarizationis set to"Symmetric", GammaVH must be set equal to GammaHV.
Tip
You can use the surfacegamma function to return the
gamma value for supported terrain types and frequencies.
Dependencies
To enable this property, set the Model property to
"ConstantGamma".
Data Types: double
Speckle distribution type, specified as one of "None",
"Lognormal", "Rayleigh", or
"Weibull". Speckle is a multiplicative factor used to make
surface clutter appear noisier and is especially applicable to imaging applications. See
Speckle Model for more
information.
"None"– No speckle is applied."Lognormal"– Speckle has a lognormal distribution. Define the distribution using theSpeckleMeanandSpeckleStandardDeviationproperties. Default values of these properties create speckle with a normalized mean lognormal distribution."Rayleigh"– Speckle has a Rayleigh distribution. Define the distribution using theSpeckleScaleproperty. The default value of this property creates speckle with a unit mean Rayleigh distribution."Weibull"– Speckle has a Weibull distribution. Define the distribution using theSpeckleScaleandSpeckleShapeproperties. The default values of these properties create speckle with a unit mean Weibull distribution.
Data Types: char | string
Mean value of lognormal-distributed speckle, specified
as a scalar. When the Speckle
property is set to "Lognormal",
speckle has a lognormal distribution and you can
define the distribution using the
SpeckleMean and
SpeckleStandardDeviation
properties. Default values of these properties
create speckle with a normalized mean lognormal
distribution.
A lognormal distribution is parameterized with a mean, μlog, and a standard deviation, σlog. The expected value of the speckle distribution can be expressed as
A
μlog of
-0.5*log(2) and a
σlog of
sqrt(log(2)) results in a
speckle_dist equal to
one.
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. When the Speckle
property is set to "Lognormal", speckle has a
lognormal distribution and you can define the distribution using
the SpeckleMean and
SpeckleStandardDeviation
properties. Default values of these properties create speckle
with a normalized mean lognormal distribution.
A lognormal distribution is parameterized with a mean, μlog, and a standard deviation, σlog. The expected value of the speckle distribution can be expressed as
A
μlog of
-0.5*log(2) and a
σlog of
sqrt(log(2)) results in a
speckle_dist equal to one.
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.
When the
Speckleproperty is set to"Rayleigh", speckle has a Rayleigh distribution. The default value ofSpeckleScalecreates speckle with a unit mean Rayleigh distribution. A Rayleigh distribution is parameterized only by the speckle scale, λscale. The expected value of the speckle distribution can be expressed asA λscale of
sqrt(4/π)results in a speckle_dist equal to one.When the
Speckleproperty is set to"Weibull", speckle has a Weibull distribution and you can define the distribution using theSpeckleScaleandSpeckleShapeproperties. The default values of these properties create speckle with a unit mean Weibull distribution. A Weibull distribution is parameterized by the speckle scale, λscale, and speckle shape, kshape.where is Γ is the
gammafunction. A λscale ofsqrt(4/π)and a kshape of2results in a speckle_dist equal to one.
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. When the
Speckle property is set to "Weibull",
speckle has a Weibull distribution and you can define the distribution using the
SpeckleScale and SpeckleShape properties.
The default values of these properties create speckle with a unit mean Weibull
distribution.
A Weibull distribution is parameterized by the speckle scale, λscale, and speckle shape, kshape.
where Γ is the gamma function. A λscale of
sqrt(4/π) and a kshape
of 2 results in a speckle_dist equal to
one.
Dependencies
To enable this property, set the Speckle property to
"Weibull".
Data Types: double
Usage
Description
Input Arguments
Grazing Angle of surface relative to radar, specified as a scalar or a length-Q row vector of nonnegative values. It is not recommended to use Sea Reflectivity Models outside of their defined validity regions. Grazing angles must lie between 0° and 90°. Units are in degrees.
Data Types: double
Transmitted frequencies, specified as a positive scalar or R-length vector of positive values. Units are in Hz.
Example: freq = 70e9
Data Types: double
Look angle with respect to wind direction, specified as a scalar between 0° and 180°. The look angle is zero when looking upwind.
The look angle for different directions is:
Upwind – 0°
Downwind – 180°
Crosswind – 90°
Dependencies
To enable this argument, set the Model property to
"APL", "GIT", "Hybrid",
"Masuko", "Sittrop", or
"TSC".
Data Types: double
Output Arguments
Normalized radar cross section, also referred to as surface
σ0. Units are dimensionless, but often expressed as
m²/m². nrcs is returned as an array with dimensions that are
determined by object properties:
For the non-polarimetric reflectivity case,
nrcsis returned as a real-valued Q-by-R matrix, where Q is the length ofgrazand R is the length offreq.For the polarimetric reflectivity case,
nrcsis returned as a real-valued 2-b-2-by-Q-by-R array, where Q is the length ofgrazand R is the length offreq. For each value of Q and R,nrcsforms a polarimetric normalized radar cross section (NRCS) reflectivity matrix, σ0, of the formwhere σ0HV and σ0VH are the cross-polarization components specified by the
ReflectivityHVandReflectivityVHproperties. The σ0HH and σ0VV co-polarized components are derived from the specified model as set by theModelproperty.
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 matrix, set the
EnablePolarization to true.
Multiplicative speckle, returned as a Q-by-R
matrix where Q is the length of ang and
R is the length of freq. For the
polarimetric reflectivity case, speckle is returned as a
2-by-2-by-Q-by-R array.
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
Create a sea surface normalized reflectivity object using the default NRL model and a sea state of 6. Obtain the normalized reflectivity at a frequency of 1 GHz over grazing angles from 0.1 to 10 degrees and assume vertical polarization. Plot the normalize reflectivity as a function of grazing angle.
grazAng = 0.1:0.1:10; freq = 1e9; seastate = 6; pol = 'V'; refl = surfaceReflectivitySea(SeaState = seastate,Polarization = pol); nrcs = refl(grazAng,freq); plot(grazAng,pow2db(nrcs)) grid on xlabel('Grazing Angle (deg)') ylabel('NRCS (dB m^2/m^2)') title('NRL Model, Vertical Polarization')

Create a sea surface normalized reflectivity object using the default model parameters. Obtain the normalized reflectivity at a frequency of 1 GHz over grazing angles from 0.1 to 10 degrees and assume vertical polarization. Plot the normalize reflectivity as a function of grazing angle.
grazAng = 0.1:0.1:10; freq = 1e9; refl = surfaceReflectivitySea
refl =
surfaceReflectivitySea with properties:
EnablePolarization: 0
Model: 'NRL'
SeaState: 1
Polarization: 'H'
Speckle: 'None'
nrcs = refl(grazAng,freq); plot(grazAng,pow2db(nrcs)) grid on xlabel('Grazing Angle (deg)') ylabel('NRCS (dB m^2/m^2)') title('NRL Model, Vertical Polarization')

Configure a radarscenario to simulate a reflective sea surface. Add a sea surface object to define the physical properties of the scenario surface. The surface is a simple 400-by-400 meter rectangle. Use the surfaceReflectivitySea function to create a GIT model with a sea state 3. Then, use the scenario seaSurface method to add the rectangular sea region and the radar reflectivity model to the scenario. Use a surface reference height of 16 meters.
scene = radarScenario(UpdateRate = 0, IsEarthCentered = false); refl = surfaceReflectivitySea(Model = "GIT", SeaState = 3, Polarization = "V"); srf = seaSurface(scene,RadarReflectivity = refl, ... Boundary=[-200 200; -200 200],ReferenceHeight = 16)
srf =
SeaSurface with properties:
WindSpeed: 10
WindDirection: 0
Fetch: Inf
SpectralModel: []
RadarReflectivity: [1×1 surfaceReflectivitySea]
ReflectionCoefficient: [1×1 radar.scenario.SurfaceReflectionCoefficient]
ReflectivityMap: 1
ReferenceHeight: 16
Boundary: [2×2 double]
Create a sea surface normalized reflectivity object using the NRL model and a sea state of 6. 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.
refl = surfaceReflectivitySea(Model='NRL',SeaState=6, ... EnablePolarization=true,CrossPolarization='full', ... GrazingAngle = 0:.1:90,Frequency = [100,1e6,11e6], ... ReflectivityHV=0.002*sind(0:.1:90)'*[1 1 1], ... ReflectivityVH=0.001*sind(0:.1:90)'*[1 1 1]);
Set the grazing angles and frequencies. Plot the reflectivities.
grazAng = 0.1:0.1:10; freq = 10e9; nrcs = refl(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('NRL Model: Sea State 6')

More About
| Model | Type | Grazing Angles | Frequency Range | Sea State | Settable Properties | ||
|---|---|---|---|---|---|---|---|
| Empirical | 0.1 – 60 | 0.5 – 35 | 0 – 6 |
| ||
See [3]. | Semi-empirical | 0.1 – 10 | 1 – 100 | 1 – 6 |
| ||
| Semi-empirical | 0.1 – 10 | 1 – 100 | 1 – 6 |
| ||
See [5]. | Semi-empirical | 0.1 – 30 | 0.5 – 35 | 0 – 5 |
| ||
| Empirical | 30 – 60 | X (8 – 12) Ka (26.5 – 40) | 1 – 6 |
| ||
See [7]. | Empirical | 0.1 – 60 | UHF (0.3 – 1), L (1 – 2), S(2 – 4), C(4 – 8), X(8 – 12), Ku(12 – 18), Ka(32 – 36) | 0 – 6 |
| ||
| Mathematical | < 10 | 9 – 10 | 0 – 6 |
| ||
See [4]. | Empirical | 0.2 – 10 | X (8 – 12) | 0 – 7 |
| ||
See [5]. | Empirical | 0.1 – 90 | 0.5 – 35 | 0 – 5 |
| ||
| Mathematical | — | — |
|
The sea state refers to the condition of the sea surface. Sea state is affected by
factors such as wind speed, wave height, and wave period. You can use the searoughness function to return the
standard deviation of the surface height for a specified sea state. The sea state is
typically classified using the World Meteorological Organization (WMO) sea state code, which
ranges from 0 to 9:
Sea State 0: Calm (glassy) – Wave height is 0 meters.
Sea State 1: Calm (rippled) – Wave height up to 0.1 meters.
Sea State 2: Smooth (wavelets) – Wave height between 0.1 and 0.5 meters.
Sea State 3: Slight – Wave height between 0.5 and 1.25 meters.
Sea State 4: Moderate – Wave height between 1.25 and 2.5 meters.
Sea State 5: Rough – Wave height between 2.5 and 4 meters.
Sea State 6: Very rough – Wave height between 4 and 6 meters.
Sea State 7: High – Wave height between 6 and 9 meters.
Sea State 8: Very high – Wave height between 9 and 14 meters.
Sea State 9: Phenomenal – Wave height over 14 meters.
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.
Speckle is modeled as an uncorrelated, multiplicative factor I = σ*n, where σ is the clutter RCS and n represents random numbers drawn from an independent identically-distributed unity mean noise statistical distribution. Because speckle is correlated with underlying terrain RCS, it is usually applied to radar intensity. Speckle noise model distributions include lognormal, Rayleigh, and Weibull.
References
[1] Gregers-Hansen, V. and Mittal, R. "An Improved Empirical Model for Radar Sea Clutter Reflectivity." NRL/MR/5310-12-9346, Apr. 27, 2012.
[2] Barton, David Knox. Radar Equations for Modern Radar. Artech House, 2013.
[3] 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.
[4] Ward, Keith D., Simon Watts, and Robert J. A. Tough. Sea Clutter: Scattering, the K-Distribution and Radar Performance. IET Radar, Sonar, Navigation and Avionics Series 20. London: Institution of Engineering and Technology, 2006.
[5] Antipov, Irina. "Simulation of Sea Clutter Returns." Department of Defence, June 1998.
[6] Masuko, Harunobu, Ken'ichi Okamoto, Masanobu Shimada, and Shuntaro Niwa. "Measurement of Microwave Backscattering Signatures of the Ocean Surface Using X Band and K a Band Airborne Scatterometers." Journal of Geophysical Research 91, no. C11 (1986): 13065. https://doi.org/10.1029/JC091iC11p13065.
[7] Nathanson, Fred E., et al. Radar Design Principles: Signal Processing and the Environment. 2. ed., Repr, Scitech Publ, 2004.
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)