# surfaceReflectivity

Normalized reflectivity of surface

Since R2022a

## Description

The `surfaceReflectivity` System object™ creates a common interface for the `surfaceReflectivityLand`, `surfaceReflectivityCustom`, and `surfaceReflectivitySea` System objects.

To compute the normalized reflectivity:

1. Create the `surfaceReflectivity` object and set its properties.

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

## Creation

### Syntax

``refl = surfaceReflectivity``
``refl = surfaceReflectivity(surfacetype)``
``refl = surfaceReflectivity(surfacetype,Name=Value)``

### Description

example

````refl = surfaceReflectivity` creates a normalized reflectivity object, `refl`, for a land surface. Use this object to generate a normalized radar cross section (NRCS) (also called surface σ0) as a function of frequency and grazing angle. This syntax creates a constant gamma land reflectivity model with a constant gamma value of -20 dB, which is representative of flatland.```
````refl = surfaceReflectivity(surfacetype)` creates a normalized reflectivity object, `refl`, for a `surfacetype` specified as one of `'Land'`, `'Sea'`, or `'Custom'`. Use this object to generate a normalized radar cross section (NRCS) (also called surface σ0) as a function of frequency and grazing angle.```

example

````refl = surfaceReflectivity(surfacetype,Name=Value)` also creates a normalized reflectivity object for surface type `surfacetype` 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 = surfaceReflectivity('Land',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.```

## Usage

### Syntax

``nrcs = refl(graz,freq)``
``[nrcs,speck] = refl(___)``

### Description

````nrcs = refl(graz,freq)` returns the normalized radar cross section `nrcs` at grazing angle `graz` and frequency `freq`.```
````[nrcs,speck] = refl(___)` also returns multiplicative speckle `speck`.```

### Input Arguments

expand all

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.

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

Example: `freq = 70e9`

### 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

`${\sigma }^{0}=\left[\begin{array}{cc}{\sigma }_{HH}^{0}& {\sigma }_{HV}^{0}\\ {\sigma }_{VH}^{0}& {\sigma }_{VV}^{0}\end{array}\right]$`

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

 `step` Run System object algorithm `release` Release resources and allow changes to System object property values and input characteristics `reset` Reset internal states of System object

## Examples

collapse all

Obtain the constant gamma normalized reflectivity for using the default gamma value of -20 dB at a frequency of 10 GHz and a grazing angle of 10 degrees.

```grazAng = 10; freq = 10e9; refl = surfaceReflectivity```
```refl = surfaceReflectivityLand with properties: EnablePolarization: 0 Model: 'ConstantGamma' Gamma: -20 Speckle: 'None' ```
`nrcs = refl(grazAng,freq)`
```nrcs = 0.0017 ```

Create a normalized reflectivity cross-section object for a land surface using the GIT model and a soil land type. Obtain the NRCS at a frequency of 10 GHz over grazing angles from 20 to 60 degrees. Assume a standard deviation of surface height of 1 m.

```grazAng = 20:60; freq = 10e9; refl = surfaceReflectivity('Land','Model','GIT','LandType','Soil', ... 'SurfaceHeightStandardDeviation',1); nrcs = refl(grazAng,freq);```

Plot normalized reflectivities for grazing angles from 20 to 60 degrees.

```plot(grazAng,pow2db(nrcs)) grid on xlabel('Grazing Angle (deg)') ylabel('NRCS (dB m^2/m^2)') title('GIT Model')```

Create a sea normalized reflectivity object using the default NRL model and a sea state of 2. Obtain the normalized reflectivity at 10 GHz over grazing angles from 0.1 to 10 degrees. Assume horizontal polarization.

```grazAng = 0.1:0.1:10; freq = 10e9; ss = 2; pol = 'H';```

Use the `surfaceReflectivity` object to obtain the normalized reflectivity.

```refl = surfaceReflectivity('Sea',SeaState = ss,Polarization = pol); nrcs = refl(grazAng,freq);```

Plot the reflectivity as a function of grazing angle.

```plot(grazAng,pow2db(nrcs)) grid on xlabel('Grazing Angle (deg)') ylabel('NRCS (dB m^2/m^2)') title('NRL Model, Horizontal Polarization')```

Define a custom NRCS table using Nathanson reflectivity values for farmlands. Assume Rayleigh speckle. Next, calculate the RCS of a clutter patch and estimate the clutter-to-noise ratio at the receiver. Assume that the patch is 1000 meters away from the radar system. The azimuth and elevation beamwidths are 1 degree and 3 degrees, respectively. The grazing angle is 10 degrees. The pulse width is 10 microseconds. The radar operates at an L-band frequency of 1.5 GHz with a peak power of 5 kw. Use the general `surfaceReflectivity` object.

```rng = 1000; bwAz = 1; bwEl = 3; graz = 10; tau = 10e-6; freq = 1.5e9; ppow = 5000;```

Configure a custom surface.

```nathansonNRCS = db2pow([-35 -33 -32; -31 -30 -29; -29 -27 -25; ... -19 -17 -15; -14 -15 -14]); nathansonFreq = [1.5 3 6]*1e9; nathansonGrazAng = [1.5 3 10 30 60]; refl = surfaceReflectivity('Custom',Reflectivity = nathansonNRCS, ... Frequency = nathansonFreq,GrazingAngle = nathansonGrazAng, ... Speckle = "Rayleigh")```
```refl = surfaceReflectivityCustom with properties: EnablePolarization: 0 Reflectivity: [5x3 double] Frequency: [1.5000e+09 3.0000e+09 6.0000e+09] GrazingAngle: [1.5000 3 10 30 60] Speckle: 'Rayleigh' SpeckleScale: 0.7979 ```
`[nrcs,n] = refl(graz,freq)`
```nrcs = 0.0013 ```
```n = 0.5108 ```

Calculate the clutter RCS and apply multiplicative speckle

`sigma = clutterSurfaceRCS(nrcs,rng,bwAz,bwEl,graz,tau)`
```sigma = 6.6253 ```
`rcs = sigma.*n `
```rcs = 3.3841 ```

Calculate clutter-to-noise ratio.

```lambda = freq2wavelen(freq); cnr = radareqsnr(lambda,rng,ppow,tau,'rcs',rcs)```
```cnr = 69.2976 ```

## Version History

Introduced in R2022a