surfaceReflectivityCustom
Description
Normalized reflectivity is the radar cross-section of a unit area of a general surface. Multiplying by the total area of the 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
surfaceReflectivityCustom
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 System object™
refl
= surfaceReflectivityCustomrefl
for a custom surface with default reflectivities. The default
custom surface has reflectivity set to 1 m²/m² for grazing angles from 0° – 90° for
frequencies from 0 – 1e20 Hz.
also creates a normalized reflectivity object for a surface with the specified property
refl
= surfaceReflectivityCustom(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 = surfaceReflectivityCustom(Reflectivity = nrcsTable,Frequency =
(0:10)*1e9,GrazingAngle = (0:0.001:2))
creates a custom normalized
reflectivity object from a table of reflectivity values nrcsTable
for
frequencies from 0 – 10 GHz and grazing angles from 0° – 2°.
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'
, theReflectivityHH
,ReflectivityVV
,ReflectivityHV
andReflectivityVH
properties are applicable, and unique speckle values are generated for all reflectivity components (SHH, SHV, SVH, and SVV).When the
CrossPolarization
property is set to'Symmetric'
, reciprocity applies for monostatic geometry and the cross-polarization terms are equal, SHV = SVH. When this input method is selected, theReflectivityHV
property is available, but theReflectivityVH
property is not available. TheReflectivityVH
property is assumed to be equal to theReflectivityHV
property. The speckle values corresponding to the HV and VH components are equal.
Dependencies
To enable this property, set the EnablePolarization
property
to true
.
Data Types: char
| string
Reflectivity
— Normalized radar cross section
ones(91,2)
(default) | Q-by-R real-valued matrix | Q-by-R-by-P real-valued
array
Normalized radar cross section (NRCS) or reflectivity values, specified as an
Q-by-R real-valued matrix. where
Q corresponds to the number of angles set in the
GrazingAngle
property and R corresponds to the
number of frequencies set in the Frequency
property.
For more than one surface, you can specify an Q-by-R-by-P real-valued array where P corresponds to the surface type index.
Units are dimensionless but often expressed in m²/m².
Dependencies
To enable this property, set the EnablePolarization
property
to false
.
Data Types: double
ReflectivityHH
— HH normalized radar cross section
zeros(91,2)
(default) | Q-by-R real-valued matrix | Q-by-R-by-P real-valued
array
Normalized radar cross section (NRCS), for the polarized
SHH component, Specified as a
Q-by-R real-valued matrix or
Q-by-R-by-P real-valued
array. The subscript HH represents horizontal transmission and
horizontal 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. Units are m²/m².
For more than one surface, you can specify an Q-by-R-by-P real-valued array where P corresponds to the surface type index.
The full, real reflectivity matrix in this case is given by
Reflectivity
= [ReflectivityHH
,
ReflectivityHV
; ReflectivityVH
,
ReflectivityVV
];
Dependencies
To enable this property, set the EnablePolarization
property
to true
.
Data Types: double
ReflectivityVV
— VV normalized radar cross section
zeros(91,2)
(default) | Q-by-R real-valued matrix | Q-by-R-by-P real-valued
array
Normalized radar cross section (NRCS), for the polarized
SVV component, Specified as a
Q-by-R real-valued matrix or
Q-by-R-by-P real-valued
array. The subscript VV represents vertical 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. Units are m²/m².
For more than one surface, you can specify an Q-by-R-by-P real-valued array where P corresponds to the surface type index.
The full, real reflectivity matrix in this case is given by
Reflectivity
= [ReflectivityHH
,
ReflectivityHV
; ReflectivityVH
,
ReflectivityVV
];
Dependencies
To enable this property, set the EnablePolarization
property
to true
.
Data Types: double
ReflectivityHV
— HV normalized radar cross section
zeros(91,2)
(default) | Q-by-R real-valued matrix | Q-by-R-by-P real-valued
array
Normalized radar cross section (NRCS), for the polarized
SHV component, specified as a
Q-by-R real-valued matrix or
Q-by-R-by-P real-valued
array. The subscript 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. Units are m²/m².
For more than one surface, you can specify an Q-by-R-by-P real-valued array where P corresponds to the surface type index.
The full, real reflectivity matrix in this case is given by
Reflectivity
= [ReflectivityHH
,
ReflectivityHV
; ReflectivityVH
,
ReflectivityVV
];
Dependencies
To enable this property, set the EnablePolarization
property
to true
.
Data Types: double
ReflectivityVH
— VH normalized radar cross section
zeros(91,2)
(default) | Q-by-R real-valued matrix | Q-by-R-by-P real-valued
array
Normalized radar cross section (NRCS), for the polarized
SVH component, Specified as a
Q-by-R real-valued matrix or
Q-by-R-by-P real-valued
array. The subscript VH represents vertical transmission and
horizontal 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. Units are m²/m².
Frequency
— Valid frequencies
[0 1e20]
(default) | length-R row-vector of real values
Valid frequencies for the normalized reflectivity, specified as a
length-R row-vector of real values. R
corresponds to the number of rows in the Reflectivity
property.
Frequency units are in Hz.
Data Types: double
GrazingAngle
— Grazing angles
0:90
(default) | length-Q row-vector of real values
Grazing angles, specified as a length-Q row-vector of real
values. Q corresponds to the number of columns in the
Reflectivity
property. Units are in degrees.
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
also specifies the surface type index nrcs
= refl(graz
,freq
,idx
)idx
of the surface patch. To
enable this syntax, specify the Reflectivity
property as an
M-by-N-by-P array, where
M corresponds to the number of angles specified in the
GrazingAngle
property, N corresponds to the
number of frequencies in the Frequency
property, and
P corresponds to the surface type index. MATLAB® array.
Input Arguments
graz
— Grazing angle
nonnegative scalar | M-length vector of nonnegative values
Grazing angle of the surface relative to the radar, specified as a scalar or a M-length row vector of nonnegative values. The angles range from 0° to 90°. Units are in degrees.
Example: 10
freq
— Transmitted frequencies
10e9
(default) | positive scalar | N-length vector of positive values
Transmitted frequencies, specified as a positive scalar or N-length vector of positive values. Units are in Hz.
Example: 7*10e9
idx
— Surface type index
scalar | length-p vector of positive values
Surface type index, specified as a scalar or length-P vector of positive values.
Data Types: double
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 values
length-N vector of real values
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)
Examples
Compute Custom Normalized Reflectivity as Standalone Function
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 Custom Surface in Radar Scenario
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
Display Custom Reflectivity Matrix
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 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.
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 (한국어)