surfaceReflectivityCustom
Description
This System object™ creates a normalized reflectivity object for custom surfaces. Use
surfaceReflectivityCustom to generate normalized radar cross section (NRCS), and
optionally speckle, as a function of frequency and grazing angle for custom 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 surfaceReflectityLand object to a landSurface or
seaSurface in
radarScenario using
SurfaceManager. See
Radar Surface Clutter Simulation for more information.
To compute the normalized reflectivity:
Create the
surfaceReflectivityCustomobject 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 = surfaceReflectivityCustomrefl, for a custom surface with default
reflectivities. Use refl to generate normalized radar cross section
as a function of frequency and grazing angle. The default custom surface has
reflectivities set to 1 m²/m² for grazing angles from 0° – 90° and frequencies from 0 –
1e20 Hz.
also creates a normalized reflectivity object for custom surfaces with each specified
refl = surfaceReflectivityCustom(PropertyName=Value)PropertyName set to the corresponding Value.
For example, all normalized polarimetric reflectivity components can be specified when
EnablePolarization is set to true and
CrossPolarization is set to "Full". 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.
Normalized radar cross section (NRCS) or mean reflectivity values, specified as an
Q-by-R real-valued matrix, where
Q corresponds to the number of angles in
GrazingAngle and R corresponds to the number
of frequencies in the Frequency property.
For more than one surface, you can specify an Q-by-R-by-P real-valued array, where P is the number of surfaces.
Units are dimensionless but often expressed in m²/m².
Dependencies
To enable this property, set the EnablePolarization property
to false.
Data Types: double
Frequencies associated with Reflectivity or 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 reflectivities are
valid. Frequency units are in Hz.
Example: [1e6,10e6]
Data Types: double
Grazing angles associated with Reflectivity or polarimetric
reflectivity components, specified as a length-Q row vector, where
Q is no less than two. When Q is a 2-element
vector, it defines the minimum and maximum Grazing Angle
over which the reflectivities are valid. Units are in degrees.
Example: [45:60]
Data Types: double
Enable polarization, specified as true or
false. When EnablePolarization is set to
true, the output argument nrcs includes polarimetric
normalized radar cross section components. EnablePolarization
enables additional properties when set to either true or
false.
When set to true, EnablePolarization enables
the CrossPolarization property. Specifying the
CrossPolarization property enables additional
polarization-related properties that are relevant for frequencies and grazing angles
that you can specify using additional properties:
| Enabled Property | Description |
|---|---|
|
|
When set to false, EnablePolarization
enables:
| Enabled Property | Enabled Property |
|---|---|
Reflectivity – Reflectivity values | Normalized radar cross section (NRCS), or reflectivity values. |
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 |
|---|---|---|
| HV is the cross-polarized reflectivity component that represents horizontal transmission and vertical reception. | When the |
ReflectivityVH – VH cross-polarized reflectivity component | VH is the cross-polarized reflectivity component that represents vertical transmission and horizontal reception. | |
| HH is the co-polarized reflectivity component that represents horizontal transmission and horizontal reception. | |
| VV is the co-polarized reflectivity component that represents vertical transmission and vertical reception. |
When set to "Symmetric", the
CrossPolarization property enables additional
polarization-related properties and impacts speckle:
| Enabled Property | Description | Speckle |
|---|---|---|
| HV is the cross-polarized
reflectivity component that represents horizontal transmission and vertical
reception. Reciprocity is assumed and the cross-polarization terms are set
to be equal so that |
|
| HH is the co-polarized reflectivity component that represents horizontal transmission and horizontal reception. | |
| VV is the co-polarized reflectivity component that represents vertical transmission and horizontal vertical. |
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.
For more than one surface, you can specify an Q-by-R-by-P array, where P is the number of surfaces.
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.
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.
For more than one surface, you can specify an Q-by-R-by-P array, where P is the number of surfaces.
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 CrossPolarization property
to "Full".
Data Types: double
Specify normalized radar cross section (NRCS) or reflectivity values, for the
co-polarized HH reflectivity component. HH
represents horizontal 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.
For more than one surface, you can specify an Q-by-R-by-P array, where P is the number of surfaces.
The returned nrcs for co-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 dimensional but commonly expressed as m²/m².
Dependencies
To enable this property, set the EnablePolarization property
to true.
Data Types: double
Specify normalized radar cross section (NRCS) or reflectivity values, for the
co-polarized VV reflectivity component. VV
represents vertical 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.
For more than one surface, you can specify an Q-by-R-by-P array, where P is the number of surfaces.
The returned nrcs for co-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 dimensional but commonly expressed as m²/m².
Dependencies
To enable this property, set the EnablePolarization property
to true.
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. 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
Surface index, specified as a scalar or length-N vector of positive values. N must be less than or equal to P, the number of surfaces.
Dependencies
To enable this argument, specify the Reflectivity property
or each polarimetric reflectivity component as an
Q-by-R-by-P array, where
P is the number of surfaces.
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 and input arguments:
For the non-polarimetric reflectivity case (
EnablePolarizationisfalse) and whenidxis a scalar,nrcsis returned as a real-valued Q-by-R array, where Q is the length ofgrazand R is the length offreq.For the non-polarimetric reflectivity case (
EnablePolarizationisfalse) and whenidxis a length-N vector,nrcsis returned as a real-valued N-by-Q-by-R array, where Q is the length ofgrazand R is the length offreq.For the polarimetric reflectivity case (
EnablePolarizationistrue) and whenidxis a scalar,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 are the co-polarized components specified byReflectivityHHandReflectivityVV.For the polarimetric reflectivity case (
EnablePolarizationistrue) and whenidxis a length-N vector,nrcsis returned as a real-valued 2-b-2-by-N-by-Q-by-R array, where Q is the length ofgrazand R is the length offreq. For each value of N, Q, and R,nrcsforms a polarimetric normalized radar cross section (NRCS) reflectivity matrix as described for the polarimetric reflectivity case whenidxis a scalar.
The returned normalized reflectivity for polarization components
σ0HV,
σ0VH,
σ0HH, and
σ0VV is
calculated using nearest neighbor interpolation at a given grazing angle and
frequency. To avoid interpolation errors, the normalized reflectivity values in the
ReflectivityHV, ReflectivityVH,
ReflectivityHH, and ReflectivityVV
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
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
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.
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.
Web サイトの選択
Web サイトを選択すると、翻訳されたコンテンツにアクセスし、地域のイベントやサービスを確認できます。現在の位置情報に基づき、次のサイトの選択を推奨します:
また、以下のリストから Web サイトを選択することもできます。
最適なサイトパフォーマンスの取得方法
中国のサイト (中国語または英語) を選択することで、最適なサイトパフォーマンスが得られます。その他の国の MathWorks のサイトは、お客様の地域からのアクセスが最適化されていません。
南北アメリカ
- América Latina (Español)
- Canada (English)
- United States (English)
ヨーロッパ
- 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)