Main Content

surfaceReflectivitySea

Normalized reflectivity of sea surface

Since R2022a

Description

Normalized reflectivity is the radar cross-section of a unit area of a sea 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:

  1. Create the surfaceReflectivitySea 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

refl = surfaceReflectivitySea creates a normalized reflectivity object, refl, for a sea surface. Use this object to generate a normalized radar cross section (NRCS). This syntax assumes a 'NRL' sea model with a sea state of zero.

example

refl = surfaceReflectivitySea(Name=Value) also creates a normalized reflectivity object for a sea 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 = surfaceReflectivitySea(Model="Hybrid",SeaState=2,Speckle="Rayleigh") creates a normalized reflectivity object for a sea surface using the Hybrid model with a SeaState of 2 and a Rayleigh Speckle type.

example

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':

  • If the Model property is not set to 'ConstantGamma', the ReflectivityHV and ReflectivityVH 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', the CrossPolarization 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 the ReflectivityHV property can be set. The ReflectivityVH property is assumed to be equal to the ReflectivityHV property. In addition, speckle values corresponding to the HV and VH components are equal.

  • If the Model property is 'ConstantGamma', setting the CrossPolarization property to 'Symmetric' requires that the HV and VH components of the Gamma 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

Sea reflectivity model, specified as 'NRL', 'APL', 'GIT', 'Hybrid', 'Masuko', 'Nathanson', 'RRE', 'Sittrop', 'TSC', or 'ConstantGamma'. The table.Sea Reflectivity Models summarize the sea surface models available in the radar simulation and their domain of application

Sea state, specified as a nonnegative integer from 0 – 8.

Data Types: double

Polarization of reflectivity model, specified as 'H' for horizontal polarization or 'V' for vertical polarization.

Dependencies

To enable this property, set the EnablePolarization property to false and set the Model property to any value except 'ConstantGamma'.

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 sea state and operating frequency. Units are in dB.

  • If EnablePolarization is false, specify Gamma as a scalar.

  • If EnablePolarization is true, specify Gamma 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 the CrossPolarization property to 'Full' for unique speckle values for all components or 'Symmetric' to set the speckle value for HV = VH.

Example: -25

Dependencies

To enable this property, set the Model property to ConstantGamma.

Data Types: double

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

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'.

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

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 'Constant Gamma'.

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.

example

nrcs = refl(graz,freq,lookangle) also specifies the radar look angle lookangle with respect to the wind direction. To enable this syntax, set the Model property to 'APL', 'GIT', 'Hybrid', 'Masuko', 'Sittrop', or 'TSC'.

[nrcs,speck] = refl(___) also returns multiplicative speckle speck.

Input Arguments

expand all

Grazing angle of surface relative to radar, specified as a scalar or a length-Q row vector of nonnegative values. Grazing angles must lie between 0° and 90°. Units are in degrees.

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

Example: freq = 70e9

Look angle with respect to wind direction, specified as a scalar between 0° and 180°. The look angle is zero when looking upwind.

Dependencies

To enable this argument, set the Model property to 'APL', 'GIT', 'Hybrid', 'Masuko', 'Sittrop', or 'TSC'.

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 a Q-by-R matrix where Q is the length of the angles vector in graz 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)

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

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')

Figure contains an axes object. The axes object with title NRL Model, Vertical Polarization, xlabel Grazing Angle (deg), ylabel NRCS (dB blank m Squared baseline /m Squared baseline ) contains an object of type line.

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')

Figure contains an axes object. The axes object with title NRL Model, Vertical Polarization, xlabel Grazing Angle (deg), ylabel NRCS (dB blank m Squared baseline /m Squared baseline ) contains an object of type line.

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: [1x1 surfaceReflectivitySea]
    ReflectionCoefficient: [1x1 radar.scenario.SurfaceReflectionCoefficient]
          ReflectivityMap: 1
          ReferenceHeight: 16
                 Boundary: [2x2 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')

Figure contains an axes object. The axes object with title NRL Model: Sea State 6, xlabel Grazing Angle (deg), ylabel NRCS (dB blank m Squared baseline /m Squared baseline ) contains 4 objects of type line. These objects represent HH, VV, HV, VH.

More About

expand all

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