Phased Array System Toolbox™ Reference
Phased Array System Toolbox™ Reference
Reference
R2014a
How to Contact MathWorks
www.mathworks.com Web
comp.soft-sys.matlab Newsgroup
www.mathworks.com/contact_TS.html Technical Support
508-647-7000 (Phone)
508-647-7001 (Fax)
Trademarks
MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See
www.mathworks.com/trademarks for a list of additional trademarks. Other product or brand
names may be trademarks or registered trademarks of their respective holders.
Patents
MathWorks products are protected by one or more U.S. patents. Please see
www.mathworks.com/patents for more information.
Revision History
April 2011 Online only Revised for version 1.0 (Release 2011a)
September 2011 Online only Revised for Version 1.1 (R2011b)
March 2012 Online only Revised for Version 1.2 (R2012a)
September 2012 Online only Revised for Version 1.3 (R2012b)
March 2013 Online only Revised for Version 2.0 (R2013a)
September 2013 Online only Revised for Version 2.1 (R2013b)
March 2014 Online only Revised for Version 2.2 (R2014a)
Contents
Alphabetical List
1
Functions-Alphabetical List
2
v
vi Contents
1
Alphabetical List
matlab.System
Description matlab.System is the base class for System objects. In your class
definition file, you must subclass your object from this base class (or
from another class that derives from this base class). Subclassing
allows you to use the implementation and service methods provided by
this base class to build your object. Type this syntax as the first line
of your class definition file to directly inherit from the matlab.System
base class, where ObjectName is the name of your object:
1-2
matlab.System
Attributes In addition to the attributes available for MATLAB® objects, you can
apply the following attributes to any property of a custom System object.
1-3
matlab.System
methods (Access=protected)
% stepImpl method is called by the step method.
function y = stepImpl(~,x)
y = x + 1;
end
end
end
hAdder = AddOne;
x = 1;
y = step(hAdder,x)
properties (Nontunable)
InitialValue
1-4
matlab.System
end
1-5
matlab.System.cloneImpl
Syntax cloneImpl(obj)
Input obj
Arguments System object handle of object to clone.
methods (Access=protected)
function obj2 = cloneImpl(obj1)
s = saveObject (obj1);
obj2 = loadObject(s);
end
end
1-6
matlab.System.cloneImpl
1-7
matlab.System.getDiscreteStateImpl
Syntax s = getDiscreteStateImpl(obj)
Input obj
Arguments System object handle
Output s
Arguments Struct of state values.
methods (Access=protected)
function s = getDiscreteStateImpl(obj)
end
end
1-8
matlab.System.getDiscreteStateImpl
1-9
matlab.System.getNumInputsImpl
Input obj
Arguments System object handle
Output num
Arguments Number of inputs expected by the step method for the specified
object.
Default: 1
1-10
matlab.System.getNumInputsImpl
methods (Access=protected)
function num = getNumInputsImpl(obj)
num = 2;
end
end
methods (Access=protected)
function num = getNumInputsImpl(~)
num = 0;
end
end
1-11
matlab.System.getNumOutputsImpl
Input obj
Arguments System object handle
Output num
Arguments Number of outputs to be returned by the step method for the
specified object.
1-12
matlab.System.getNumOutputsImpl
methods (Access=protected)
function num = getNumOutputsImpl(~)
num = 0;
end
end
1-13
matlab.System.infoImpl
Syntax s = infoImpl(obj,varargin)
Input obj
Arguments System object handle
varargin
Allows variable number of inputs
methods (Access=protected)
function s = infoImpl(obj)
s = struct('Count',obj.pCount);
end
end
1-14
matlab.System.isInactivePropertyImpl
Input obj
Arguments System object handle
prop
Public, non-state property name
Output flag
Arguments Logical scalar value indicating whether the input property prop is
inactive for the current object configuration.
methods (Access=protected)
function flag = isInactivePropertyImpl(obj,propertyName)
1-15
matlab.System.isInactivePropertyImpl
if strcmp(propertyName,'InitialValue')
flag = obj.UseRandomInitialValue;
else
flag = false;
end
end
end
1-16
matlab.System.loadObjectImpl
Syntax loadObjectImpl(obj)
Input obj
Arguments System object handle
methods(Access=protected)
function loadObjectImpl(obj, s, wasLocked)
% Load child System objects
obj.child = matlab.System.loadObject(s.child);
1-17
matlab.System.loadObjectImpl
loadObjectImpl@matlab.System(obj,s,wasLocked);
end
end
1-18
matlab.System.processTunedPropertiesImpl
Syntax processTunedPropertiesImpl(obj)
You cannot modify any tunable properties in this method if its System
object will be used in the Simulink® MATLAB System block.
Tips Use this method when a tunable property affects a different property
value. For example, two property values determine when to calculate
a lookup table. You want to perform that calculation when either
property changes. You also want the calculation to be done only once if
both properties change before the next call to the step method.
Input obj
Arguments System object handle
methods (Access=protected)
function processTunedPropertiesImpl(obj)
% Generate a lookup table of note frequencies
obj.pLookupTable = obj.MiddleC * (1+log(1:obj.NumNotes)/log(12))
1-19
matlab.System.processTunedPropertiesImpl
end
end
1-20
matlab.System.releaseImpl
Syntax releaseImpl(obj)
Input obj
Arguments System object handle
methods (Access=protected)
function releaseImpl(obj)
fclose(obj.pFileID);
end
end
1-21
matlab.System.resetImpl
Syntax resetImpl(obj)
Description resetImpl(obj) defines the state reset equations for the System object.
Typically you reset the states to a set of initial values. This is useful for
initialization at the start of simulation.
resetImpl is called by the reset method. It is also called by the setup
method, after the setupImpl method.
You cannot modify any tunable properties in this method if its System
object will be used in the Simulink MATLAB System block.
Input obj
Arguments System object handle
methods (Access=protected)
function resetImpl(obj)
obj.pCount = 0;
end
end
1-22
matlab.System.saveObjectImpl
Syntax saveObjectImpl(obj)
Input obj
Arguments System object handle
methods(Access=protected)
function s = saveObjectImpl(obj)
1-23
matlab.System.saveObjectImpl
s = saveObjectImpl@matlab.System(obj);
s.child = matlab.System.saveObject(obj.child);
s.protected = obj.protected;
s.pdependentprop = obj.pdependentprop;
if isLocked(obj)
s.state = obj.state;
end
end
end
1-24
matlab.System.setProperties
Syntax setProperties(obj,numargs,name1,value1,name2,value2,...)
setProperties(obj,numargs,arg1,...,argm,name1,value1,name2,value2,...,
'ValueOnlyPropName1','ValueOnlyPropName2',...,
'ValueOnlyPropNamem')
Description setProperties(obj,numargs,name1,value1,name2,value2,...)
provides the name-value pair inputs to the System object constructor.
Use this syntax if every input must specify both name and value.
setProperties(obj,numargs,arg1,...,argm,name1,value1,name2,value2,...,
'ValueOnlyPropName1','ValueOnlyPropName2',...,
'ValueOnlyPropNamem') provides the value-only inputs, followed by
the name-value pair inputs to the System object during object
construction. Use this syntax if you want to allow users to specify one
or more inputs by their values only.
Input obj
Arguments System objectSystem object handle
numargs
Number of inputs passed in by the object constructor
name1,name2,...
Name of property
value1,value2,...
Value of the property
arg1,arg2,...
1-25
matlab.System.setProperties
methods
function obj = MyFile(varargin)
setProperties(obj,nargin,varargin{:},'VProp1','VProp2');
end
end
1-26
matlab.System.setupImpl
Syntax setupImpl(obj)
setupImpl(obj,input1,input2,...)
Note You can omit this method from your class definition file if your
System object does not require any setup tasks.
Do not use setupImpl to initialize or reset states. For states, use the
resetImpl method.
You cannot modify any tunable properties in this method if its System
object will be used in the Simulink MATLAB System block.
1-27
matlab.System.setupImpl
Input obj
Arguments System object handle
input1,input2,...
Inputs to the stepImpl method
methods (Access=protected)
function setupImpl(obj)
obj.pFileID = fopen(obj.Filename,'wb');
if obj.pFileID < 0
error('Opening the file failed');
end
end
end
1-28
matlab.System.setupImpl
end
function y = stepImpl(obj,u)
y = obj.myState;
obj.myState = u;
end
end
end
1-29
matlab.System.stepImpl
Tips The number of input arguments and output arguments must match the
values returned by the getNumInputsImpl and getNumOutputsImpl
methods, respectively
Input obj
Arguments System object handle
input1,input2,...
Inputs to the step method
Output output
Arguments Output returned from the step method.
methods (Access=protected)
function [y1,y2] = stepImpl(obj,x1,x2)
y1 = x1 + 1;
1-30
matlab.System.stepImpl
y2 = x2 + 1;
end
end
1-31
matlab.System.validateInputsImpl
Syntax validateInputsImpl(obj,input1,input2,...)
Input obj
Arguments System object handle
input1,input2,...
Inputs to the setup method
methods (Access=protected)
function validateInputsImpl(~,x)
if ~isnumeric(x)
error('Input must be numeric');
end
end
end
1-32
matlab.System.validateInputsImpl
1-33
matlab.System.validatePropertiesImpl
Syntax validatePropertiesImpl(obj)
Input obj
Arguments System object handle
methods (Access=protected)
function validatePropertiesImpl(obj)
if obj.useIncrement && obj.increment < 0
error('The increment value must be positive');
end
end
end
1-34
matlab.System.validatePropertiesImpl
1-35
matlab.system.mixin.FiniteSource
1-36
matlab.system.mixin.FiniteSource.isDoneImpl
Input obj
Arguments System object handle
Output status
Arguments Logical value, true or false, that indicates if an end-of-data
condition has occurred or not, respectively.
methods (Access=protected)
function bdone = isDoneImpl(obj)
bdone = obj.NumIters==8;
end
end
1-37
matlab.system.mixin.FiniteSource.isDoneImpl
1-38
matlab.system.StringSet
• The string property that holds the current string can have any name.
• The property that holds the StringSet must use the same name as
the string property with the suffix “Set” appended to it. The string
set property is an instance of the matlab.system.StringSet class.
• Valid strings, defined in the StringSet, must be declared using a cell
array. The cell array cannot be empty nor can it have any empty
strings. Valid strings must be unique and are case-insensitive.
• The string property must be set to a valid StringSet value.
properties
Flavor='Chocolate';
end
properties (Hidden,Transient)
FlavorSet = ...
matlab.system.StringSet({'Vanilla','Chocolate'});
1-39
matlab.system.StringSet
end
1-40
phased.ADPCACanceller
Properties SensorArray
Handle to sensor array
Specify the sensor array as a handle. The sensor array must be
an array object in the phased package. The array cannot contain
subarrays.
PropagationSpeed
Signal propagation speed
Specify the propagation speed of the signal, in meters per second,
as a positive scalar.
1-41
phased.ADPCACanceller
OperatingFrequency
System operating frequency
Specify the operating frequency of the system in hertz as a
positive scalar. The default value corresponds to 300 MHz.
Default: 3e8
PRF
Pulse repetition frequency
Specify the pulse repetition frequency (PRF) of the received signal
in hertz as a scalar.
Default: 1
DirectionSource
Source of receiving mainlobe direction
Specify whether the targeting direction for the STAP processor
comes from the Direction property of this object or from an
input argument in step. Values of this property are:
Default: 'Property'
Direction
Receiving mainlobe direction (degrees)
1-42
phased.ADPCACanceller
Default: [0; 0]
DopplerSource
Source of targeting Doppler
Specify whether the targeting Doppler for the STAP processor
comes from the Doppler property of this object or from an input
argument in step. Values of this property are:
Default: 'Property'
Doppler
Targeting Doppler frequency (Hz)
Specify the targeting Doppler of the STAP processor as a scalar.
This property applies when you set the DopplerSource property
to 'Property'.
Default: 0
WeightsOutputPort
Output processing weights
1-43
phased.ADPCACanceller
Default: false
PreDopplerOutput
Output pre-Doppler result
Set this property to true to output the processing result before
applying the Doppler filtering. Set this property to false to
output the processing result after the Doppler filtering.
Default: false
NumGuardCells
Number of guarding cells
Specify the number of guard cells used in the training as an even
integer. This property specifies the total number of cells on both
sides of the cell under test.
NumTrainingCells
Number of training cells
Specify the number of training cells used in the training as an
even integer. Whenever possible, the training cells are equally
divided before and after the cell under test.
1-44
phased.ADPCACanceller
Process Process a radar data cube using an ADPCA processor. The weights are
radar calculated for the 71st cell of the data cube. Set the look direction to
data cube [0;0] degrees and the Doppler shift to 12980 Hz.
using Load radar data file and compute weights
ADPCA
processor. load STAPExampleData;
Hs = phased.ADPCACanceller('SensorArray',STAPEx_HArray,...
'PRF',STAPEx_PRF,...
'PropagationSpeed',STAPEx_PropagationSpeed,...
'OperatingFrequency',STAPEx_OperatingFrequency,...
'NumTrainingCells',100,...
'WeightsOutputPort',true,...
'DirectionSource','Input port',...
'DopplerSource','Input port');
[y,w] = step(Hs,STAPEx_ReceivePulse,71,[0; 0],12980);
Hresp = phased.AngleDopplerResponse(...
'SensorArray',Hs.SensorArray,...
1-45
phased.ADPCACanceller
'OperatingFrequency',Hs.OperatingFrequency,...
'PRF',Hs.PRF,...
'PropagationSpeed',Hs.PropagationSpeed);
plotResponse(Hresp,w);
1-46
phased.ADPCACanceller
1-47
phased.ADPCACanceller.clone
Syntax C = clone(H)
1-48
phased.ADPCACanceller.getNumInputs
Syntax N = getNumInputs(H)
1-49
phased.ADPCACanceller.getNumOutputs
Syntax N = getNumOutputs(H)
1-50
phased.ADPCACanceller.isLocked
Syntax TF = isLocked(H)
1-51
phased.ADPCACanceller.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-52
phased.ADPCACanceller.step
Syntax Y = step(H,X,CUTIDX)
Y = step(H,X,CUTIDX,ANG)
Y = step( ___ ,DOP)
[Y,W] = step( ___ )
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
1-53
phased.ADPCACanceller.step
Input H
Arguments Pulse canceller object.
X
Input data. X must be a 3-dimensional M-by-N-by-P numeric
array whose dimensions are (range, channels, pulses).
CUTIDX
Range cell.
ANG
Receiving mainlobe direction. ANG must be a 2-by-1 vector in
the form [AzimuthAngle; ElevationAngle], in degrees. The
azimuth angle must be between –180 and 180. The elevation
angle must be between –90 and 90.
DOP
Targeting Doppler frequency in hertz. DOP must be a scalar.
Output Y
Arguments Result of applying pulse cancelling to the input data. The
meaning and dimensions of Y depend on the PreDopplerOutput
property of H:
1-54
phased.ADPCACanceller.step
W
Processing weights the pulse canceller used to obtain the
pre-Doppler data. The dimensions of W depend on the
PreDopplerOutput property of H:
1-55
phased.AngleDopplerResponse
Properties SensorArray
Sensor array
Sensor array specified as an array System object belonging to the
phased package. A sensor array can contain subarrays.
PropagationSpeed
Signal propagation speed
Specify the propagation speed of the signal, in meters per second,
as a positive scalar.
1-56
phased.AngleDopplerResponse
OperatingFrequency
System operating frequency
Specify the operating frequency of the system in hertz as a
positive scalar. The default value corresponds to 300 MHz.
Default: 3e8
PRF
Pulse repetition frequency
Specify the pulse repetition frequency (PRF) in hertz of the input
signal as a positive scalar.
Default: 1
ElevationAngleSource
Source of elevation angle
Specify whether the elevation angle comes from the
ElevationAngle property of this object or from an input
argument in step. Values of this property are:
Default: 'Property'
ElevationAngle
Elevation angle
Specify the elevation angle in degrees used to calculate
the angle-Doppler response as a scalar. The angle must be
1-57
phased.AngleDopplerResponse
between –90 and 90. This property applies when you set the
ElevationAngleSource property to 'Property'.
Default: 0
NumAngleSamples
Number of samples in angular domain
Specify the number of samples in the angular domain used to
calculate the angle-Doppler response as a positive integer. This
value must be greater than 2.
Default: 256
NumDopplerSamples
Number of samples in Doppler domain
Specify the number of samples in the Doppler domain used to
calculate the angle-Doppler response as a positive integer. This
value must be greater than 2.
Default: 256
1-58
phased.AngleDopplerResponse
load STAPExampleData;
x = shiftdim(STAPEx_ReceivePulse(190,:,:));
hadresp = phased.AngleDopplerResponse(...
'SensorArray',STAPEx_HArray,...
'OperatingFrequency',STAPEx_OperatingFrequency,...
'PropagationSpeed',STAPEx_PropagationSpeed,...
'PRF',STAPEx_PRF);
[resp,ang_grid,dop_grid] = step(hadresp,x);
contour(ang_grid,dop_grid,abs(resp))
xlabel('Angle'); ylabel('Doppler');
1-59
phased.AngleDopplerResponse
1-60
phased.AngleDopplerResponse
1-61
phased.AngleDopplerResponse.clone
Syntax C = clone(H)
1-62
phased.AngleDopplerResponse.getNumInputs
Syntax N = getNumInputs(H)
1-63
phased.AngleDopplerResponse.getNumOutputs
Syntax N = getNumOutputs(H)
1-64
phased.AngleDopplerResponse.isLocked
Syntax TF = isLocked(H)
1-65
phased.AngleDopplerResponse.plotResponse
Syntax plotResponse(H,X)
plotResponse(H,X,ELANG)
plotResponse( ___ ,Name,Value)
hPlot = plotResponse( ___ )
Input H
Arguments Angle-Doppler response object.
X
Input data.
ELANG
Elevation angle in degrees.
1-66
phased.AngleDopplerResponse.plotResponse
value. Name must appear inside single quotes (' '). You can
specify several name and value pair arguments in any order as
Name1,Value1,...,NameN,ValueN.
’NormalizeDoppler’
Set this value to true to normalize the Doppler frequency. Set
this value to false to plot the angle-Doppler response without
normalizing the Doppler frequency.
Default: false
’Unit’
The unit of the plot. Valid values are 'db', 'mag', and 'pow'.
Default: 'db'
Plot Plot the angle-Doppler response of the 190th cell of a collected data cube.
Angle-Doppler
load STAPExampleData;
Response
x = shiftdim(STAPEx_ReceivePulse(190,:,:));
hadresp = phased.AngleDopplerResponse(...
'SensorArray',STAPEx_HArray,...
'OperatingFrequency',STAPEx_OperatingFrequency,...
'PropagationSpeed',STAPEx_PropagationSpeed,...
'PRF',STAPEx_PRF);
plotResponse(hadresp,x,'NormalizeDoppler',true);
1-67
phased.AngleDopplerResponse.plotResponse
1-68
phased.AngleDopplerResponse.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-69
phased.AngleDopplerResponse.step
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Input H
Arguments Angle-Doppler response object.
X
Input data as a matrix or column vector.
If X is a matrix, the number of rows in the matrix must equal the
number of elements of the array specified in the SensorArray
property of H.
1-70
phased.AngleDopplerResponse.step
Output RESP
Arguments Complex angle-Doppler response of X. RESP is a P-by-Q matrix. P
is determined by the NumDopplerSamples property of H and Q is
determined by the NumAngleSamples property.
ANG_GRID
Angle samples at which the angle-Doppler response is evaluated.
ANG_GRID is a column vector of length Q.
DOP_GRID
Doppler samples at which the angle-Doppler response is
evaluated. DOP_GRID is a column vector of length P.
load STAPExampleData;
x = shiftdim(STAPEx_ReceivePulse(190,:,:));
hadresp = phased.AngleDopplerResponse(...
'SensorArray',STAPEx_HArray,...
'OperatingFrequency',STAPEx_OperatingFrequency,...
'PropagationSpeed',STAPEx_PropagationSpeed,...
'PRF',STAPEx_PRF);
1-71
phased.AngleDopplerResponse.step
[resp,ang_grid,dop_grid] = step(hadresp,x);
contour(ang_grid,dop_grid,abs(resp))
xlabel('Angle'); ylabel('Doppler');
1-72
phased.AngleDopplerResponse.step
1-73
phased.ArrayGain
Description The ArrayGain object calculates the array gain for a sensor array. The
array gain is defined as the signal to noise ratio (SNR) improvement
between the array output and the individual channel input, assuming
the noise is spatially white. It is related to the array response but is
not the same.
To compute the SNR gain of the antenna for specified directions:
Properties SensorArray
Sensor array
Sensor array specified as an array System object belonging to the
phased package. A sensor array can contain subarrays.
PropagationSpeed
Signal propagation speed
1-74
phased.ArrayGain
WeightsInputPort
Add input to specify weights
To specify weights, set this property to true and use the
corresponding input argument when you invoke step. If you do
not want to specify weights, set this property to false.
Default: false
1-75
phased.ArrayGain
wH vsv H w
wH Nw wH vv H w
SNRout
SNRin s wH w
N
In this equation:
• w is the vector of weights applied on the sensor array. When you use
phased.ArrayGain, you can optionally specify weights by setting the
WeightsInputPort property to true and specifying the W argument
in the step method syntax.
• v is the steering vector representing the array response toward a
given direction. When you call the step method, the ANG argument
specifies the direction.
• s is the input signal power.
• N is the noise power.
• H denotes the complex conjugate transpose.
Examples Calculate the array gain for a uniform linear array at the direction
of 30 degrees azimuth and 20 degrees elevation. The array operating
frequency is 300 MHz.
ha = phased.ULA(4);
hag = phased.ArrayGain('SensorArray',ha);
g = step(hag,3e8,[30;20]);
1-76
phased.ArrayGain
1-77
phased.ArrayGain.clone
Syntax C = clone(H)
1-78
phased.ArrayGain.getNumInputs
Syntax N = getNumInputs(H)
1-79
phased.ArrayGain.getNumOutputs
Syntax N = getNumOutputs(H)
1-80
phased.ArrayGain.isLocked
Syntax TF = isLocked(H)
Description TF = isLocked(H) returns the locked status, TF, for the ArrayGain
System object.
The isLocked method returns a logical value that indicates whether
input attributes and nontunable properties for the object are locked. The
object performs an internal initialization the first time the step method
is executed. This initialization locks nontunable properties and input
specifications, such as dimensions, complexity, and data type of the
input data. After locking, the isLocked method returns a true value.
1-81
phased.ArrayGain.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-82
phased.ArrayGain.step
Syntax G = step(H,FREQ,ANG)
G = step(H,FREQ,ANG,WEIGHTS)
G = step(H,FREQ,ANG,STEERANGLE)
G = step(H,FREQ,ANG,WEIGHTS,STEERANGLE)
Description G = step(H,FREQ,ANG) returns the array gain G of the array for the
operating frequencies specified in FREQ and directions specified in ANG.
G = step(H,FREQ,ANG,WEIGHTS) applies weights WEIGHTS on
the sensor array. This syntax is available when you set the
WeightsInputPort property to true.
G = step(H,FREQ,ANG,STEERANGLE) uses STEERANGLE as the
subarray steering angle. This syntax is available when you configure
H so that H.Sensor is an array that contains subarrays, and
H.Sensor.SubarraySteering is either 'Phase' or 'Time'.
G = step(H,FREQ,ANG,WEIGHTS,STEERANGLE) combines all input
arguments. This syntax is available when you configure H so that
H.WeightsInputPort is true, H.Sensor is an array that contains
subarrays, and H.Sensor.SubarraySteering is either 'Phase' or
'Time'.
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Input H
Arguments Array gain object.
1-83
phased.ArrayGain.step
FREQ
Operating frequencies of array in hertz. FREQ is a row
vector of length L. Typical values are within the range
specified by a property of the sensor element. The element is
H.SensorArray.Element, H.SensorArray.Array.Element, or
H.SensorArray.Subarray.Element, depending on the type of
array. The frequency range property is named FrequencyRange or
FrequencyVector, depending on the type of element in the array.
The element has zero response at frequencies outside that range.
ANG
Directions in degrees. ANG can be either a 2-by-M matrix or a
row vector of length M.
If ANG is a 2-by-M matrix, each column of the matrix specifies the
direction in the form [azimuth; elevation]. The azimuth angle
must be between –180 and 180 degrees, inclusive. The elevation
angle must be between –90 and 90 degrees, inclusive.
If ANG is a row vector of length M, each element specifies a
direction’s azimuth angle. In this case, the corresponding
elevation angle is assumed to be 0.
WEIGHTS
Weights on the sensor array. WEIGHTS can be either an N-by-L
matrix or a column vector of length N. N is the number of
subarrays if H.SensorArray contains subarrays, or the number
of elements otherwise. L is the number of frequencies specified
in FREQ.
If WEIGHTS is a matrix, each column of the matrix represents the
weights at the corresponding frequency in FREQ.
If WEIGHTS is a vector, the weights apply at all frequencies in
FREQ.
STEERANGLE
1-84
phased.ArrayGain.step
Output G
Arguments Gain of sensor array, in decibels. G is an M-by-L matrix. G
contains the gain at the M angles specified in ANG and the L
frequencies specified in FREQ.
wH vsv H w
wH Nw wH vv H w
SNRout
SNRin s wH w
N
In this equation:
• w is the vector of weights applied on the sensor array. When you use
phased.ArrayGain, you can optionally specify weights by setting the
WeightsInputPort property to true and specifying the W argument
in the step method syntax.
• v is the steering vector representing the array response toward a
given direction. When you call the step method, the ANG argument
specifies the direction.
1-85
phased.ArrayGain.step
Examples Construct a uniform linear array with six elements. The array operates
at 1 GHz and the array elements are spaced at one half the operating
frequency wavelength. Find the array gain in decibels for the direction
45 degrees azimuth and 10 degrees elevation.
1-86
phased.ArrayResponse
Properties SensorArray
Handle to sensor array used to calculate response
Specify the sensor array as a handle. The sensor array must be
an array object in the phased package. The array can contain
subarrays.
PropagationSpeed
Signal propagation speed
Specify the propagation speed of the signal, in meters per second,
as a positive scalar.
1-87
phased.ArrayResponse
WeightsInputPort
Add input to specify weights
To specify weights, set this property to true and use the
corresponding input argument when you invoke step. If you do
not want to specify weights, set this property to false.
Default: false
EnablePolarization
Enable polarization simulation
Set this property to true to let the array response simulate
polarization. Set this property to false to ignore polarization.
This property applies only when the array specified in the
SensorArray property is capable of simulating polarization.
Default: false
1-88
phased.ArrayResponse
Plot Array Calculate array response for a 4-element uniform linear array (ULA) in
Response the direction of 30 degrees azimuth and 20 degrees elevation. Assume
the array’s operating frequency is 300 MHz.
ha = phased.ULA(4);
har = phased.ArrayResponse('SensorArray',ha);
resp = step(har,3e8,[30;20]);
plotResponse(ha,3e8,physconst('LightSpeed'));
1-89
phased.ArrayResponse
1-90
phased.ArrayResponse.clone
Syntax C = clone(H)
1-91
phased.ArrayResponse.getNumInputs
Syntax N = getNumInputs(H)
1-92
phased.ArrayResponse.getNumOutputs
Syntax N = getNumOutputs(H)
1-93
phased.ArrayResponse.isLocked
Syntax TF = isLocked(H)
Description TF = isLocked(H) returns the locked status, TF, for the ArrayResponse
System object.
The isLocked method returns a logical value that indicates whether
input attributes and nontunable properties for the object are locked. The
object performs an internal initialization the first time the step method
is executed. This initialization locks nontunable properties and input
specifications, such as dimensions, complexity, and data type of the
input data. After locking, the isLocked method returns a true value.
1-94
phased.ArrayResponse.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-95
phased.ArrayResponse.step
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Input H
Arguments Array response object.
1-96
phased.ArrayResponse.step
FREQ
Operating frequencies of array in hertz. FREQ is a row
vector of length L. Typical values are within the range
specified by a property of the sensor element. The element is
H.SensorArray.Element, H.SensorArray.Array.Element, or
H.SensorArray.Subarray.Element, depending on the type of
array. The frequency range property is named FrequencyRange or
FrequencyVector, depending on the type of element in the array.
The element has zero response at frequencies outside that range.
The element has zero response at frequencies outside that range.
ANG
Directions in degrees. ANG can be either a 2-by-M matrix or a
row vector of length M.
If ANG is a 2-by-M matrix, each column of the matrix specifies the
direction in the form [azimuth; elevation]. The azimuth angle
must be between –180 and 180 degrees, inclusive. The elevation
angle must be between –90 and 90 degrees, inclusive.
If ANG is a row vector of length M, each element specifies a
direction’s azimuth angle. In this case, the corresponding
elevation angle is assumed to be 0.
WEIGHTS
Weights on the sensor array. WEIGHTS can be either an N-by-L
matrix or a column vector of length N. N is the number of
subarrays if H.SensorArray contains subarrays, or the number
of elements otherwise. L is the number of frequencies specified
in FREQ.
If WEIGHTS is a matrix, each column of the matrix represents the
weights at the corresponding frequency in FREQ.
If WEIGHTS is a vector, the weights apply at all frequencies in
FREQ.
STEERANGLE
1-97
phased.ArrayResponse.step
Output RESP
Arguments Voltage response of the sensor array. The response depends on
whether the EnablePolarization property is set to true or
false.
Examples Find the array response for a 6-element uniform linear array operating
at 1 GHz. The array elements are spaced at one half the operating
frequency wavelength. The incident angle is 45 degrees azimuth and
10 degrees elevation.
fc = 1e9;
% 1 GHz wavelength
lambda = physconst('LightSpeed')/fc;
1-98
phased.ArrayResponse.step
1-99
phased.BarrageJammer
Properties ERP
Effective radiated power
Default: 5000
SamplesPerFrameSource
Source of number of samples per frame
1-100
phased.BarrageJammer
Default: 'Property'
SamplesPerFrame
Number of samples per frame
Specify the number of samples in the output jamming signal
as a positive integer. This property applies when you set the
SamplesPerFrameSource property to 'Property'.
Default: 100
SeedSource
Source of seed for random number generator
Specify how the object generates random numbers. Values of this
property are:
1-101
phased.BarrageJammer
Default: 'Auto'
Seed
Seed for random number generator
Specify the seed for the random number generator as a scalar
integer between 0 and 232–1. This property applies when you set
the SeedSource property to 'Property'.
Default: 0
1-102
phased.BarrageJammer
1-103
phased.BarrageJammer
References [1] Ward, J. “Space-Time Adaptive Processing for Airborne Radar Data
Systems,” Technical Report 1015, MIT Lincoln Laboratory, December,
1994.
1-104
phased.BarrageJammer.clone
Syntax C = clone(H)
1-105
phased.BarrageJammer.getNumInputs
Syntax N = getNumInputs(H)
1-106
phased.BarrageJammer.getNumOutputs
Syntax N = getNumOutputs(H)
1-107
phased.BarrageJammer.isLocked
Syntax TF = isLocked(H)
Description TF = isLocked(H) returns the locked status, TF, for the BarrageJammer
System object.
The isLocked method returns a logical value that indicates whether
input attributes and nontunable properties for the object are locked. The
object performs an internal initialization the first time the step method
is executed. This initialization locks nontunable properties and input
specifications, such as dimensions, complexity, and data type of the
input data. After locking, the isLocked method returns a true value.
1-108
phased.BarrageJammer.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-109
phased.BarrageJammer.reset
Syntax reset(H)
Description reset(H) resets the states of the BarrageJammer object, H. This method
resets the random number generator state if the SeedSource property
is set to 'Property'.
1-110
phased.BarrageJammer.step
Syntax Y = step(H)
Y = step(H,N)
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
1-111
phased.BarrageJammer.step
1-112
phased.BeamscanEstimator
Properties SensorArray
Handle to sensor array
Specify the sensor array as a handle. The sensor array must be a
phased.ULA object.
PropagationSpeed
Signal propagation speed
Specify the propagation speed of the signal, in meters per second,
as a positive scalar.
1-113
phased.BeamscanEstimator
OperatingFrequency
System operating frequency
Specify the operating frequency of the system in hertz as a
positive scalar. The default value corresponds to 300 MHz.
Default: 3e8
ForwardBackwardAveraging
Perform forward-backward averaging
Set this property to true to use forward-backward averaging to
estimate the covariance matrix for sensor arrays with conjugate
symmetric array manifold.
Default: false
SpatialSmoothing
Spatial smoothing
Specify the number of averaging used by spatial smoothing to
estimate the covariance matrix as a nonnegative integer. Each
additional smoothing handles one extra coherent source, but
reduces the effective number of elements by 1. The maximum
value of this property is M–2, where M is the number of sensors.
ScanAngles
Scan angles
Specify the scan angles (in degrees) as a real vector. The angles
are broadside angles and must be between –90 and 90, inclusive.
You must specify the angles in ascending order.
1-114
phased.BeamscanEstimator
Default: -90:90
DOAOutputPort
Enable DOA output
To obtain the signal’s direction of arrival (DOA), set this property
to true and use the corresponding output argument when
invoking step. If you do not want to obtain the DOA, set this
property to false.
Default: false
NumSignals
Number of signals
Specify the number of signals for DOA estimation as a
positive scalar integer. This property applies when you set the
DOAOutputPort property to true.
Default: 1
1-115
phased.BeamscanEstimator
fs = 8000; t = (0:1/fs:1).';
x1 = cos(2*pi*t*300); x2 = cos(2*pi*t*400);
ha = phased.ULA('NumElements',10,'ElementSpacing',1);
ha.Element.FrequencyRange = [100e6 300e6];
fc = 150e6;
x = collectPlaneWave(ha,[x1 x2],[10 20;60 -5]',fc);
noise = 0.1*(randn(size(x))+1i*randn(size(x)));
hdoa = phased.BeamscanEstimator('SensorArray',ha,...
'OperatingFrequency',fc,...
'DOAOutputPort',true,'NumSignals',2);
[y,doas] = step(hdoa,x+noise);
doas = broadside2az(sort(doas),[20 -5])
doas =
9.5829 60.3813
plotSpectrum(hdoa);
1-116
phased.BeamscanEstimator
1-117
phased.BeamscanEstimator.clone
Purpose Create beamscan spatial spectrum estimator object with same property
values
Syntax C = clone(H)
1-118
phased.BeamscanEstimator.getNumInputs
Syntax N = getNumInputs(H)
1-119
phased.BeamscanEstimator.getNumOutputs
Syntax N = getNumOutputs(H)
1-120
phased.BeamscanEstimator.isLocked
Syntax TF = isLocked(H)
1-121
phased.BeamscanEstimator.plotSpectrum
Syntax plotSpectrum(H)
plotSpectrum(H,Name,Value)
h = plotSpectrum( ___ )
Description plotSpectrum(H) plots the spatial spectrum resulting from the last call
of the step method.
plotSpectrum(H,Name,Value) plots the spatial spectrum with
additional options specified by one or more Name,Value pair
arguments.
h = plotSpectrum( ___ ) returns the line handle in the figure.
Input H
Arguments Spatial spectrum estimator object.
’NormalizeResponse’
Set this value to true to plot the normalized spectrum. Set this
value to false to plot the spectrum without normalizing it.
Default: false
’Title’
String to use as title of figure.
1-122
phased.BeamscanEstimator.plotSpectrum
’Unit’
The unit of the plot. Valid values are 'db', 'mag', and 'pow'.
Default: 'db'
fs = 8000; t = (0:1/fs:1).';
x1 = cos(2*pi*t*300); x2 = cos(2*pi*t*400);
ha = phased.ULA('NumElements',10,'ElementSpacing',1);
ha.Element.FrequencyRange = [100e6 300e6];
fc = 150e6;
x = collectPlaneWave(ha,[x1 x2],[10 20;60 -5]',fc);
noise = 0.1*(randn(size(x))+1i*randn(size(x)));
hdoa = phased.BeamscanEstimator('SensorArray',ha,...
'OperatingFrequency',fc,...
'DOAOutputPort',true,'NumSignals',2);
[y,doas] = step(hdoa,x+noise);
doas = broadside2az(sort(doas),[20 -5])
doas =
9.5829 60.3813
plotSpectrum(hdoa);
1-123
phased.BeamscanEstimator.plotSpectrum
1-124
phased.BeamscanEstimator.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-125
phased.BeamscanEstimator.reset
Syntax reset(H)
1-126
phased.BeamscanEstimator.step
Syntax Y = step(H,X)
[Y,ANG] = step(H,X)
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
fs = 8000; t = (0:1/fs:1).';
x1 = cos(2*pi*t*300); x2 = cos(2*pi*t*400);
ha = phased.ULA('NumElements',10,'ElementSpacing',1);
ha.Element.FrequencyRange = [100e6 300e6];
fc = 150e6;
x = collectPlaneWave(ha,[x1 x2],[10 20;60 -5]',fc);
noise = 0.1*(randn(size(x))+1i*randn(size(x)));
1-127
phased.BeamscanEstimator.step
hdoa = phased.BeamscanEstimator('SensorArray',ha,...
'OperatingFrequency',fc,...
'DOAOutputPort',true,'NumSignals',2);
[y,doas] = step(hdoa,x+noise);
doas = broadside2az(sort(doas),[20 -5]);
1-128
phased.BeamscanEstimator2D
Properties SensorArray
Handle to sensor array
Specify the sensor array as a handle. The sensor array must be
an array object in the phased package. The array cannot contain
subarrays.
PropagationSpeed
Signal propagation speed
Specify the propagation speed of the signal, in meters per second,
as a positive scalar.
1-129
phased.BeamscanEstimator2D
OperatingFrequency
System operating frequency
Specify the operating frequency of the system in hertz as a
positive scalar. The default value corresponds to 300 MHz.
Default: 3e8
ForwardBackwardAveraging
Perform forward-backward averaging
Set this property to true to use forward-backward averaging to
estimate the covariance matrix for sensor arrays with conjugate
symmetric array manifold.
Default: false
AzimuthScanAngles
Azimuth scan angles
Specify the azimuth scan angles (in degrees) as a real vector. The
angles must be between –180 and 180, inclusive. You must specify
the angles in ascending order.
Default: -90:90
ElevationScanAngles
Elevation scan angles
Specify the elevation scan angles (in degrees) as a real vector or
scalar. The angles must be within [–90 90]. You must specify the
angles in an ascending order.
Default: 0
1-130
phased.BeamscanEstimator2D
DOAOutputPort
Enable DOA output
To obtain the signal’s direction of arrival (DOA), set this property
to true and use the corresponding output argument when
invoking step. If you do not want to obtain the DOA, set this
property to false.
Default: false
NumSignals
Number of signals
Specify the number of signals for DOA estimation as a
positive scalar integer. This property applies when you set the
DOAOutputPort property to true.
Default: 1
1-131
phased.BeamscanEstimator2D
doas =
-37 17
0 20
plotSpectrum(hdoa);
1-132
phased.BeamscanEstimator2D
1-133
phased.BeamscanEstimator2D.clone
Purpose Create 2-D beamscan spatial spectrum estimator object with same
property values
Syntax C = clone(H)
1-134
phased.BeamscanEstimator2D.getNumInputs
Syntax N = getNumInputs(H)
1-135
phased.BeamscanEstimator2D.getNumOutputs
Syntax N = getNumOutputs(H)
1-136
phased.BeamscanEstimator2D.isLocked
Syntax TF = isLocked(H)
1-137
phased.BeamscanEstimator2D.plotSpectrum
Syntax plotSpectrum(H)
plotSpectrum(H,Name,Value)
h = plotSpectrum( ___ )
Description plotSpectrum(H) plots the spatial spectrum resulting from the last call
of the step method.
plotSpectrum(H,Name,Value) plots the spatial spectrum with
additional options specified by one or more Name,Value pair
arguments.
h = plotSpectrum( ___ ) returns the line handle in the figure.
Input H
Arguments Spatial spectrum estimator object.
’NormalizeResponse’
Set this value to true to plot the normalized spectrum. Set this
value to false to plot the spectrum without normalizing it.
Default: false
’Title’
String to use as title of figure.
1-138
phased.BeamscanEstimator2D.plotSpectrum
’Unit’
The unit of the plot. Valid values are 'db', 'mag', and 'pow'.
Default: 'db'
doas =
-37 17
0 20
plotSpectrum(hdoa);
1-139
phased.BeamscanEstimator2D.plotSpectrum
1-140
phased.BeamscanEstimator2D.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-141
phased.BeamscanEstimator2D.reset
Syntax reset(H)
1-142
phased.BeamscanEstimator2D.step
Syntax Y = step(H,X)
[Y,ANG] = step(H,X)
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Examples Estimate the DOAs of two signals received by a 50-element URA with
a rectangular lattice. The antenna operating frequency is 150 MHz.
The actual direction of the first signal is –37 degrees in azimuth and 0
degrees in elevation. The direction of the second signal is 17 degrees in
azimuth and 20 degrees in elevation.
1-143
phased.BeamscanEstimator2D.step
lambda = physconst('LightSpeed')/fc;
ang1 = [-37; 0]; ang2 = [17; 20];
x = sensorsig(getElementPosition(ha)/lambda,8000,[ang1 ang2],0.2);
hdoa = phased.BeamscanEstimator2D('SensorArray',ha,...
'OperatingFrequency',fc,...
'DOAOutputPort',true,'NumSignals',2,...
'AzimuthScanAngles',-50:50,...
'ElevationScanAngles',-30:30);
[~,doas] = step(hdoa,x);
1-144
phased.BeamspaceESPRITEstimator
Properties SensorArray
Handle to sensor array
Specify the sensor array as a handle. The sensor array must be a
phased.ULA object.
PropagationSpeed
Signal propagation speed
1-145
phased.BeamspaceESPRITEstimator
OperatingFrequency
System operating frequency
Specify the operating frequency of the system in hertz as a
positive scalar. The default value corresponds to 300 MHz.
Default: 3e8
SpatialSmoothing
Spatial smoothing
Specify the number of averaging used by spatial smoothing to
estimate the covariance matrix as a nonnegative integer. Each
additional smoothing handles one extra coherent source, but
reduces the effective number of element by 1. The maximum
value of this property is M–2, where M is the number of sensors.
NumSignalsSource
Source of number of signals
Specify the source of the number of signals as one of 'Auto'
or 'Property'. If you set this property to 'Auto', the
number of signals is estimated by the method specified by the
NumSignalsMethod property.
Default: 'Auto'
NumSignalsMethod
Method to estimate number of signals
1-146
phased.BeamspaceESPRITEstimator
Default: 'AIC'
NumSignals
Number of signals
Specify the number of signals as a positive integer scalar. This
property applies when you set the NumSignalsSource property
to 'Property'.
Default: 1
Method
Type of least square method
Specify the least squares method used for ESPRIT as one of 'TLS'
or 'LS'. 'TLS' refers to total least squares and 'LS' refers to
least squares.
Default: 'TLS'
BeamFanCenter
Beam fan center direction (in degrees)
Specify the direction of the center of the beam fan (in degrees) as
a real scalar value between –90 and 90. This property is tunable.
Default: 0
NumBeamsSource
Source of number of beams
1-147
phased.BeamspaceESPRITEstimator
Default: 'Auto'
NumBeams
Number of beams
Specify the number of beams as a positive scalar integer.
The lower the number of beams, the greater the reduction in
computational cost. This property applies when you set the
NumBeamsSource to 'Property'.
Default: 2
1-148
phased.BeamspaceESPRITEstimator
fs = 8000; t = (0:1/fs:1).';
x1 = cos(2*pi*t*300); x2 = cos(2*pi*t*400);
ha = phased.ULA('NumElements',10,'ElementSpacing',1);
ha.Element.FrequencyRange = [100e6 300e6];
fc = 150e6;
x = collectPlaneWave(ha,[x1 x2],[10 20;45 60]',fc);
rng default;
noise = 0.1/sqrt(2)*(randn(size(x))+1i*randn(size(x)));
% construct beamspace ESPRIT estimator
hdoa = phased.BeamspaceESPRITEstimator('SensorArray',ha,...
'OperatingFrequency',fc,...
'NumSignalsSource','Property','NumSignals',2);
% use the step method to obtain the direction of arrival estimates
doas = step(hdoa,x+noise);
az = broadside2az(sort(doas),[20 60]);
1-149
phased.BeamspaceESPRITEstimator.clone
Purpose Create beamspace ESPRIT DOA estimator object with same property
values
Syntax C = clone(H)
1-150
phased.BeamspaceESPRITEstimator.getNumInputs
Syntax N = getNumInputs(H)
1-151
phased.BeamspaceESPRITEstimator.getNumOutputs
Syntax N = getNumOutputs(H)
1-152
phased.BeamspaceESPRITEstimator.isLocked
Syntax TF = isLocked(H)
1-153
phased.BeamspaceESPRITEstimator.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-154
phased.BeamspaceESPRITEstimator.step
Description ANG = step(H,X) estimates the DOAs from X using the DOA estimator
H. X is a matrix whose columns correspond to channels. ANG is a row
vector of the estimated broadside angles (in degrees).
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
fs = 8000; t = (0:1/fs:1).';
x1 = cos(2*pi*t*300); x2 = cos(2*pi*t*400);
ha = phased.ULA('NumElements',10,'ElementSpacing',1);
ha.Element.FrequencyRange = [100e6 300e6];
fc = 150e6;
x = collectPlaneWave(ha,[x1 x2],[10 20;45 60]',fc);
rng default;
noise = 0.1/sqrt(2)*(randn(size(x))+1i*randn(size(x)));
% construct beamspace ESPRIT estimator
hdoa = phased.BeamspaceESPRITEstimator('SensorArray',ha,...
'OperatingFrequency',fc,...
'NumSignalsSource','Property','NumSignals',2);
% use the step method to obtain the direction of arrival estimates
1-155
phased.BeamspaceESPRITEstimator.step
doas = step(hdoa,x+noise);
az = broadside2az(sort(doas),[20 60]);
1-156
phased.CFARDetector
Properties Method
CFAR algorithm
Specify the algorithm of the CFAR detector as a string. Values of
this property are:
Default: 'CA'
1-157
phased.CFARDetector
Rank
Rank of order statistic
Specify the rank of the order statistic as a positive integer
scalar. The value must be less than or equal to the value of the
NumTrainingCells property. This property applies only when you
set the Method property to 'OS'.
Default: 1
NumGuardCells
Number of guard cells
Specify the number of guard cells used in training as an even
integer. This property specifies the total number of cells on both
sides of the cell under test.
NumTrainingCells
Number of training cells
Specify the number of training cells used in training as an even
integer. Whenever possible, the training cells are equally divided
before and after the cell under test.
ThresholdFactor
Methods of obtaining threshold factor
Specify whether the threshold factor comes from an automatic
calculation, the CustomThresholdFactor property of this object,
or an input argument in step. Values of this property are:
1-158
phased.CFARDetector
Default: 'Auto'
ProbabilityFalseAlarm
Desired probability of false alarm
Specify the desired probability of false alarm as a scalar between
0 and 1 (not inclusive). This property applies only when you set
the ThresholdFactor property to 'Auto'.
Default: 0.1
CustomThresholdFactor
Custom threshold factor
Specify the custom threshold factor as a positive scalar. This
property applies only when you set the ThresholdFactor property
to 'Custom'. This property is tunable.
1-159
phased.CFARDetector
Default: 1
ThresholdOutputPort
Output detection threshold
To obtain the detection threshold, set this property to true and
use the corresponding output argument when invoking step.
If you do not want to obtain the detection threshold, set this
property to false.
Default: false
rng(5);
hdet = phased.CFARDetector('NumTrainingCells',50,...
'NumGuardCells',2,'ProbabilityFalseAlarm',0.1);
1-160
phased.CFARDetector
N = 1000; x = 1/sqrt(2)*(randn(N,1)+1i*randn(N,1));
dresult = step(hdet,abs(x).^2,1:N);
Pfa = sum(dresult)/N;
1 Identify the training cells from the input, and form the noise
estimate. The next table indicates how the detector forms the noise
estimate, depending on the Method property value.
3 Compare the value in the test cell against the threshold to determine
whether the target is present or absent. If the value is greater than
the threshold, the target is present.
1-161
phased.CFARDetector.clone
Syntax C = clone(H)
1-162
phased.CFARDetector.getNumInputs
Syntax N = getNumInputs(H)
1-163
phased.CFARDetector.getNumOutputs
Syntax N = getNumOutputs(H)
1-164
phased.CFARDetector.isLocked
Syntax TF = isLocked(H)
Description TF = isLocked(H) returns the locked status, TF, for the CFARDetector
System object.
The isLocked method returns a logical value that indicates whether
input attributes and nontunable properties for the object are locked. The
object performs an internal initialization the first time the step method
is executed. This initialization locks nontunable properties and input
specifications, such as dimensions, complexity, and data type of the
input data. After locking, the isLocked method returns a true value.
1-165
phased.CFARDetector.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-166
phased.CFARDetector.step
Syntax Y = step(H,X,CUTIDX)
Y = step(H,X,CUTIDX,THFAC)
[Y,TH] = step( ___ )
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
1-167
phased.CFARDetector.step
rng(5);
hdet = phased.CFARDetector('NumTrainingCells',50,...
'NumGuardCells',2,'ProbabilityFalseAlarm',0.1);
N = 1000; x = 1/sqrt(2)*(randn(N,1)+1i*randn(N,1));
dresult = step(hdet,abs(x).^2,1:N);
Pfa = sum(dresult)/N;
1 Identify the training cells from the input, and form the noise
estimate. The next table indicates how the detector forms the noise
estimate, depending on the Method property value.
3 Compare the value in the test cell against the threshold to determine
whether the target is present or absent. If the value is greater than
the threshold, the target is present.
1-168
phased.CFARDetector.step
1-169
phased.Collector
Properties Sensor
Sensor element or sensor array
Sensor element or sensor array specified as a System object in
the Phased Array System Toolbox™. A sensor array can contain
subarrays.
PropagationSpeed
Signal propagation speed
Specify the propagation speed of the signal, in meters per second,
as a positive scalar.
1-170
phased.Collector
OperatingFrequency
System operating frequency
Specify the operating frequency of the system in hertz as a
positive scalar. The default value corresponds to 300 MHz.
Default: 3e8
WeightsInputPort
Enable weights input
To specify weights, set this property to true and use the
corresponding input argument when you invoke step. If you do
not want to specify weights, set this property to false.
Default: false
EnablePolarization
EnablePolarization
Set this property to true to simulate the collection of polarized
waves. Set this property to false to ignore polarization. This
property applies when the sensor specified in the Sensor property
is capable of simulating polarization.
Default: false
Wavefront
Type of incoming wavefront
Specify the type of incoming wavefront as one of 'Plane', or
'Unspecified':
1-171
phased.Collector
Default: 'Plane'
ha = phased.IsotropicAntennaElement;
hc = phased.Collector('Sensor',ha,'OperatingFrequency',1e9);
x = [1;1];
incidentAngle = [10 30]';
y = step(hc,x,incidentAngle);
ha = phased.ULA('NumElements',5);
hc = phased.Collector('Sensor',ha,'OperatingFrequency',1e9);
1-172
phased.Collector
x = [1;1];
incidentAngle = [10 30]';
y = step(hc,x,incidentAngle);
ha = phased.ULA('NumElements',3);
hc = phased.Collector('Sensor',ha,'OperatingFrequency',1e9,...
'Wavefront','Unspecified');
x = rand(10,3); % Each column is a separate signal for one element
incidentAngle = [10 0; 20 5; 45 2]'; % 3 angles for 3 signals
y = step(hc,x,incidentAngle);
1-173
phased.Collector.clone
Syntax C = clone(H)
1-174
phased.Collector.getNumInputs
Syntax N = getNumInputs(H)
1-175
phased.Collector.getNumOutputs
Syntax N = getNumOutputs(H)
1-176
phased.Collector.isLocked
Syntax TF = isLocked(H)
Description TF = isLocked(H) returns the locked status, TF, for the Collector
System object.
The isLocked method returns a logical value that indicates whether
input attributes and nontunable properties for the object are locked. The
object performs an internal initialization the first time the step method
is executed. This initialization locks nontunable properties and input
specifications, such as dimensions, complexity, and data type of the
input data. After locking, the isLocked method returns a true value.
1-177
phased.Collector.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-178
phased.Collector.step
Syntax Y = step(H,X,ANG)
Y = step(H,X,ANG,LAXES)
Y = step(H,X,ANG,WEIGHTS)
Y = step(H,X,ANG,STEERANGLE)
Y = step(H,X,ANG,LAXES,WEIGHTS,STEERANGLE)
1-179
phased.Collector.step
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Input H
Arguments Collector object.
X
Arriving signals. Each column of X represents a separate signal.
The specific interpretation of X depends on the Wavefront
property of H.
Wavefront Description
Property
Value
'Plane' Each column of X is a far field signal.
'Unspecified' Each column of X is the signal impinging
on the corresponding element. In this case,
the number of columns in X must equal the
number of collecting elements in the Sensor
property.
1-180
phased.Collector.step
ANG
Incident directions of signals, specified as a two-row matrix.
Each column specifies the incident direction of the corresponding
column of X. Each column of ANG has the form [azimuth;
elevation], in degrees. The azimuth angle must be between –180
and 180 degrees, inclusive. The elevation angle must be between
–90 and 90 degrees, inclusive.
LAXES
Local coordinate system. LAXES is a 3-by-3 matrix whose columns
specify the local coordinate system’s orthonormal x, y, and z axes,
respectively. Each axis is specified in terms of [x;y;z] with
respect to the global coordinate system. This argument is only
used when the EnablePolarization property is set to true.
WEIGHTS
Vector of weights. WEIGHTS is a column vector of length M, where
M is the number of collecting elements.
Default: ones(M,1)
STEERANGLE
Subarray steering angle, specified as a length-2 column vector.
The vector has the form [azimuth; elevation], in degrees. The
azimuth angle must be between –180 and 180 degrees, inclusive.
The elevation angle must be between –90 and 90 degrees,
inclusive.
Output Y
Arguments Collected signals. Each column of Y contains the output of the
corresponding element. The output is the response to all the
1-181
phased.Collector.step
fc = 1e9;
lambda = physconst('LightSpeed')/fc;
hULA = phased.ULA('NumElements',4,'ElementSpacing',lambda/2);
t = linspace(0,1,1e3);
x = cos(2*pi*200*t)';
% construct the collector object.
hc = phased.Collector('Sensor',hULA,...
'PropagationSpeed',physconst('LightSpeed'),...
'Wavefront','Plane','OperatingFrequency',fc);
% incident angle is 45 degrees azimuth, 10 degrees elevation
incidentangle = [45;10];
% collect the incident waveform at the ULA
receivedsig = step(hc,x,incidentangle);
1-182
phased.ConformalArray
Properties Element
Element of array
Specify the element of the sensor array as a handle. The element
must be an element object in the phased package.
1-183
phased.ConformalArray
ElementPosition
Element positions
ElementPosition specifies the positions of the elements in the
conformal array. ElementPosition must be a 3-by-N matrix,
where N indicates the number of elements in the conformal array.
Each column of ElementPosition represents the position, in the
form [x; y; z] (in meters), of a single element in the array’s local
coordinate system. The local coordinate system has its origin at
an arbitrary point. The default value of this property represents a
single element at the origin of the local coordinate system.
Default: [0; 0; 0]
ElementNormal
Element normal directions
ElementNormal specifies the normal directions of the elements
in the conformal array. Angle units are degrees. The value
assigned to ElementNormal must be either a 2-by-N matrix or a
2-by-1 column vector. The variable N indicates the number of
elements in the array. If the value of ElementNormal is a matrix,
each column specifies the normal direction of the corresponding
element in the form [azimuth;elevation] with respect to the
local coordinate system. The local coordinate system aligns the
positive x-axis with the direction normal to the conformal array. If
the value of ElementNormal is a 2-by-1 column vector, it specifies
the same pointing direction for all elements in the array.
You can use the ElementPosition and ElementNormal
properties to represent any arrangement in which pairs of
elements differ by certain transformations. The transformations
can combine translation, azimuth rotation, and elevation rotation.
1-184
phased.ConformalArray
Default: [0; 0]
Taper
Element taper or weighting
Element taper or weighting specified as a complex scalar or 1-by-N
complex-valued vector. Weights are applied to each element in
the sensor array. N is the number of elements along in the array
as determined by the size of the ElementPosition property. If
the Taper parameter is a scalar, identical weights will be applied
to each element. If the value of Taper is a vector, each weight will
be applied to the corresponding element.
Default: 1
1-185
phased.ConformalArray
N = 8;
azang = (0:N-1)*360/N-180;
ha = phased.ConformalArray(...
'ElementPosition',[cosd(azang);sind(azang);zeros(1,N)],...
'ElementNormal',[azang;zeros(1,N)]);
fc = 1e9;
c = 3e8;
plotResponse(ha,fc,c,'RespCut','Az','Format','Polar');
1-186
phased.ConformalArray
N = 31;
theta = (0:N-1)*360/N-180;
1-187
phased.ConformalArray
Radius = 0.5;
s_mic = phased.OmnidirectionalMicrophoneElement(...
'FrequencyRange',[0,10000],'BackBaffled',true);
s_array = phased.ConformalArray('Element',s_mic,...
'ElementPosition',Radius*[zeros(1,N);cosd(theta);sind(theta)],...
'ElementNormal',[ones(1,N);zeros(1,N)]);
fc = 4000;
c = 1500.0;
plotResponse(s_array,fc,c,'RespCut','El',...
'Format','Polar','Unit','mag',...
'ElevationAngles',[-40:0.1:40]);
1-188
phased.ConformalArray
plotResponse(s_array,fc,c,'RespCut','El',...
'Format','Polar','Unit','dbi',...
'ElevationAngles',[-40:0.1:40]);
1-189
phased.ConformalArray
References [1] Josefsson, L. and P. Persson. Conformal Array Antenna Theory and
Design. Piscataway, NJ: IEEE Press, 2006.
1-190
phased.ConformalArray
1-191
phased.ConformalArray.clone
Syntax C = clone(H)
1-192
phased.ConformalArray.collectPlaneWave
Syntax Y = collectPlaneWave(H,X,ANG)
Y = collectPlaneWave(H,X,ANG,FREQ)
Y = collectPlaneWave(H,X,ANG,FREQ,C)
Input H
Arguments Array object.
X
Incoming signals, specified as an M-column matrix. Each column
of X represents an individual incoming signal.
ANG
Directions from which incoming signals arrive, in degrees. ANG
can be either a 2-by-M matrix or a row vector of length M.
If ANG is a 2-by-M matrix, each column specifies the direction of
arrival of the corresponding signal in X. Each column of ANG is in
the form [azimuth; elevation]. The azimuth angle must be
between –180 and 180 degrees, inclusive. The elevation angle
must be between –90 and 90 degrees, inclusive.
If ANG is a row vector of length M, each entry in ANG specifies the
azimuth angle. In this case, the corresponding elevation angle
is assumed to be 0.
FREQ
1-193
phased.ConformalArray.collectPlaneWave
Default: 3e8
C
Propagation speed of signal in meters per second.
Output Y
Arguments Received signals. Y is an N-column matrix, where N is the number
of elements in the array H. Each column of Y is the received signal
at the corresponding array element, with all incoming signals
combined.
N = 8; azang = (0:N-1)*360/N-180;
hArray = phased.ConformalArray(...
'ElementPosition',[cosd(azang);sind(azang);zeros(1,N)],...
'ElementNormal',[azang;zeros(1,N)]);
y = collectPlaneWave(hArray,randn(4,2),[10 30],1e8);
1-194
phased.ConformalArray.collectPlaneWave
1-195
phased.ConformalArray.getElementPosition
Examples Construct a default conformal array and obtain the element positions.
ha = phased.ConformalArray;
pos = getElementPosition(ha)
1-196
phased.ConformalArray.getNumElements
Syntax N = getNumElements(H)
Examples Construct a default conformal array and obtain the number of elements.
ha = phased.ConformalArray;
N = getNumElements(ha)
1-197
phased.ConformalArray.getNumInputs
Syntax N = getNumInputs(H)
1-198
phased.ConformalArray.getNumOutputs
Syntax N = getNumOutputs(H)
1-199
phased.ConformalArray.getTaper
Create a two-ring disk array and set the taper values on the outer ring
to be smaller than those on the inner ring.
elemAngles = ([0:5]*360/6);
elemPosInner = 0.5*[zeros(size(elemAngles));...
cosd(elemAngles);...
sind(elemAngles)];
elemPosOuter = [zeros(size(elemAngles));...
cosd(elemAngles);...
sind(elemAngles)];
elemNorms = repmat([0;0],1,12);
taper = [ones(size(elemAngles)),0.3*ones(size(elemAngles))];
ha = phased.ConformalArray(...
[elemPosInner,elemPosOuter],elemNorms,'Taper',taper);
1-200
phased.ConformalArray.getTaper
w = getTaper(ha)
w =
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
0.3000
0.3000
0.3000
0.3000
0.3000
0.3000
viewArray(ha,'ShowTaper',true,'ShowIndex','all');
1-201
phased.ConformalArray.getTaper
1-202
phased.ConformalArray.isLocked
Syntax TF = isLocked(H)
1-203
phased.ConformalArray.isPolarizationCapable
N = 8; azang = (0:N-1)*360/N-180;
h = phased.ShortDipoleAntennaElement;
ha = phased.ConformalArray(...
'Element',h,'ElementPosition',[cosd(azang);sind(azang);zeros(1,N)],..
'ElementNormal',[azang;zeros(1,N)]);
isPolarizationCapable(ha)
ans =
1-204
phased.ConformalArray.isPolarizationCapable
The returned value true (1) shows that this array supports
polarization.
1-205
phased.ConformalArray.plotResponse
Syntax plotResponse(H,FREQ,V)
plotResponse(H,FREQ,V,Name,Value)
hPlot = plotResponse( ___ )
Input H
Arguments Array object
FREQ
Operating frequency in Hertz specified as a scalar or 1-by-K row
vector. Values must lie within the range specified by a property of
H. That property is named FrequencyRange or FrequencyVector,
depending on the type of element in the array. The element has
no response at frequencies outside that range. If you set the
'RespCut' property of H to '3D', FREQ must be a scalar. When
FREQ is a row vector, plotResponse draws multiple frequency
responses on the same axes.
V
Propagation speed in meters per second.
1-206
phased.ConformalArray.plotResponse
value. Name must appear inside single quotes (' '). You can
specify several name and value pair arguments in any order as
Name1,Value1,...,NameN,ValueN.
’CutAngle’
Cut angle as a scalar. This argument is applicable only when
RespCut is 'Az' or 'El'. If RespCut is 'Az', CutAngle must
be between –90 and 90. If RespCut is 'El', CutAngle must be
between –180 and 180.
Default: 0
’Format’
Format of the plot, using one of 'Line', 'Polar', or 'UV'. If you
set Format to 'UV', FREQ must be a scalar.
Default: 'Line'
’NormalizeResponse’
Set this value to true to normalize the response pattern. Set this
value to false to plot the response pattern without normalizing
it. This parameter is not applicable when you set the Unit
parameter value to 'dbi'.
Default: true
’OverlayFreq’
Set this value to true to overlay pattern cuts in a 2-D line plot.
Set this value to false to plot pattern cuts against frequency in a
3-D waterfall plot. If this value is false, FREQ must be a vector
with at least two entries.
This parameter applies only when Format is not 'Polar' and
RespCut is not '3D'.
1-207
phased.ConformalArray.plotResponse
Default: true
’Polarization’
Specify the polarization options for plotting the array response
pattern. The allowable values are |'None' | 'Combined' | 'H'
| 'V' | where
Default: 'None'
’RespCut’
Cut of the response. Valid values depend on Format, as follows:
1-208
phased.ConformalArray.plotResponse
Default: 'db'
’Weights’
Weight values applied to the array, specified as a length-N
column vector or N-by-M matrix. The dimension N is the number
of elements in the array. The interpretation of M depends upon
whether the input argument FREQ is a scalar or row vector.
’AzimuthAngles’
1-209
phased.ConformalArray.plotResponse
Default: [-180:180]
’ElevationAngles’
Elevation angles for plotting array response, specified as a row
vector. The ElevationAngles parameter sets the display range
and resolution of elevation angles for visualizing the radiation
pattern. This parameter is allowed only when the RespCut
parameter is set to 'El' or '3D' and the Format parameter
is set to 'Line' or 'Polar'. The values of elevation angles
should lie between –90° and 90° and must be in nondecreasing
order. When yous set the RespCut parameter to '3D', you can
set the ElevationAngles and AzimuthAngles parameters
simultaneously.
Default: [-90:90]
’UGrid’
U coordinate values for plotting array response, specified as a
row vector. The UGrid parameter sets the display range and
resolution of the U coordinates for visualizing the radiation
pattern in U/V space. This parameter is allowed only when the
Format parameter is set to 'UV' and the RespCut parameter is
set to 'U' or '3D'. The values of UGrid should be between –1 and
1 and should be specified in nondecreasing order. You can set the
UGrid and VGrid parameters simultaneously.
1-210
phased.ConformalArray.plotResponse
Default: [-1:0.01:1]
’VGrid’
V coordinate values for plotting array response, specified as a
row vector. The VGrid parameter sets the display range and
resolution of the V coordinates for visualizing the radiation
pattern in U/V space. This parameter is allowed only when the
Format parameter is set to 'UV' and the RespCut parameter is
set to '3D'. The values of VGrid should be between –1 and 1 and
should be specified in nondecreasing order. You can set VGrid and
UGrid parameters simultaneously.
Default: [-1:0.01:1]
N = 8;
azang = (0:N-1)*360/N-180;
ha = phased.ConformalArray(...
'ElementPosition',[cosd(azang);sind(azang);zeros(1,N)],...
'ElementNormal',[azang;zeros(1,N)]);
fc = 1e9;
c = 3e8;
plotResponse(ha,fc,c,'RespCut','Az','Format','Polar');
1-211
phased.ConformalArray.plotResponse
N = 31;
theta = (0:N-1)*360/N-180;
1-212
phased.ConformalArray.plotResponse
Radius = 0.5;
s_mic = phased.OmnidirectionalMicrophoneElement(...
'FrequencyRange',[0,10000],'BackBaffled',true);
s_array = phased.ConformalArray('Element',s_mic,...
'ElementPosition',Radius*[zeros(1,N);cosd(theta);sind(theta)],...
'ElementNormal',[ones(1,N);zeros(1,N)]);
fc = 4000;
c = 1500.0;
plotResponse(s_array,fc,c,'RespCut','El',...
'Format','Polar','Unit','mag',...
'ElevationAngles',[-40:0.1:40]);
1-213
phased.ConformalArray.plotResponse
plotResponse(s_array,fc,c,'RespCut','El',...
'Format','Polar','Unit','dbi',...
'ElevationAngles',[-40:0.1:40]);
1-214
phased.ConformalArray.plotResponse
1-215
phased.ConformalArray.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-216
phased.ConformalArray.step
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Input H
Arguments Array object.
FREQ
Operating frequencies of array in hertz. FREQ is a row vector
of length L. Typical values are within the range specified by a
property of H.Element. That property is named FrequencyRange
or FrequencyVector, depending on the type of element in the
array. The element has zero response at frequencies outside that
range.
ANG
Directions in degrees. ANG can be either a 2-by-M matrix or a
row vector of length M.
If ANG is a 2-by-M matrix, each column of the matrix specifies the
direction in the form [azimuth; elevation]. The azimuth angle
1-217
phased.ConformalArray.step
Output RESP
Arguments Voltage responses of the phased array. The output depends on
whether the array supports polarization or not.
1-218
phased.ConformalArray.step
ha = phased.ConformalArray;
N = 8; azang = (0:N-1)*360/N-180;
ha.ElementPosition = [cosd(azang);sind(azang);zeros(1,N)];
ha.ElementNormal = [azang;zeros(1,N)];
fc = 1e9; ang = [30;5];
resp = step(ha,fc,ang);
resp =
1
1
1
1
1
1
1
1
1-219
phased.ConformalArray.viewArray
Syntax viewArray(H)
viewArray(H,Name,Value)
hPlot = viewArray( ___ )
Input H
Arguments Array object.
’ShowIndex’
Vector specifying the element indices to show in the figure. Each
number in the vector must be an integer between 1 and the
number of elements. You can also specify the string 'All' to show
indices of all elements of the array or 'None' to suppress indices.
Default: 'None'
’ShowNormals’
1-220
phased.ConformalArray.viewArray
Default: false
’ShowTaper’
Set this value to true to specify whether to change the element
color brightness in proportion to the element taper magnitude.
When this value is set to false, all elements are drawn with the
same color.
Default: false
’Title’
String specifying the title of the plot.
Output hPlot
Arguments Handle of array elements in figure window.
N = 8;
azang = (0:N-1)*360/N - 180;
ha = phased.ConformalArray(...
'ElementPosition',[cosd(azang);sind(azang);zeros(1,N)],...
'ElementNormal',[azang;zeros(1,N)]);
1-221
phased.ConformalArray.viewArray
viewArray(ha,'ShowNormals',true);
1-222
phased.ConstantGammaClutter
2 Call step to simulate the clutter return for your system according to
the properties of phased.ConstantGammaClutter. The behavior of
step is specific to each object in the toolbox.
1-223
phased.ConstantGammaClutter
and Value is the corresponding value. Name must appear inside single
quotes (''). You can specify several name-value pair arguments in any
order as Name1,Value1, ,NameN,ValueN.
Properties Sensor
Handle of sensor
Specify the sensor as an antenna element object or as an array
object whose Element property value is an antenna element
object. If the sensor is an array, it can contain subarrays.
PropagationSpeed
Signal propagation speed
Specify the propagation speed of the signal, in meters per second,
as a positive scalar.
OperatingFrequency
System operating frequency
Specify the operating frequency of the system in hertz as a
positive scalar. The default value corresponds to 300 MHz.
Default: 3e8
SampleRate
Sample rate
Specify the sample rate, in hertz, as a positive scalar. The default
value corresponds to 1 MHz.
Default: 1e6
1-224
phased.ConstantGammaClutter
PRF
Pulse repetition frequency
Specify the pulse repetition frequency in hertz as a positive scalar
or a row vector. The default value of this property corresponds to
10 kHz. When PRF is a vector, it represents a staggered PRF. In
this case, the output pulses use elements in the vector as their
PRFs, one after another, in a cycle.
Default: 1e4
Gamma
Terrain gamma value
Default: 0
EarthModel
Earth model
Specify the earth model used in clutter simulation as one of |
'Flat' | 'Curved' |. When you set this property to 'Flat', the
earth is assumed to be a flat plane. When you set this property to
'Curved', the earth is assumed to be a sphere.
Default: 'Flat'
PlatformHeight
Radar platform height from surface
Specify the radar platform height (in meters) measured upward
from the surface as a nonnegative scalar.
Default: 300
1-225
phased.ConstantGammaClutter
PlatformSpeed
Radar platform speed
Specify the radar platform’s speed as a nonnegative scalar in
meters per second.
Default: 300
PlatformDirection
Direction of radar platform motion
Specify the direction of radar platform motion as a 2-by-1 vector
in the form [AzimuthAngle; ElevationAngle] in degrees. The
default value of this property indicates that the platform moves
perpendicular to the radar antenna array’s broadside.
Both azimuth and elevation angle are measured in the local
coordinate system of the radar antenna or antenna array.
Azimuth angle must be between –180 and 180 degrees. Elevation
angle must be between –90 and 90 degrees.
Default: [90;0]
BroadsideDepressionAngle
Depression angle of array broadside
Specify the depression angle in degrees of the broadside of the
radar antenna array. This value is a scalar. The broadside is
defined as zero degrees azimuth and zero degrees elevation. The
depression angle is measured downward from horizontal.
Default: 0
MaximumRange
Maximum range for clutter simulation
1-226
phased.ConstantGammaClutter
Default: 5000
AzimuthCoverage
Azimuth coverage for clutter simulation
Specify the azimuth coverage in degrees as a positive scalar. The
clutter simulation covers a region having the specified azimuth
span, symmetric to 0 degrees azimuth. Typically, all clutter
patches have their azimuth centers within the region, but the
PatchAzimuthWidth value can cause some patches to extend
beyond the region.
Default: 60
PatchAzimuthWidth
Azimuth span of each clutter patch
Specify the azimuth span of each clutter patch in degrees as a
positive scalar.
Default: 1
TransmitSignalInputPort
Add input to specify transmit signal
Set this property to true to add input to specify the transmit
signal in the step syntax. Set this property to false omit the
transmit signal in the step syntax. The false option is less
computationally expensive; to use this option, you must also
specify the TransmitERP property.
Default: false
1-227
phased.ConstantGammaClutter
TransmitERP
Effective transmitted power
Specify the transmitted effective radiated power (ERP) of the
radar system in watts as a positive scalar. This property applies
only when you set the TransmitSignalInputPort property to
false.
Default: 5000
CoherenceTime
Clutter coherence time
Specify the coherence time in seconds for the clutter simulation
as a positive scalar. After the coherence time elapses, the step
method updates the random numbers it uses for the clutter
simulation at the next pulse. A value of inf means the random
numbers are never updated.
Default: inf
OutputFormat
Output signal format
Specify the format of the output signal as one of | 'Pulses'
| 'Samples' |. When you set the OutputFormat property to
'Pulses', the output of the step method is in the form of multiple
pulses. In this case, the number of pulses is the value of the
NumPulses property.
When you set the OutputFormat property to 'Samples', the
output of the step method is in the form of multiple samples. In
this case, the number of samples is the value of the NumSamples
property. In staggered PRF applications, you might find the
'Samples' option more convenient because the step output
always has the same matrix size.
1-228
phased.ConstantGammaClutter
Default: 'Pulses'
NumPulses
Number of pulses in output
Specify the number of pulses in the output of the step method as
a positive integer. This property applies only when you set the
OutputFormat property to 'Pulses'.
Default: 1
NumSamples
Number of samples in output
Specify the number of samples in the output of the step method
as a positive integer. Typically, you use the number of samples
in one pulse. This property applies only when you set the
OutputFormat property to 'Samples'.
Default: 100
SeedSource
Source of seed for random number generator
Specify how the object generates random numbers. Values of this
property are:
1-229
phased.ConstantGammaClutter
Default: 'Auto'
Seed
Seed for random number generator
Specify the seed for the random number generator as a scalar
integer between 0 and 232–1. This property applies when you set
the SeedSource property to 'Property'.
Default: 0
1-230
phased.ConstantGammaClutter
Nele = 4;
c = 3e8;
fc = 3e8;
lambda = c/fc;
ha = phased.ULA('NumElements',Nele,'ElementSpacing',lambda/2);
fs = 1e6;
prf = 10e3;
height = 1000;
direction = [90;0];
speed = 2000;
depang = 30;
1-231
phased.ConstantGammaClutter
Rmax = 5000;
Azcov = 120;
tergamma = 0;
tpower = 5000;
hclutter = phased.ConstantGammaClutter('Sensor',ha,...
'PropagationSpeed',c,'OperatingFrequency',fc,'PRF',prf,...
'SampleRate',fs,'Gamma',tergamma,'EarthModel','Flat',...
'TransmitERP',tpower,'PlatformHeight',height,...
'PlatformSpeed',speed,'PlatformDirection',direction,...
'BroadsideDepressionAngle',depang,'MaximumRange',Rmax,...
'AzimuthCoverage',Azcov,'SeedSource','Property',...
'Seed',40547);
Nsamp = fs/prf;
Npulse = 10;
csig = zeros(Nsamp,Nele,Npulse);
for m = 1:Npulse
csig(:,:,m) = step(hclutter);
end
Plot the angle-Doppler response of the clutter at the 20th range bin.
hresp = phased.AngleDopplerResponse('SensorArray',ha,...
'OperatingFrequency',fc,'PropagationSpeed',c,'PRF',prf);
plotResponse(hresp,shiftdim(csig(20,:,:)),...
'NormalizeDoppler',true);
1-232
phased.ConstantGammaClutter
1-233
phased.ConstantGammaClutter
the PRF is 10 kHz. The propagation speed is 300,000 km/s, and the
operating frequency is 300 MHz. The radar platform is flying 1 km
above the ground with a path parallel to the ground along the array
axis. The platform speed is 2000 m/s. The mainlobe has a depression
angle of 30 degrees.
Nele = 4;
c = 3e8;
fc = 3e8;
lambda = c/fc;
ha = phased.ULA('NumElements',Nele,'ElementSpacing',lambda/2);
fs = 1e6;
prf = 10e3;
height = 1000;
direction = [90;0];
speed = 2000;
depang = 30;
Rmax = 5000;
Azcov = 120;
tergamma = 0;
hclutter = phased.ConstantGammaClutter('Sensor',ha,...
'PropagationSpeed',c,'OperatingFrequency',fc,'PRF',prf,...
'SampleRate',fs,'Gamma',tergamma,'EarthModel','Flat',...
'TransmitSignalInputPort',true,'PlatformHeight',height,...
'PlatformSpeed',speed,'PlatformDirection',direction,...
'BroadsideDepressionAngle',depang,'MaximumRange',Rmax,...
'AzimuthCoverage',Azcov,'SeedSource','Property',...
'Seed',40547);
1-234
phased.ConstantGammaClutter
Simulate the clutter return for 10 pulses. At each step, pass the
transmit signal as an input argument. The software automatically
computes the effective transmitted power of the signal. The transmit
signal is a rectangular waveform with a pulse width of 2 microseconds.
tpower = 5000;
pw = 2e-6;
X = tpower*ones(floor(pw*fs),1);
Nsamp = fs/prf;
Npulse = 10;
csig = zeros(Nsamp,Nele,Npulse);
for m = 1:Npulse
csig(:,:,m) = step(hclutter,X);
end
Plot the angle-Doppler response of the clutter at the 20th range bin.
hresp = phased.AngleDopplerResponse('SensorArray',ha,...
'OperatingFrequency',fc,'PropagationSpeed',c,'PRF',prf);
plotResponse(hresp,shiftdim(csig(20,:,:)),...
'NormalizeDoppler',true);
1-235
phased.ConstantGammaClutter
1-236
phased.ConstantGammaClutter
References [1] Barton, David. “Land Clutter Models for Radar Design and
Analysis,” Proceedings of the IEEE. Vol. 73, Number 2, February, 1985,
pp. 198–204.
[2] Long, Maurice W. Radar Reflectivity of Land and Sea, 3rd Ed.
Boston: Artech House, 2001.
[3] Nathanson, Fred E., J. Patrick Reilly, and Marvin N. Cohen. Radar
Design Principles, 2nd Ed. Mendham, NJ: SciTech Publishing, 1999.
1-237
phased.ConstantGammaClutter.clone
Purpose Create constant gamma clutter simulation object with same property
values
Syntax C = clone(H)
1-238
phased.ConstantGammaClutter.getNumInputs
Syntax N = getNumInputs(H)
N = getNumInputs(H) returns a positive integer, N, representing the
number of inputs (not counting the object itself) you must use when
calling the step method. This value will change if you alter any
properties that turn inputs on or off.
1-239
phased.ConstantGammaClutter.getNumOutputs
Syntax N = getNumOutputs(H)
1-240
phased.ConstantGammaClutter.isLocked
Syntax TF = isLocked(H)
1-241
phased.ConstantGammaClutter.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-242
phased.ConstantGammaClutter.reset
Purpose Reset random numbers and time count for clutter simulation
Syntax reset(H)
1-243
phased.ConstantGammaClutter.step
Syntax Y = step(H)
Y = step(H,X)
Y = step(H,STEERANGLE)
Y = step(H,X,STEERANGLE)
Description Y = step(H) computes the collected clutter return at each sensor. This
syntax is available when you set the TransmitSignalInputPort
property to false.
Y = step(H,X) specifies the transmit signal in X. Transmit signal
refers to the output of the transmitter while it is on during a given pulse.
This syntax is available when you set the TransmitSignalInputPort
property to true.
Y = step(H,STEERANGLE) uses STEERANGLE as the subarray steering
angle. This syntax is available when you configure H so that H.Sensor
is an array that contains subarrays and H.Sensor.SubarraySteering
is either 'Phase' or 'Time'.
Y = step(H,X,STEERANGLE) combines all input arguments. This syntax
is available when you configure H so that H.TransmitSignalInputPort
is true, H.Sensor is an array that contains subarrays, and
H.Sensor.SubarraySteering is either 'Phase' or 'Time'.
Input H
Arguments Constant gamma clutter object.
X
Transmit signal, specified as a column vector.
STEERANGLE
Subarray steering angle in degrees. STEERANGLE can be a
length-2 column vector or a scalar.
If STEERANGLE is a length-2 vector, it has the form [azimuth;
elevation]. The azimuth angle must be between –180 and 180
1-244
phased.ConstantGammaClutter.step
Output Y
Arguments Collected clutter return at each sensor. Y has dimensions N-by-M
matrix. M is the number of subarrays in the radar system if
H.Sensor contains subarrays, or the number of sensors, otherwise.
When you set the OutputFormat property to 'Samples', N
is specified in the NumSamples property. When you set the
OutputFormat property to 'Pulses', N is the total number of
samples in the next L pulses. In this case, L is specified in the
NumPulses property.
1-245
phased.ConstantGammaClutter.step
Nele = 4;
c = 3e8; fc = 3e8; lambda = c/fc;
ha = phased.ULA('NumElements',Nele,'ElementSpacing',lambda/2);
1-246
phased.ConstantGammaClutter.step
csig = zeros(Nsamp,Nele,Npulse);
for m = 1:Npulse
csig(:,:,m) = step(hclutter);
end
Plot the angle-Doppler response of the clutter at the 20th range bin.
hresp = phased.AngleDopplerResponse('SensorArray',ha,...
'OperatingFrequency',fc,'PropagationSpeed',c,'PRF',prf);
plotResponse(hresp,shiftdim(csig(20,:,:)),...
'NormalizeDoppler',true);
1-247
phased.ConstantGammaClutter.step
1-248
phased.ConstantGammaClutter.step
Nele = 4;
c = 3e8; fc = 3e8; lambda = c/fc;
ha = phased.ULA('NumElements',Nele,'ElementSpacing',lambda/2);
Simulate the clutter return for 10 pulses. At each step, pass the
transmit signal as an input argument. The software automatically
computes the effective transmitted power of the signal. The transmit
signal is a rectangular waveform with a pulse width of 2 µs.
tpower = 5000;
pw = 2e-6;
X = tpower*ones(floor(pw*fs),1);
Nsamp = fs/prf; Npulse = 10;
1-249
phased.ConstantGammaClutter.step
csig = zeros(Nsamp,Nele,Npulse);
for m = 1:Npulse
csig(:,:,m) = step(hclutter,X);
end
Plot the angle-Doppler response of the clutter at the 20th range bin.
hresp = phased.AngleDopplerResponse('SensorArray',ha,...
'OperatingFrequency',fc,'PropagationSpeed',c,'PRF',prf);
plotResponse(hresp,shiftdim(csig(20,:,:)),...
'NormalizeDoppler',true);
1-250
phased.ConstantGammaClutter.step
1-251
phased.CosineAntennaElement
Properties FrequencyRange
Operating frequency range
Specify the operating frequency range (in Hz) of the antenna
element as a 1-by-2 row vector in the form [LowerBound
HigherBound]. The antenna element has no response outside
the specified frequency range.
Default: [0 1e20]
CosinePower
1-252
phased.CosineAntennaElement
1-253
phased.CosineAntennaElement
In this expression:
The response is defined for azimuth and elevation angles between –90
and 90 degrees, inclusive. There is no response at the back of a cosine
antenna. The cosine response pattern achieves a maximum value of
1 at 0 degrees azimuth and elevation. Raising the response pattern
to powers greater than one concentrates the response in azimuth or
elevation.
ha = phased.CosineAntennaElement('FrequencyRange',...
[800e6 1.2e9]);
resp = step(ha,1e9,[0; 0]);
plotResponse(ha,1e9,'RespCut','El','Format','Polar');
1-254
phased.CosineAntennaElement
1-255
phased.CosineAntennaElement.clone
Syntax C = clone(H)
1-256
phased.CosineAntennaElement.getNumInputs
Syntax N = getNumInputs(H)
1-257
phased.CosineAntennaElement.getNumOutputs
Syntax N = getNumOutputs(H)
1-258
phased.CosineAntennaElement.isLocked
Syntax TF = isLocked(H)
1-259
phased.CosineAntennaElement.isPolarizationCapable
h = phased.CosineAntennaElement('FrequencyRange',[1.0,10]*1e9);
isPolarizationCapable(h)
ans =
The returned value false (0) shows that the antenna element does
not support polarization.
1-260
phased.CosineAntennaElement.plotResponse
Syntax plotResponse(H,FREQ)
plotResponse(H,FREQ,Name,Value)
hPlot = plotResponse( ___ )
Input H
Arguments Element System object
FREQ
Operating frequency in Hertz specified as a scalar or 1–by-K
row vector. FREQ must lie within the range specified by the
FrequencyVector property of H. If you set the 'RespCut' property
of H to '3D', FREQ must be a scalar. When FREQ is a row vector,
plotResponse draws multiple frequency responses on the same
axes.
’CutAngle’
1-261
phased.CosineAntennaElement.plotResponse
Default: 0
’Format’
Format of the plot, using one of 'Line', 'Polar', or 'UV'. If you
set Format to 'UV', FREQ must be a scalar.
Default: 'Line'
’NormalizeResponse’
Set this value to true to normalize the response pattern. Set this
value to false to plot the response pattern without normalizing
it. This parameter is not applicable when you set the Unit
parameter value to 'dbi'.
Default: true
’OverlayFreq’
Set this value to true to overlay pattern cuts in a 2-D line plot.
Set this value to false to plot pattern cuts against frequency in a
3-D waterfall plot. If this value is false, FREQ must be a vector
with at least two entries.
This parameter applies only when Format is not 'Polar' and
RespCut is not '3D'.
Default: true
’Polarization’
1-262
phased.CosineAntennaElement.plotResponse
Default: 'None'
’RespCut’
Cut of the response. Valid values depend on Format, as follows:
1-263
phased.CosineAntennaElement.plotResponse
Default: 'db'
’AzimuthAngles’
Azimuth angles for plotting element response, specified as a row
vector. The AzimuthAngles parameter sets the display range and
resolution of azimuth angles for visualizing the radiation pattern.
This parameter is allowed only when the RespCut parameter is
set to 'Az' or '3D' and the Format parameter is set to 'Line' or
'Polar'. The values of azimuth angles should lie between –180°
and 180° and must be in nondecreasing order. When you set the
RespCut parameter to '3D', you can set the AzimuthAngles and
ElevationAngles parameters simultaneously.
Default: [-180:180]
’ElevationAngles’
Elevation angles for plotting element response, specified as a row
vector. The ElevationAngles parameter sets the display range
and resolution of elevation angles for visualizing the radiation
pattern. This parameter is allowed only when the RespCut
parameter is set to 'El' or '3D' and the Format parameter
is set to 'Line' or 'Polar'. The values of elevation angles
should lie between –90° and 90° and must be in nondecreasing
order. When you set the RespCut parameter to '3D', you can
set the ElevationAngles and AzimuthAngles parameters
simultaneously.
1-264
phased.CosineAntennaElement.plotResponse
Default: [-90:90]
’UGrid’
U coordinate values for plotting element response, specified as
a row vector. The UGrid parameter sets the display range and
resolution of the U coordinates for visualizing the radiation
pattern in U/V space. This parameter is allowed only when the
Format parameter is set to 'UV' and the RespCut parameter is
set to 'U' or '3D'. The values of UGrid should be between –1 and
1 and should be specified in nondecreasing order. You can set the
UGrid and VGrid parameters simultaneously.
Default: [-1:0.01:1]
’VGrid’
V coordinate values for plotting element response, specified
as a row vector. The VGrid parameter sets the display range
and resolution of the V coordinates for visualizing the radiation
pattern in U/V space. This parameter is allowed only when the
Format parameter is set to 'UV' and the RespCut parameter is
set to '3D'. The values of VGrid should be between –1 and 1 and
should be specified in nondecreasing order. You can set the VGrid
and UGrid parameters simultaneously.
Default: [-1:0.01:1]
This example shows how to plot the 3-D polar response of a cosine
antenna element. Construct a cosine antenna element using default
parameters. Assume the antenna operating frequency is 1 GHz. Then,
plot the antenna’s response in 3-D polar format.
hcos = phased.CosineAntennaElement;
plotResponse(hcos,1e9,'Format','Polar','RespCut','3D');
1-265
phased.CosineAntennaElement.plotResponse
hcos = phased.CosineAntennaElement;
plotResponse(hcos,1e9,'Format','Polar','RespCut','Az',...
1-266
phased.CosineAntennaElement.plotResponse
'AzimuthAngles',[-30:0.1:30],'Unit','mag');
sCos = phased.CosineAntennaElement('FrequencyRange',...
1-267
phased.CosineAntennaElement.plotResponse
[1e9 2e9],'CosinePower',[2.5,3.5]);
plotResponse(sCos,1.5e9,'RespCut','El','Unit','dbi');
1-268
phased.CosineAntennaElement.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-269
phased.CosineAntennaElement.step
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Input H
Arguments Antenna element object.
FREQ
Operating frequencies of antenna in hertz. FREQ is a row vector
of length L.
ANG
Directions in degrees. ANG can be either a 2-by-M matrix or a
row vector of length M.
If ANG is a 2-by-M matrix, each column of the matrix specifies the
direction in the form [azimuth; elevation]. The azimuth angle
must be between –180 and 180 degrees, inclusive. The elevation
angle must be between –90 and 90 degrees, inclusive.
If ANG is a row vector of length M, each element specifies a
direction’s azimuth angle. In this case, the corresponding
elevation angle is assumed to be 0.
1-270
phased.CosineAntennaElement.step
Output RESP
Arguments Voltage response of antenna element specified as an M-by-L,
complex-valued matrix. In this matrix, M represents the number
of angles specified in ANG while L represents the number of
frequencies specified in FREQ.
In this expression:
The response is defined for azimuth and elevation angles between –90
and 90 degrees, inclusive. There is no response at the back of a cosine
antenna. The cosine response pattern achieves a maximum value of
1 at 0 degrees azimuth and elevation. Raising the response pattern
to powers greater than one concentrates the response in azimuth or
elevation.
hant = phased.CosineAntennaElement(...
'FrequencyRange',[8e9 12e9],...
'CosinePower',1.5);
% operating frequency
fc = 10e9;
1-271
phased.CosineAntennaElement.step
% incident angle
ang = [30;5];
% use the step method to obtain the antenna's response
resp = step(hant,fc,ang);
1-272
phased.CrossedDipoleAntennaElement
Properties FrequencyRange
Antenna operating frequency range
Antenna operating frequency range specified as a 1-by-2 row
vector in the form of [LowerBound HigherBound]. This defines
the frequency range over which the antenna has a response. The
antenna element has no response outside the specified frequency
range.
Default: [0 1e20]
1-273
phased.CrossedDipoleAntennaElement
First, set up the radar parameters, and obtain the vertical and
horizontal polarization responses at five different directions: elevation
angles -30, -15, 0, 15 and 30 degrees, all at 0 degrees azimuth angle.
The responses are computed at an operating frequency of 1.5 GHz.
scd = phased.CrossedDipoleAntennaElement(...
'FrequencyRange',[1,2]*1e9);
fc = 1.5e9;
resp = step(scd,fc,[0,0,0,0,0;-30,-15,0,15,30]);
[resp.V, resp.H]
ans =
1-274
phased.CrossedDipoleAntennaElement
plotResponse(scd,fc,'Format','Polar',...
'RespCut','3D','Polarization','C');
1-275
phased.CrossedDipoleAntennaElement
1-276
phased.CrossedDipoleAntennaElement
References
[1] Mott, H., Antennas for Radar and Communications, John Wiley &
Sons, 1992.
1-277
phased.CrossedDipoleAntennaElement.clone
Syntax C = clone(H)
1-278
phased.CrossedDipoleAntennaElement.getNumInputs
Syntax N = getNumInputs(H)
1-279
phased.CrossedDipoleAntennaElement.getNumOutputs
Syntax N = getNumOutputs(H)
1-280
phased.CrossedDipoleAntennaElement.isLocked
Syntax TF = isLocked(H)
1-281
phased.CrossedDipoleAntennaElement.isPolarizationCapable
h = phased.CrossedDipoleAntennaElement;
isPolarizationCapable(h)
ans =
The returned value true (1) shows that the crossed-dipole antenna
element supports polarization.
1-282
phased.CrossedDipoleAntennaElement.plotResponse
Syntax plotResponse(H,FREQ)
plotResponse(H,FREQ,Name,Value)
hPlot = plotResponse( ___ )
Input H
Arguments Element System object
FREQ
Operating frequency in Hertz specified as a scalar or 1–by-K
row vector. FREQ must lie within the range specified by the
FrequencyVector property of H. If you set the 'RespCut' property
of H to '3D', FREQ must be a scalar. When FREQ is a row vector,
plotResponse draws multiple frequency responses on the same
axes.
’CutAngle’
1-283
phased.CrossedDipoleAntennaElement.plotResponse
Default: 0
’Format’
Format of the plot, using one of 'Line', 'Polar', or 'UV'. If you
set Format to 'UV', FREQ must be a scalar.
Default: 'Line'
’NormalizeResponse’
Set this value to true to normalize the response pattern. Set this
value to false to plot the response pattern without normalizing
it. This parameter is not applicable when you set the Unit
parameter value to 'dbi'.
Default: true
’OverlayFreq’
Set this value to true to overlay pattern cuts in a 2-D line plot.
Set this value to false to plot pattern cuts against frequency in a
3-D waterfall plot. If this value is false, FREQ must be a vector
with at least two entries.
This parameter applies only when Format is not 'Polar' and
RespCut is not '3D'.
Default: true
’Polarization’
1-284
phased.CrossedDipoleAntennaElement.plotResponse
Default: 'None'
’RespCut’
Cut of the response. Valid values depend on Format, as follows:
1-285
phased.CrossedDipoleAntennaElement.plotResponse
Default: 'db'
’AzimuthAngles’
Azimuth angles for plotting element response, specified as a row
vector. The AzimuthAngles parameter sets the display range and
resolution of azimuth angles for visualizing the radiation pattern.
This parameter is allowed only when the RespCut parameter is
set to 'Az' or '3D' and the Format parameter is set to 'Line' or
'Polar'. The values of azimuth angles should lie between –180°
and 180° and must be in nondecreasing order. When you set the
RespCut parameter to '3D', you can set the AzimuthAngles and
ElevationAngles parameters simultaneously.
Default: [-180:180]
’ElevationAngles’
Elevation angles for plotting element response, specified as a row
vector. The ElevationAngles parameter sets the display range
and resolution of elevation angles for visualizing the radiation
pattern. This parameter is allowed only when the RespCut
parameter is set to 'El' or '3D' and the Format parameter
is set to 'Line' or 'Polar'. The values of elevation angles
should lie between –90° and 90° and must be in nondecreasing
order. When you set the RespCut parameter to '3D', you can
set the ElevationAngles and AzimuthAngles parameters
simultaneously.
1-286
phased.CrossedDipoleAntennaElement.plotResponse
Default: [-90:90]
’UGrid’
U coordinate values for plotting element response, specified as
a row vector. The UGrid parameter sets the display range and
resolution of the U coordinates for visualizing the radiation
pattern in U/V space. This parameter is allowed only when the
Format parameter is set to 'UV' and the RespCut parameter is
set to 'U' or '3D'. The values of UGrid should be between –1 and
1 and should be specified in nondecreasing order. You can set the
UGrid and VGrid parameters simultaneously.
Default: [-1:0.01:1]
’VGrid’
V coordinate values for plotting element response, specified
as a row vector. The VGrid parameter sets the display range
and resolution of the V coordinates for visualizing the radiation
pattern in U/V space. This parameter is allowed only when the
Format parameter is set to 'UV' and the RespCut parameter is
set to '3D'. The values of VGrid should be between –1 and 1 and
should be specified in nondecreasing order. You can set the VGrid
and UGrid parameters simultaneously.
Default: [-1:0.01:1]
scd = phased.CrossedDipoleAntennaElement(...
'FrequencyRange',[100 900]*1e6);
plotResponse(scd,250e6,'Format','Polar',...
1-287
phased.CrossedDipoleAntennaElement.plotResponse
'RespCut','3D','Polarization','V');
1-288
phased.CrossedDipoleAntennaElement.plotResponse
scd = phased.CrossedDipoleAntennaElement(...
'FrequencyRange',[100 900]*1e6);
plotResponse(scd,250e6,'Format','Polar',...
'RespCut','3D','Polarization','H');
1-289
phased.CrossedDipoleAntennaElement.plotResponse
scd = phased.CrossedDipoleAntennaElement(...
'FrequencyRange',[100 900]*1e6);
plotResponse(scd,250e6,'Format','Polar',...
'RespCut','El','ElevationAngles',[-90:0.1:90],...
'Polarization','V');
1-290
phased.CrossedDipoleAntennaElement.plotResponse
plotResponse(scd,250e6,'Format','Polar','Unit','dbi',...
'RespCut','El','ElevationAngles',[-90:0.1:90]);
1-291
phased.CrossedDipoleAntennaElement.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-292
phased.CrossedDipoleAntennaElement.step
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Input H
Arguments Antenna element object.
FREQ
Operating frequencies of antenna in hertz. FREQ is a row vector
of length L.
ANG
Directions in degrees. ANG can be either a 2-by-M matrix or a
row vector of length M.
If ANG is a 2-by-M matrix, each column of the matrix specifies the
direction in the form [azimuth; elevation]. The azimuth angle
1-293
phased.CrossedDipoleAntennaElement.step
Output RESP
Arguments Voltage response of antenna element returned as a MATLAB
struct with fields RESP.H and RESP.V. Both RESP.H and RESP.V
contain responses for the horizontal and vertical polarization
components of the antenna radiation pattern. Both RESP.H and
RESP.V are M-by-L matrices. In these matrices, M represents the
number of angles specified in ANG, and L represents the number
of frequencies specified in FREQ.
hcd = phased.CrossedDipoleAntennaElement(...
'FrequencyRange',[100 900]*1e6);
ang = [0 30;0 0];
fc = 250e6;
resp = step(hcd,fc,ang);
resp.H =
0.0000 - 1.2247i
0.0000 - 1.0607i
resp.V =
-1.2247
-1.2247
1-294
phased.CrossedDipoleAntennaElement.step
1-295
phased.CustomAntennaElement
1-296
phased.CustomAntennaElement
Properties FrequencyVector
Response and pattern frequency vector
Specify the frequencies (in Hz) at which the frequency response
and antenna patterns are to be returned, as a 1-by-L row
vector. The elements of the vector must be in increasing order.
The antenna element has no response outside the frequency
range specified by the minimum and maximum elements of the
frequency vector.
Default: [0 1e20]
AzimuthAngles
Azimuth angles
Specify the azimuth angles (in degrees) as a length-P vector.
These values are the azimuth angles where the custom radiation
pattern is to be specified. P must be greater than 2. The azimuth
angles should lie between –180 and 180 degrees and be in strictly
increasing order.
Default: [-180:180]
ElevationAngles
Elevation angles
Specify the elevation angles (in degrees) as a length-Q vector.
These values are the elevation angles where the custom radiation
pattern is to be specified. Q must be greater than 2. The elevation
angles should lie between –90 and 90 degrees and be in strictly
increasing order.
Default: [-90:90]
FrequencyResponse
Frequency responses of antenna element
1-297
phased.CustomAntennaElement
Default: [0 0]
SpecifyPolarizationPattern
Polarized array response
Default: false
RadiationPattern
Magnitude of combined antenna radiation pattern
The magnitude of the combined polarization antenna radiation
pattern specified as a Q-by-P matrix or a Q-by-P-by-L array. This
property is used only when the SpecifyPolarizationPattern
property is set to false. Magnitude units are in dB.
1-298
phased.CustomAntennaElement
HorizontalMagnitudePattern
Magnitude of horizontal polarization component of antenna
radiation pattern
The magnitude of the horizontal polarization component of
the antenna radiation pattern specified as a Q-by-P matrix
or a Q-by-P-by-L array. This property is used only when the
SpecifyPolarizationPattern property is set to true. Magnitude
units are in dB.
1-299
phased.CustomAntennaElement
HorizontalPhasePattern
Phase of horizontal polarization component of antenna radiation
pattern
The phase of the horizontal polarization component of the
antenna radiation pattern specified as a Q-by-P matrix or
a Q-by-P-by-L array. This property is used only when the
SpecifyPolarizationPattern property is set to true. Phase
units are in degrees.
VerticalMagnitudePattern
1-300
phased.CustomAntennaElement
VerticalPhasePattern
Phase of vertical polarization component of antenna radiation
pattern
The phase of the vertical polarization component of the
antenna radiation pattern specified as a Q-by-P matrix or
a Q-by-P-by-L array. This property is used only when the
SpecifyPolarizationPattern property is set to true. Phase
units are in degrees.
1-301
phased.CustomAntennaElement
1-302
phased.CustomAntennaElement
ha = phased.CustomAntennaElement;
ha.AzimuthAngles = -180:180;
ha.ElevationAngles = -90:90;
ha.RadiationPattern = mag2db(repmat(cosd(ha.ElevationAngles)',...
1,numel(ha.AzimuthAngles)));
resp = step(ha,1e9,[0;30])
resp =
0.8660
plotResponse(ha,1e9,'RespCut','El','Format','Polar');
1-303
phased.CustomAntennaElement
plotResponse(ha,1e9,'RespCut','El','Format','Polar','Unit','dbi');
1-304
phased.CustomAntennaElement
u = -1:0.01:1;
v = -1:0.01:1;
1-305
phased.CustomAntennaElement
[u_grid,v_grid] = meshgrid(u,v);
pat_uv = sqrt(1 - u_grid.^2 - v_grid.^2);
pat_uv(hypot(u_grid,v_grid) >= 1) = 0;
[pat_azel,az,el] = uv2azelpat(pat_uv,u,v);
ha = phased.CustomAntennaElement(...
'AzimuthAngles',az,'ElevationAngles',el,...
'RadiationPattern',pat_azel);
dir_uv = [0.5;0];
dir_azel = uv2azel(dir_uv);
fc = 1e9;
resp = step(ha,fc,dir_azel)
resp =
1.1048
plotResponse(ha,fc,'Format','UV','RespCut','3D');
1-306
phased.CustomAntennaElement
plotResponse(ha,fc,'Format','UV');
1-307
phased.CustomAntennaElement
1-308
phased.CustomAntennaElement
az = [-180:180];
el = [-90:90];
[az_grid,el_grid] = meshgrid(az,el);
horz_pat_azel = ...
mag2db(abs(sind(az_grid)));
vert_pat_azel = ...
mag2db(abs(sind(el_grid).*cosd(az_grid)));
ha = phased.CustomAntennaElement(...
'AzimuthAngles',az,'ElevationAngles',el,...
'SpecifyPolarizationPattern',true,...
'HorizontalMagnitudePattern',horz_pat_azel,...
'VerticalMagnitudePattern',vert_pat_azel);
fc = 1e9;
plotResponse(ha,fc,'Format','Polar',...
'RespCut','3D','Polarization','V');
1-309
phased.CustomAntennaElement
plotResponse(ha,fc,'Format','Polar',...
'RespCut','3D','Polarization','H');
1-310
phased.CustomAntennaElement
plotResponse(ha,fc,'Format','Polar',...
'RespCut','3D','Polarization','C');
1-311
phased.CustomAntennaElement
1-312
phased.CustomAntennaElement
1-313
phased.CustomAntennaElement.clone
Syntax C = clone(H)
1-314
phased.CustomAntennaElement.getNumInputs
Syntax N = getNumInputs(H)
1-315
phased.CustomAntennaElement.getNumOutputs
Syntax N = getNumOutputs(H)
1-316
phased.CustomAntennaElement.isLocked
Syntax TF = isLocked(H)
1-317
phased.CustomAntennaElement.isPolarizationCapable
ans =
1-318
phased.CustomAntennaElement.isPolarizationCapable
The returned value true (1) shows that this antenna element supports
polarization when the 'SpecifyPolarizationPattern' property is
set to true.
1-319
phased.CustomAntennaElement.plotResponse
Syntax plotResponse(H,FREQ)
plotResponse(H,FREQ,Name,Value)
hPlot = plotResponse( ___ )
Input H
Arguments Element System object
FREQ
Operating frequency in Hertz specified as a scalar or 1–by-K
row vector. FREQ must lie within the range specified by the
FrequencyVector property of H. If you set the 'RespCut' property
of H to '3D', FREQ must be a scalar. When FREQ is a row vector,
plotResponse draws multiple frequency responses on the same
axes.
’CutAngle’
1-320
phased.CustomAntennaElement.plotResponse
Default: 0
’Format’
Format of the plot, using one of 'Line', 'Polar', or 'UV'. If you
set Format to 'UV', FREQ must be a scalar.
Default: 'Line'
’NormalizeResponse’
Set this value to true to normalize the response pattern. Set this
value to false to plot the response pattern without normalizing
it. This parameter is not applicable when you set the Unit
parameter value to 'dbi'.
Default: true
’OverlayFreq’
Set this value to true to overlay pattern cuts in a 2-D line plot.
Set this value to false to plot pattern cuts against frequency in a
3-D waterfall plot. If this value is false, FREQ must be a vector
with at least two entries.
This parameter applies only when Format is not 'Polar' and
RespCut is not '3D'.
Default: true
’Polarization’
1-321
phased.CustomAntennaElement.plotResponse
Default: 'None'
’RespCut’
Cut of the response. Valid values depend on Format, as follows:
1-322
phased.CustomAntennaElement.plotResponse
Default: 'db'
’AzimuthAngles’
Azimuth angles for plotting element response, specified as a row
vector. The AzimuthAngles parameter sets the display range and
resolution of azimuth angles for visualizing the radiation pattern.
This parameter is allowed only when the RespCut parameter is
set to 'Az' or '3D' and the Format parameter is set to 'Line' or
'Polar'. The values of azimuth angles should lie between –180°
and 180° and must be in nondecreasing order. When you set the
RespCut parameter to '3D', you can set the AzimuthAngles and
ElevationAngles parameters simultaneously.
Default: [-180:180]
’ElevationAngles’
Elevation angles for plotting element response, specified as a row
vector. The ElevationAngles parameter sets the display range
and resolution of elevation angles for visualizing the radiation
pattern. This parameter is allowed only when the RespCut
parameter is set to 'El' or '3D' and the Format parameter
is set to 'Line' or 'Polar'. The values of elevation angles
should lie between –90° and 90° and must be in nondecreasing
order. When you set the RespCut parameter to '3D', you can
set the ElevationAngles and AzimuthAngles parameters
simultaneously.
1-323
phased.CustomAntennaElement.plotResponse
Default: [-90:90]
’UGrid’
U coordinate values for plotting element response, specified as
a row vector. The UGrid parameter sets the display range and
resolution of the U coordinates for visualizing the radiation
pattern in U/V space. This parameter is allowed only when the
Format parameter is set to 'UV' and the RespCut parameter is
set to 'U' or '3D'. The values of UGrid should be between –1 and
1 and should be specified in nondecreasing order. You can set the
UGrid and VGrid parameters simultaneously.
Default: [-1:0.01:1]
’VGrid’
V coordinate values for plotting element response, specified
as a row vector. The VGrid parameter sets the display range
and resolution of the V coordinates for visualizing the radiation
pattern in U/V space. This parameter is allowed only when the
Format parameter is set to 'UV' and the RespCut parameter is
set to '3D'. The values of VGrid should be between –1 and 1 and
should be specified in nondecreasing order. You can set the VGrid
and UGrid parameters simultaneously.
Default: [-1:0.01:1]
fc = 1e9;
sCust = phased.CustomAntennaElement;
1-324
phased.CustomAntennaElement.plotResponse
sCust.AzimuthAngles = -180:180;
sCust.ElevationAngles = -90:90;
sCust.RadiationPattern = mag2db(repmat(cosd(sCust.ElevationAngles)',..
1,numel(sCust.AzimuthAngles)));
resp = step(sCust,fc,[0;0]);
plotResponse(sCust,fc,'RespCut','El','Format','Line','Unit','mag');
1-325
phased.CustomAntennaElement.plotResponse
Plot an elevation cut of the directivity as a line plot, showing that the
maximum directivity is approximately 2 dB.
plotResponse(sCust,fc,'RespCut','El','Format','Line','Unit','dbi');
1-326
phased.CustomAntennaElement.plotResponse
fc = 1e9;
sCust = phased.CustomAntennaElement;
sCust.AzimuthAngles = -180:180;
sCust.ElevationAngles = -90:90;
sCust.RadiationPattern = mag2db(repmat(cosd(sCust.ElevationAngles)',..
1,numel(sCust.AzimuthAngles)));
resp = step(sCust,fc,[0;0]);
plotResponse(sCust,fc,'RespCut','3D','Format','Polar',...
'AzimuthAngles',[-30:0.1:30],'ElevationAngles',...
[-30:0.1:30],'Unit','pow');
1-327
phased.CustomAntennaElement.plotResponse
1-328
phased.CustomAntennaElement.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-329
phased.CustomAntennaElement.step
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Input H
Arguments Antenna element object.
FREQ
Operating frequencies of antenna in hertz. FREQ is a row vector
of length L.
ANG
1-330
phased.CustomAntennaElement.step
Output RESP
Arguments Voltage response of antenna element. The output depends on
whether the antenna element supports polarization or not.
ha = phased.CustomAntennaElement;
ha.AzimuthAngles = -180:180;
ha.ElevationAngles = -90:90;
ha.RadiationPattern = mag2db(repmat(cosd(ha.ElevationAngles)',...
1,numel(ha.AzimuthAngles)));
1-331
phased.CustomAntennaElement.step
resp =
1-332
phased.CustomMicrophoneElement
Properties FrequencyVector
Operating frequency vector
Specify the frequencies in hertz where the frequency responses
of element are measured as a vector. The elements of the vector
must be increasing. The microphone element has no response
outside the specified frequency range.
Default: [0 1e20]
FrequencyResponse
Frequency responses
Specify the frequency responses in decibels measured at the
frequencies defined in the FrequencyVector property as a row
1-333
phased.CustomMicrophoneElement
vector. The length of the vector must equal the length of the
frequency vector specified in the FrequencyVector property.
Default: [0 0]
PolarPatternFrequencies
Polar pattern measuring frequencies
Specify the measuring frequencies in hertz of the polar patterns
as a row vector of length M. The measuring frequencies must be
within the frequency range specified in the FrequencyVector
property.
Default: 1e3
PolarPatternAngles
Polar pattern measuring angles
Specify the measuring angles in degrees of the polar patterns
as a row vector of length N. The angles are measured from the
central pickup axis of the microphone, and must be between –180
and 180, inclusive.
Default: [-180:180]
PolarPattern
Polar pattern
Specify the polar patterns of the microphone element as an
M-by-N matrix. M is the number of measuring frequencies
specified in the PolarPatternFrequencies property. N is the
number of measuring angles specified in the PolarPatternAngles
property. Each row of the matrix represents the magnitude of
the polar pattern (in decibels) measured at the corresponding
frequency specified in the PolarPatternFrequencies property
and corresponding angles specified in the PolarPatternAngles
property. The pattern is assumed to be measured in the azimuth
1-334
phased.CustomMicrophoneElement
plane where the elevation angle is 0 and where the central pickup
axis is assumed to be 0 degrees azimuth and 0 degrees elevation.
The polar pattern is assumed to be symmetric around the central
axis and therefore the microphone’s response pattern in 3-D space
can be constructed from the polar pattern.
h = phased.CustomMicrophoneElement;
h.PolarPatternFrequencies = [500 1000];
h.PolarPattern = mag2db([...
1-335
phased.CustomMicrophoneElement
0.5+0.5*cosd(h.PolarPatternAngles);...
0.6+0.4*cosd(h.PolarPatternAngles)]);
resp = step(h,[500 1500 2000],[0 0;40 50]');
plotResponse(h,500,'RespCut','Az','Format','Polar');
1-336
phased.CustomMicrophoneElement
1-337
phased.CustomMicrophoneElement.clone
Syntax C = clone(H)
1-338
phased.CustomMicrophoneElement.getNumInputs
Syntax N = getNumInputs(H)
1-339
phased.CustomMicrophoneElement.getNumOutputs
Syntax N = getNumOutputs(H)
1-340
phased.CustomMicrophoneElement.isLocked
Syntax TF = isLocked(H)
1-341
phased.CustomMicrophoneElement.isPolarizationCapable
h = phased.CustomMicrophoneElement;
isPolarizationCapable(h)
ans =
The returned value false (0) shows that the custom microphone
element does not support polarization.
1-342
phased.CustomMicrophoneElement.plotResponse
Syntax plotResponse(H,FREQ)
plotResponse(H,FREQ,Name,Value)
hPlot = plotResponse( ___ )
Input H
Arguments Element System object
FREQ
Operating frequency in Hertz specified as a scalar or 1–by-K
row vector. FREQ must lie within the range specified by the
FrequencyVector property of H. If you set the 'RespCut' property
of H to '3D', FREQ must be a scalar. When FREQ is a row vector,
plotResponse draws multiple frequency responses on the same
axes.
’CutAngle’
1-343
phased.CustomMicrophoneElement.plotResponse
Default: 0
’Format’
Format of the plot, using one of 'Line', 'Polar', or 'UV'. If you
set Format to 'UV', FREQ must be a scalar.
Default: 'Line'
’NormalizeResponse’
Set this value to true to normalize the response pattern. Set this
value to false to plot the response pattern without normalizing
it. This parameter is not applicable when you set the Unit
parameter value to 'dbi'.
Default: true
’OverlayFreq’
Set this value to true to overlay pattern cuts in a 2-D line plot.
Set this value to false to plot pattern cuts against frequency in a
3-D waterfall plot. If this value is false, FREQ must be a vector
with at least two entries.
This parameter applies only when Format is not 'Polar' and
RespCut is not '3D'.
Default: true
’Polarization’
1-344
phased.CustomMicrophoneElement.plotResponse
Default: 'None'
’RespCut’
Cut of the response. Valid values depend on Format, as follows:
1-345
phased.CustomMicrophoneElement.plotResponse
Default: 'db'
’AzimuthAngles’
Azimuth angles for plotting element response, specified as a row
vector. The AzimuthAngles parameter sets the display range and
resolution of azimuth angles for visualizing the radiation pattern.
This parameter is allowed only when the RespCut parameter is
set to 'Az' or '3D' and the Format parameter is set to 'Line' or
'Polar'. The values of azimuth angles should lie between –180°
and 180° and must be in nondecreasing order. When you set the
RespCut parameter to '3D', you can set the AzimuthAngles and
ElevationAngles parameters simultaneously.
Default: [-180:180]
’ElevationAngles’
Elevation angles for plotting element response, specified as a row
vector. The ElevationAngles parameter sets the display range
and resolution of elevation angles for visualizing the radiation
pattern. This parameter is allowed only when the RespCut
parameter is set to 'El' or '3D' and the Format parameter
is set to 'Line' or 'Polar'. The values of elevation angles
should lie between –90° and 90° and must be in nondecreasing
order. When you set the RespCut parameter to '3D', you can
set the ElevationAngles and AzimuthAngles parameters
simultaneously.
1-346
phased.CustomMicrophoneElement.plotResponse
Default: [-90:90]
’UGrid’
U coordinate values for plotting element response, specified as
a row vector. The UGrid parameter sets the display range and
resolution of the U coordinates for visualizing the radiation
pattern in U/V space. This parameter is allowed only when the
Format parameter is set to 'UV' and the RespCut parameter is
set to 'U' or '3D'. The values of UGrid should be between –1 and
1 and should be specified in nondecreasing order. You can set the
UGrid and VGrid parameters simultaneously.
Default: [-1:0.01:1]
’VGrid’
V coordinate values for plotting element response, specified
as a row vector. The VGrid parameter sets the display range
and resolution of the V coordinates for visualizing the radiation
pattern in U/V space. This parameter is allowed only when the
Format parameter is set to 'UV' and the RespCut parameter is
set to '3D'. The values of VGrid should be between –1 and 1 and
should be specified in nondecreasing order. You can set the VGrid
and UGrid parameters simultaneously.
Default: [-1:0.01:1]
1-347
phased.CustomMicrophoneElement.plotResponse
fc = 500;
plotResponse(h,[fc 2*fc],'RespCut','Az','Format','Polar');
Plot the directivity as a line plot for the same two frequencies.
plotResponse(h,[fc 2*fc],'RespCut','Az','Format','Line','Unit','dbi');
1-348
phased.CustomMicrophoneElement.plotResponse
h = phased.CustomMicrophoneElement;
h.PolarPatternFrequencies = [500 1000];
1-349
phased.CustomMicrophoneElement.plotResponse
h.PolarPattern = mag2db([...
0.5+0.5*cosd(h.PolarPatternAngles);...
0.6+0.4*cosd(h.PolarPatternAngles)]);
fc = 500;
plotResponse(h,fc,'Format','UV');
1-350
phased.CustomMicrophoneElement.plotResponse
h = phased.CustomMicrophoneElement;
h.PolarPatternFrequencies = [500 1000];
h.PolarPattern = mag2db([...
0.5+0.5*cosd(h.PolarPatternAngles);...
0.6+0.4*cosd(h.PolarPatternAngles)]);
fc = 500;
plotResponse(h,fc,'Format','polar','RespCut','3D',...
'Unit','mag','AzimuthAngles',[-40:0.1:40],...
'ElevationAngles',[-40:0.1:40]);
1-351
phased.CustomMicrophoneElement.plotResponse
1-352
phased.CustomMicrophoneElement.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-353
phased.CustomMicrophoneElement.step
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Input H
Arguments Microphone object.
FREQ
Frequencies in hertz. FREQ is a row vector of length L.
ANG
Directions in degrees. ANG can be either a 2-by-M matrix or a
row vector of length M.
If ANG is a 2-by-M matrix, each column of the matrix specifies the
direction in the form [azimuth; elevation]. The azimuth angle
must be between –180 and 180 degrees, inclusive. The elevation
angle must be between –90 and 90 degrees, inclusive.
If ANG is a row vector of length M, each element specifies a
direction’s azimuth angle. In this case, the corresponding
elevation angle is assumed to be 0.
1-354
phased.CustomMicrophoneElement.step
Output RESP
Arguments Response of microphone. RESP is an M-by-L matrix that contains
the responses of the microphone element at the M angles specified
in ANG and the L frequencies specified in FREQ.
h = phased.CustomMicrophoneElement;
h.PolarPatternFrequencies = [500 1000];
h.PolarPattern = mag2db([...
0.5+0.5*cosd(h.PolarPatternAngles);...
0.6+0.4*cosd(h.PolarPatternAngles)]);
fc = 500; ang = [0 0;40 50]';
resp = step(h,fc,ang);
1-355
phased.DPCACanceller
Properties SensorArray
Handle to sensor array
Specify the sensor array as a handle. The sensor array must be
an array object in the phased package. The array cannot contain
subarrays.
PropagationSpeed
Signal propagation speed
Specify the propagation speed of the signal, in meters per second,
as a positive scalar.
1-356
phased.DPCACanceller
OperatingFrequency
System operating frequency
Specify the operating frequency of the system in hertz as a
positive scalar. The default value corresponds to 300 MHz.
Default: 3e8
PRF
Pulse repetition frequency
Specify the pulse repetition frequency (PRF) of the received signal
in hertz as a scalar.
Default: 1
DirectionSource
Source of receiving mainlobe direction
Specify whether the targeting direction for the STAP processor
comes from the Direction property of this object or from an
input argument in step. Values of this property are:
Default: 'Property'
Direction
Receiving mainlobe direction
1-357
phased.DPCACanceller
Default: [0; 0]
DopplerSource
Source of targeting Doppler
Specify whether the targeting Doppler for the STAP processor
comes from the Doppler property of this object or from an input
argument in step. Values of this property are:
Default: 'Property'
Doppler
Targeting Doppler frequency (hertz)
Specify the targeting Doppler of the STAP processor as a scalar.
This property applies when you set the DopplerSource property
to 'Property'.
Default: 0
WeightsOutputPort
Output processing weights
1-358
phased.DPCACanceller
Default: false
PreDopplerOutput
Output pre-Doppler result
Set this property to true to output the processing result before
applying the Doppler filtering. Set this property to false to
output the processing result after the Doppler filtering.
Default: false
Examples Process the data cube using a DPCA processor. The weights are
calculated for the 71st cell of a collected data cube. The look direction
is [0; 0] degrees and the Doppler is 12980 Hz.
1-359
phased.DPCACanceller
1-360
phased.DPCACanceller
1-361
phased.DPCACanceller
1-362
phased.DPCACanceller.clone
Syntax C = clone(H)
1-363
phased.DPCACanceller.getNumInputs
Syntax N = getNumInputs(H)
1-364
phased.DPCACanceller.getNumOutputs
Syntax N = getNumOutputs(H)
1-365
phased.DPCACanceller.isLocked
Syntax TF = isLocked(H)
Description TF = isLocked(H) returns the locked status, TF, for the DPCACanceller
System object.
The isLocked method returns a logical value that indicates whether
input attributes and nontunable properties for the object are locked. The
object performs an internal initialization the first time the step method
is executed. This initialization locks nontunable properties and input
specifications, such as dimensions, complexity, and data type of the
input data. After locking, the isLocked method returns a true value.
1-366
phased.DPCACanceller.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-367
phased.DPCACanceller.step
Syntax Y = step(H,X,CUTIDX)
Y = step(H,X,CUTIDX,ANG)
Y = step( ___ ,DOP)
[Y,W] = step( ___ )
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
1-368
phased.DPCACanceller.step
Input H
Arguments Pulse canceller object.
X
Input data. X must be a 3-dimensional M-by-N-by-P numeric
array whose dimensions are (range, channels, pulses).
CUTIDX
Range cell.
ANG
Receiving mainlobe direction. ANG must be a 2-by-1 vector in
the form [AzimuthAngle; ElevationAngle], in degrees. The
azimuth angle must be between –180 and 180. The elevation
angle must be between –90 and 90.
DOP
Targeting Doppler frequency in hertz. DOP must be a scalar.
Output Y
Arguments Result of applying pulse cancelling to the input data. The
meaning and dimensions of Y depend on the PreDopplerOutput
property of H:
1-369
phased.DPCACanceller.step
W
Processing weights the pulse canceller used to obtain the
pre-Doppler data. The dimensions of W depend on the
PreDopplerOutput property of H:
Examples Process the data cube using a DPCA processor. The weights are
calculated for the 71st cell of a collected data cube. The look direction
is [0; 0] degrees and the Doppler is 12980 Hz.
1-370
phased.ElementDelay
Description The ElementDelay object calculates the signal delay for elements in
an array.
To compute the signal delay across the array elements:
Properties SensorArray
Handle to sensor array used to calculate the delay
Specify the sensor array as a handle. The sensor array must be
an array object in the phased package. The array cannot contain
subarrays.
PropagationSpeed
Signal propagation speed
Specify the propagation speed of the signal, in meters per second,
as a positive scalar.
1-371
phased.ElementDelay
1-372
phased.ElementDelay.clone
Syntax C = clone(H)
1-373
phased.ElementDelay.getNumInputs
Syntax N = getNumInputs(H)
1-374
phased.ElementDelay.getNumOutputs
Syntax N = getNumOutputs(H)
1-375
phased.ElementDelay.isLocked
Syntax TF = isLocked(H)
Description TF = isLocked(H) returns the locked status, TF, for the ElementDelay
System object.
The isLocked method returns a logical value that indicates whether
input attributes and nontunable properties for the object are locked. The
object performs an internal initialization the first time the step method
is executed. This initialization locks nontunable properties and input
specifications, such as dimensions, complexity, and data type of the
input data. After locking, the isLocked method returns a true value.
1-376
phased.ElementDelay.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-377
phased.ElementDelay.step
Description TAU = step(H,ANG) returns the delay TAU of each element relative
to the array’s phase center for the signal incident directions specified
by ANG.
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Input H
Arguments Element delay object.
ANG
Signal incident directions in degrees. ANG can be either a 2-by-M
matrix or a row vector of length M.
If ANG is a 2-by-M matrix, each column of the matrix specifies the
direction in the form [azimuth; elevation]. The azimuth angle
must be between –180 and 180 degrees, inclusive. The elevation
angle must be between –90 and 90 degrees, inclusive.
If ANG is a row vector of length M, each element specifies a
direction’s azimuth angle. In this case, the corresponding
elevation angle is assumed to be 0.
1-378
phased.ElementDelay.step
Output TAU
Arguments Delay in seconds.TAU is an N-by-M matrix, where N is the number
of elements in the array. Each column of TAU contains the delays
of the array elements for the corresponding direction specified
in ANG.
1-379
phased.ESPRITEstimator
Properties SensorArray
Handle to sensor array
Specify the sensor array as a handle. The sensor array must be a
phased.ULA object.
PropagationSpeed
Signal propagation speed
Specify the propagation speed of the signal, in meters per second,
as a positive scalar.
1-380
phased.ESPRITEstimator
OperatingFrequency
System operating frequency
Specify the operating frequency of the system in hertz as a
positive scalar. The default value corresponds to 300 MHz.
Default: 3e8
ForwardBackwardAveraging
Perform forward-backward averaging
Set this property to true to use forward-backward averaging to
estimate the covariance matrix for sensor arrays with conjugate
symmetric array manifold.
Default: false
SpatialSmoothing
Spatial smoothing
Specify the number of averaging used by spatial smoothing to
estimate the covariance matrix as a nonnegative integer. Each
additional smoothing handles one extra coherent source, but
reduces the effective number of element by 1. The maximum
value of this property is M–2, where M is the number of sensors.
NumSignalsSource
Source of number of signals
Specify the source of the number of signals as one of 'Auto'
or 'Property'. If you set this property to 'Auto', the
number of signals is estimated by the method specified by the
NumSignalsMethod property.
1-381
phased.ESPRITEstimator
Default: 'Auto'
NumSignalsMethod
Method to estimate number of signals
Specify the method to estimate the number of signals as one of
'AIC' or 'MDL'. The 'AIC' uses the Akaike Information Criterion
and the 'MDL' uses Minimum Description Length criterion. This
property applies when you set the NumSignalsSource property
to 'Auto'.
Default: 'AIC'
NumSignals
Number of signals
Specify the number of signals as a positive integer scalar. This
property applies when you set the NumSignalsSource property
to 'Property'.
Default: 1
Method
Type of least squares method
Specify the least squares method used for ESPRIT as one of 'TLS'
or 'LS'. 'TLS' refers to total least squares and 'LS'refers to
least squares.
Default: 'TLS'
RowWeighting
Row weighting factor
Specify the row weighting factor for signal subspace eigenvectors
as a positive integer scalar. This property controls the weights
applied to the selection matrices. In most cases the higher value
1-382
phased.ESPRITEstimator
Default: 1
fs = 8000; t = (0:1/fs:1).';
x1 = cos(2*pi*t*300); x2 = cos(2*pi*t*400);
ha = phased.ULA('NumElements',10,'ElementSpacing',1);
ha.Element.FrequencyRange = [100e6 300e6];
fc = 150e6;
x = collectPlaneWave(ha,[x1 x2],[10 20;45 60]',fc);
rng default;
noise = 0.1/sqrt(2)*(randn(size(x))+1i*randn(size(x)));
hdoa = phased.ESPRITEstimator('SensorArray',ha,...
'OperatingFrequency',fc);
1-383
phased.ESPRITEstimator
doas = step(hdoa,x+noise);
az = broadside2az(sort(doas),[20 60])
1-384
phased.ESPRITEstimator.clone
Purpose Create ESPRIT DOA estimator object with same property values
Syntax C = clone(H)
1-385
phased.ESPRITEstimator.getNumInputs
Syntax N = getNumInputs(H)
1-386
phased.ESPRITEstimator.getNumOutputs
Syntax N = getNumOutputs(H)
1-387
phased.ESPRITEstimator.isLocked
Syntax TF = isLocked(H)
1-388
phased.ESPRITEstimator.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-389
phased.ESPRITEstimator.step
Description ANG = step(H,X) estimates the DOAs from X using the DOA estimator,
H. X is a matrix whose columns correspond to channels. ANG is a row
vector of the estimated broadside angles (in degrees).
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
fs = 8000; t = (0:1/fs:1).';
x1 = cos(2*pi*t*300); x2 = cos(2*pi*t*400);
ha = phased.ULA('NumElements',10,'ElementSpacing',1);
ha.Element.FrequencyRange = [100e6 300e6];
fc = 150e6;
x = collectPlaneWave(ha,[x1 x2],[10 20;45 60]',fc);
rng default;
noise = 0.1/sqrt(2)*(randn(size(x))+1i*randn(size(x)));
hdoa = phased.ESPRITEstimator('SensorArray',ha,...
'OperatingFrequency',fc);
doas = step(hdoa,x+noise);
az = broadside2az(sort(doas),[20 60])
1-390
phased.FMCWWaveform
Properties SampleRate
Sample rate
Specify the same rate, in hertz, as a positive scalar. The default
value of this property corresponds to 1 MHz.
The quantity (SampleRate .* SweepTime) is a scalar or vector
that must contain only integers.
Default: 1e6
SweepTime
Duration of each linear FM sweep
1-391
phased.FMCWWaveform
Default: 1e-4
SweepBandwidth
FM sweep bandwidth
Specify the bandwidth of the linear FM sweeping, in hertz,
as a row vector of positive, real numbers. The default value
corresponds to 100 kHz.
To implement a varying bandwidth, specify SweepBandwidth as
a nonscalar row vector. The waveform uses successive entries
of the vector as the sweep bandwidth for successive periods of
the waveform. If the last element of the SweepBandwidth vector
is reached, the process continues cyclically with the first entry
of the vector.
If SweepTime and SweepBandwidth are both nonscalar, they must
have the same length.
1-392
phased.FMCWWaveform
Default: 1e5
SweepDirection
FM sweep direction
Specify the direction of the linear FM sweep as one of 'Up' |
'Down' | 'Triangle'.
Default: 'Up'
SweepInterval
Location of FM sweep interval
If you set this property value to 'Positive', the waveform sweeps
in the interval between 0 and B, where B is the SweepBandwidth
property value. If you set this property value to 'Symmetric', the
waveform sweeps in the interval between –B/2 and B/2.
Default: 'Positive'
OutputFormat
Output signal format
Specify the format of the output signal as one of 'Sweeps'
or 'Samples'. When you set the OutputFormat property to
'Sweeps', the output of the step method is in the form of
multiple sweeps. In this case, the number of sweeps is the value
of the NumSweeps property. If the SweepDirection property is
'Triangle', each sweep is half a period.
When you set the OutputFormat property to 'Samples', the
output of the step method is in the form of multiple samples. In
this case, the number of samples is the value of the NumSamples
property.
Default: 'Sweeps'
1-393
phased.FMCWWaveform
NumSamples
Number of samples in output
Specify the number of samples in the output of the step method
as a positive integer. This property applies only when you set the
OutputFormat property to 'Samples'.
Default: 100
NumSweeps
Number of sweeps in output
Specify the number of sweeps in the output of the step method
as a positive integer. This property applies only when you set the
OutputFormat property to 'Sweeps'.
Default: 1
1-394
phased.FMCWWaveform
Frequency
T T Time
Upsweep
In each period of an upsweep, the waveform sweeps with a slope of B/T.
B is the sweep bandwidth, and T is the sweep time.
Frequency
T Time
Downsweep
In each period of a downsweep, the waveform sweeps with a slope of
–B/T. B is the sweep bandwidth, and T is the sweep time.
Frequency
T Time
1-395
phased.FMCWWaveform
hw = phased.FMCWWaveform('SweepBandwidth',1e5,...
'OutputFormat','Sweeps','NumSweeps',2);
plot(hw);
1-396
phased.FMCWWaveform
hw = phased.FMCWWaveform('SweepBandwidth',1e7,...
'SampleRate',2e7,'SweepDirection','Triangle',...
'NumSweeps',2);
x = step(hw);
spectrogram(x,32,16,32,hw.SampleRate,'yaxis');
1-397
phased.FMCWWaveform
References [1] Issakov, Vadim. Microwave Circuits for 24 GHz Automotive Radar
in Silicon-based Technologies. Berlin: Springer, 2010.
1-398
phased.FMCWWaveform.clone
Syntax C = clone(H)
1-399
phased.FMCWWaveform.getNumInputs
Syntax N = getNumInputs(H)
1-400
phased.FMCWWaveform.getNumOutputs
Syntax N = getNumOutputs(H)
1-401
phased.FMCWWaveform.isLocked
Syntax TF = isLocked(H)
Description TF = isLocked(H) returns the locked status, TF, for the FMCWWaveform
System object.
The isLocked method returns a logical value that indicates whether
input attributes and nontunable properties for the object are locked. The
object performs an internal initialization the first time the step method
is executed. This initialization locks nontunable properties and input
specifications, such as dimensions, complexity, and data type of the
input data. After locking, the isLocked method returns a true value.
1-402
phased.FMCWWaveform.plot
Syntax plot(Hwav)
plot(Hwav,Name,Value)
plot(Hwav,Name,Value,LineSpec)
h = plot( ___ )
Description plot(Hwav) plots the real part of the waveform specified by Hwav.
plot(Hwav,Name,Value) plots the waveform with additional options
specified by one or more Name,Value pair arguments.
plot(Hwav,Name,Value,LineSpec) specifies the same line color, line
style, or marker options as are available in the MATLAB plot function.
h = plot( ___ ) returns the line handle in the figure.
Input Hwav
Arguments Waveform object. This variable must be a scalar that represents a
single waveform object.
LineSpec
String that specifies the same line color, style, or marker options
as are available in the MATLAB plot function. If you specify a
PlotType value of 'complex', then LineSpec applies to both the
real and imaginary subplots.
Default: 'b'
’PlotType’
1-403
phased.FMCWWaveform.plot
Specifies whether the function plots the real part, imaginary part,
or both parts of the waveform. Valid values are 'real', 'imag',
and 'complex'.
Default: 'real'
’SweepIdx’
Index of the sweep to plot. This value must be a positive integer
scalar.
Default: 1
Output h
Arguments Handle to the line or lines in the figure. For a PlotType value of
'complex', h is a column vector. The first and second elements of
this vector are the handles to the lines in the real and imaginary
subplots, respectively.
hw = phased.FMCWWaveform('SweepBandwidth',1e5,...
'OutputFormat','Sweeps','NumSweeps',2);
plot(hw);
1-404
phased.FMCWWaveform.plot
1-405
phased.FMCWWaveform.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-406
phased.FMCWWaveform.reset
Syntax reset(H)
1-407
phased.FMCWWaveform.step
Syntax Y = step(H)
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Input H
Arguments FMCW waveform object.
Output Y
Arguments Column vector containing the waveform samples.
If H.OutputFormat is 'Samples', Y consists of H.NumSamples
samples.
If H.OutputFormat is 'Sweeps', Y consists of H.NumSweeps
sweeps. Also, if H.SweepDirection is 'Triangle', each sweep is
half a period.
hw = phased.FMCWWaveform('SweepBandwidth',1e7,...
'SampleRate',2e7,'SweepDirection','Triangle',...
1-408
phased.FMCWWaveform.step
'NumSweeps',2);
x = step(hw);
spectrogram(x,32,16,32,hw.SampleRate,'yaxis');
1-409
phased.FreeSpace
Properties PropagationSpeed
Signal propagation speed
Specify the wave propagation speed (in meters per second) in free
space as a scalar.
OperatingFrequency
Signal carrier frequency
A scalar containing the carrier frequency in hertz of the
narrowband signal. The default value of this property corresponds
to 300 MHz.
1-410
phased.FreeSpace
Default: 3e8
TwoWayPropagation
Perform two-way propagation
Set this property to true to perform round-trip propagation
between the origin and destination that you specify in the
step command. Set this property to false to perform one-way
propagation from the origin to the destination.
Default: false
SampleRate
Sample rate
A scalar containing the sample rate (in hertz). The algorithm uses
this value to determine the propagation delay in samples. The
default value of this property corresponds to 1 MHz.
Default: 1e6
1-411
phased.FreeSpace
henv = phased.FreeSpace('SampleRate',8e3);
y = step(henv,ones(10,1),[1000; 0; 0],[300; 200; 50],...
[0;0;0],[0;0;0]);
henv = phased.FreeSpace('SampleRate',8e3);
origin_pos = [1000; 0; 0];
dest_pos = [300; 200; 50];
origin_vel = [10; 0; 0];
dest_vel = [0; 15; 0];
y = step(henv,ones(10,1),origin_pos,dest_pos,...
origin_vel,dest_vel);
Algorithms When the origin and destination are stationary relative to each other,
the output Y of step can be written as Y(t)=x(t–tau)/L. In this case, tau
is the delay and L is the propagation loss. The delay tau is R/c, where
R is the propagation distance and c is the propagation speed. The free
space path loss is given by
1-412
phased.FreeSpace
(4 R)2
L
2
where λ is the signal wavelength.
When there is relative motion between the origin and destination, the
processing also introduces a frequency shift. This shift corresponds to
the Doppler shift between the origin and destination. The frequency
shift is v/λ for one-way propagation and 2v/λ for two-way propagation.
In this case, v is the relative speed from the origin to the destination.
For further details, see [2].
1-413
phased.FreeSpace.clone
Syntax C = clone(H)
1-414
phased.FreeSpace.getNumInputs
Syntax N = getNumInputs(H)
1-415
phased.FreeSpace.getNumOutputs
Syntax N = getNumOutputs(H)
1-416
phased.FreeSpace.isLocked
Syntax TF = isLocked(H)
Description TF = isLocked(H) returns the locked status, TF, for the FreeSpace
System object.
The isLocked method returns a logical value that indicates whether
input attributes and nontunable properties for the object are locked. The
object performs an internal initialization the first time the step method
is executed. This initialization locks nontunable properties and input
specifications, such as dimensions, complexity, and data type of the
input data. After locking, the isLocked method returns a true value.
1-417
phased.FreeSpace.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-418
phased.FreeSpace.reset
Syntax reset(H)
1-419
phased.FreeSpace.step
Syntax Y = step(H,X,origin_pos,dest_pos,origin_vel,dest_vel)
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Input H
Arguments Free space object.
X
Narrowband signal.
The form of X depends upon whether polarization is simulated or
not. If polarization is not simulated, X is a column vector.
If polarization is simulated X is a MATLAB struct containing two
alternate ways of representing the polarized signal:
1-420
phased.FreeSpace.step
origin_pos
Starting location of signal, specified as a 3-by-1 column vector in
the form [x; y; z] (in meters).
dest_pos
Ending location of signal, specified as a 3-by-1 column vector in
the form [x; y; z] (in meters).
origin_vel
Velocity of signal origin, specified as a 3-by-1 column vector in the
form [Vx; Vy; Vz] (in meters/second).
dest_vel
Velocity of the signal destination, specified as a 3-by-1 column
vector in the form [Vx; Vy; Vz] (in meters/second).
Output Y
Arguments Propagated signal, returned as a column vector or MATLAB
struct, depending upon the form of the input argument X. If X is
a column vector, Y is also a column vector with same dimensions.
If X is a struct, Y is also a struct with the same fields. Each field
in Y contains the resulting signal of the corresponding field in X.
The output Y is the signal arriving at the propagation destination
within the current time frame, which is the time occupied by
the current input. Whenever it takes longer than the current
time frame for the signal to propagate from the origin to the
destination, the output contains no contribution from the input of
the current time frame.
1-421
phased.FreeSpace.step
henv = phased.FreeSpace('SampleRate',8e3);
y = step(henv,ones(10,1),[1000; 0; 0],[300; 200; 50],...
[0;0;0],[0;0;0]);
henv = phased.FreeSpace('SampleRate',8e3);
origin_pos = [1000; 0; 0];
dest_pos = [300; 200; 50];
origin_vel = [10; 0; 0];
dest_vel = [0; 15; 0];
y = step(henv,ones(10,1),origin_pos,dest_pos,...
origin_vel,dest_vel);
Algorithms When the origin and destination are stationary relative to each other,
the output Y of step can be written as Y(t)=x(t–tau)/L. In this case, tau
is the delay and L is the propagation loss. The delay tau is R/c, where
R is the propagation distance and c is the propagation speed. The free
space path loss is given by
(4 R)2
L
2
where λ is the signal wavelength.
1-422
phased.FreeSpace.step
When there is relative motion between the origin and destination, the
processing also introduces a frequency shift. This shift corresponds to
the Doppler shift between the origin and destination. The frequency
shift is v/λ for one-way propagation and 2v/λ for two-way propagation.
In this case, v is the relative speed from the origin to the destination.
For further details, see [2].
1-423
phased.FrostBeamformer
Properties SensorArray
Handle to sensor array
Specify the sensor array as a handle. The sensor array must be
an array object in the phased package. The array cannot contain
subarrays.
PropagationSpeed
Signal propagation speed
Specify the propagation speed of the signal, in meters per second,
as a positive scalar.
1-424
phased.FrostBeamformer
SampleRate
Signal sampling rate
Specify the signal sampling rate (in hertz) as a positive scalar.
Default: 1e6
FilterLength
FIR filter length
Specify the length of FIR filter behind each sensor element in
the array as a positive integer.
Default: 2
DiagonalLoadingFactor
Diagonal loading factor
Specify the diagonal loading factor as a positive scalar. Diagonal
loading is a technique used to achieve robust beamforming
performance, especially when the sample support is small. This
property is tunable.
Default: 0
TrainingInputPort
Add input to specify training data
To specify additional training data, set this property to true and
use the corresponding input argument when you invoke step.
To use the input signal as the training data, set this property to
false.
Default: false
DirectionSource
1-425
phased.FrostBeamformer
Default: 'Property'
Direction
Beamforming direction
Specify the beamforming direction of the beamformer as a column
vector of length 2. The direction is specified in the format of
[AzimuthAngle; ElevationAngle] (in degrees). The azimuth
angle should be between –180 and 180. The elevation angle
should be between –90 and 90. This property applies when you
set the DirectionSource property to 'Property'.
Default: [0;0]
WeightsOutputPort
Output beamforming weights
To obtain the weights used in the beamformer, set this property to
true and use the corresponding output argument when invoking
step. If you do not want to obtain the weights, set this property to
false.
Default: false
1-426
phased.FrostBeamformer
% Signal simulation
ha = phased.ULA('NumElements',11,'ElementSpacing',0.04);
ha.Element.FrequencyRange = [20 20000];
fs = 8e3; t = 0:1/fs:0.3;
x = chirp(t,0,1,500);
c = 340; % Wave propagation speed (m/s)
hc = phased.WidebandCollector('Sensor',ha,...
'PropagationSpeed',c,'SampleRate',fs,...
'ModulatedInput',false);
incidentAngle = [-50; 30];
x = step(hc,x.',incidentAngle);
noise = 0.2*randn(size(x));
rx = x+noise;
% Beamforming
hbf = phased.FrostBeamformer('SensorArray',ha,...
'PropagationSpeed',c,'SampleRate',fs,...
'Direction',incidentAngle,'FilterLength',5);
1-427
phased.FrostBeamformer
y = step(hbf,rx);
% Plot
plot(t,rx(:,6),'r:',t,y);
xlabel('Time'); ylabel('Amplitude');
legend('Original','Beamformed');
1-428
phased.FrostBeamformer
References [1] Frost, O. “An Algorithm For Linearly Constrained Adaptive Array
Processing”, Proceedings of the IEEE. Vol. 60, Number 8, August, 1972,
pp. 926–935.
1-429
phased.FrostBeamformer.clone
Syntax C = clone(H)
1-430
phased.FrostBeamformer.getNumInputs
Syntax N = getNumInputs(H)
1-431
phased.FrostBeamformer.getNumOutputs
Syntax N = getNumOutputs(H)
1-432
phased.FrostBeamformer.isLocked
Syntax TF = isLocked(H)
1-433
phased.FrostBeamformer.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-434
phased.FrostBeamformer.step
Syntax Y = step(H,X)
Y = step(H,X,XT)
Y = step(H,X,ANG)
Y = step(H,X,XT,ANG)
[Y,W] = step( ___ )
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Input H
Arguments Beamformer object.
1-435
phased.FrostBeamformer.step
X
Input signal, specified as an M-by-N matrix. M must be larger
than the FIR filter length specified in the FilterLength property.
N is the number of elements in the sensor array.
XT
Training samples, specified as an M-by-N matrix. M and N are
the same as the dimensions of X.
ANG
Beamforming directions, specified as a length-2 column vector.
The vector has the form [AzimuthAngle; ElevationAngle], in
degrees. The azimuth angle must be between –180 and 180
degrees, and the elevation angle must be between –90 and 90
degrees.
Output Y
Arguments Beamformed output. Y is a column vector of length M, where M is
the number of rows in X.
W
Beamforming weights. W is a column vector of
length L, where L is the degrees of freedom of the
beamformer. For a Frost beamformer, H, L is given by
getNumElements(H.SensorArray)*H.FilterLength.
% Signal simulation
ha = phased.ULA('NumElements',11,'ElementSpacing',0.04);
ha.Element.FrequencyRange = [20 20000];
fs = 8e3; t = 0:1/fs:0.3;
x = chirp(t,0,1,500);
c = 340; % Wave propagation speed (m/s)
hc = phased.WidebandCollector('Sensor',ha,...
1-436
phased.FrostBeamformer.step
'PropagationSpeed',c,'SampleRate',fs,...
'ModulatedInput',false);
incidentAngle = [-50; 30];
x = step(hc,x.',incidentAngle);
noise = 0.2*randn(size(x));
rx = x+noise;
% Beamforming
hbf = phased.FrostBeamformer('SensorArray',ha,...
'PropagationSpeed',c,'SampleRate',fs,...
'Direction',incidentAngle,'FilterLength',5);
y = step(hbf,rx);
References [1] Frost, O. “An Algorithm For Linearly Constrained Adaptive Array
Processing”, Proceedings of the IEEE. Vol. 60, Number 8, August, 1972,
pp. 926–935.
1-437
phased.gpu.ConstantGammaClutter
2 Call step to simulate the clutter return for your system according to
the properties of phased.gpu.ConstantGammaClutter. The behavior
of step is specific to each object in the toolbox.
1-438
phased.gpu.ConstantGammaClutter
Properties Sensor
Handle of sensor
Specify the sensor as an antenna element object or as an array
object whose Element property value is an antenna element
object. If the sensor is an array, it can contain subarrays.
PropagationSpeed
Signal propagation speed
Specify the propagation speed of the signal, in meters per second,
as a positive scalar.
OperatingFrequency
System operating frequency
Specify the operating frequency of the system in hertz as a
positive scalar. The default value corresponds to 300 MHz.
Default: 3e8
1-439
phased.gpu.ConstantGammaClutter
SampleRate
Sample rate
Specify the sample rate, in hertz, as a positive scalar. The default
value corresponds to 1 MHz.
Default: 1e6
PRF
Pulse repetition frequency
Specify the pulse repetition frequency in hertz as a positive scalar
or a row vector. The default value of this property corresponds to
10 kHz. When PRF is a vector, it represents a staggered PRF. In
this case, the output pulses use elements in the vector as their
PRFs, one after another, in a cycle.
Default: 1e4
Gamma
Terrain gamma value
Default: 0
EarthModel
Earth model
Specify the earth model used in clutter simulation as one of |
'Flat' | 'Curved' |. When you set this property to 'Flat', the
earth is assumed to be a flat plane. When you set this property to
'Curved', the earth is assumed to be a sphere.
Default: 'Flat'
1-440
phased.gpu.ConstantGammaClutter
PlatformHeight
Radar platform height from surface
Specify the radar platform height (in meters) measured upward
from the surface as a nonnegative scalar.
Default: 300
PlatformSpeed
Radar platform speed
Specify the radar platform’s speed as a nonnegative scalar in
meters per second.
Default: 300
PlatformDirection
Direction of radar platform motion
Specify the direction of radar platform motion as a 2-by-1 vector
in the form [AzimuthAngle; ElevationAngle] in degrees. The
default value of this property indicates that the platform moves
perpendicular to the radar antenna array’s broadside.
Both azimuth and elevation angle are measured in the local
coordinate system of the radar antenna or antenna array.
Azimuth angle must be between –180 and 180 degrees. Elevation
angle must be between –90 and 90 degrees.
Default: [90;0]
BroadsideDepressionAngle
Depression angle of array broadside
Specify the depression angle in degrees of the broadside of the
radar antenna array. This value is a scalar. The broadside is
1-441
phased.gpu.ConstantGammaClutter
Default: 0
MaximumRange
Maximum range for clutter simulation
Specify the maximum range in meters for the clutter simulation
as a positive scalar. The maximum range must be greater than
the value specified in the PlatformHeight property.
Default: 5000
AzimuthCoverage
Azimuth coverage for clutter simulation
Specify the azimuth coverage in degrees as a positive scalar. The
clutter simulation covers a region having the specified azimuth
span, symmetric to 0 degrees azimuth. Typically, all clutter
patches have their azimuth centers within the region, but the
PatchAzimuthWidth value can cause some patches to extend
beyond the region.
Default: 60
PatchAzimuthWidth
Azimuth span of each clutter patch
Specify the azimuth span of each clutter patch in degrees as a
positive scalar.
Default: 1
TransmitSignalInputPort
Add input to specify transmit signal
1-442
phased.gpu.ConstantGammaClutter
Default: false
TransmitERP
Effective transmitted power
Specify the transmitted effective radiated power (ERP) of the
radar system in watts as a positive scalar. This property applies
only when you set the TransmitSignalInputPort property to
false.
Default: 5000
CoherenceTime
Clutter coherence time
Specify the coherence time in seconds for the clutter simulation
as a positive scalar. After the coherence time elapses, the step
method updates the random numbers it uses for the clutter
simulation at the next pulse. A value of inf means the random
numbers are never updated.
Default: inf
OutputFormat
Output signal format
Specify the format of the output signal as one of | 'Pulses'
| 'Samples' |. When you set the OutputFormat property to
'Pulses', the output of the step method is in the form of multiple
pulses. In this case, the number of pulses is the value of the
NumPulses property.
1-443
phased.gpu.ConstantGammaClutter
Default: 'Pulses'
NumPulses
Number of pulses in output
Specify the number of pulses in the output of the step method as
a positive integer. This property applies only when you set the
OutputFormat property to 'Pulses'.
Default: 1
NumSamples
Number of samples in output
Specify the number of samples in the output of the step method
as a positive integer. Typically, you use the number of samples
in one pulse. This property applies only when you set the
OutputFormat property to 'Samples'.
Default: 100
SeedSource
Source of seed for random number generator
Specify how the object generates random numbers. Values of this
property are:
1-444
phased.gpu.ConstantGammaClutter
Default: 'Auto'
Seed
Seed for random number generator
Specify the seed for the random number generator as a scalar
integer between 0 and 232–1. This property applies when you set
the SeedSource property to 'Property'.
Default: 0
1-445
phased.gpu.ConstantGammaClutter
Nele = 4;
c = 3e8; fc = 3e8; lambda = c/fc;
ha = phased.ULA('NumElements',Nele,'ElementSpacing',lambda/2);
1-446
phased.gpu.ConstantGammaClutter
Plot the angle-Doppler response of the clutter at the 20th range bin.
hresp = phased.AngleDopplerResponse('SensorArray',ha,...
'OperatingFrequency',fc,'PropagationSpeed',c,'PRF',prf);
plotResponse(hresp,shiftdim(csig(20,:,:)),...
'NormalizeDoppler',true);
1-447
phased.gpu.ConstantGammaClutter
1-448
phased.gpu.ConstantGammaClutter
input argument. In this case, you do not record the effective transmitted
power of the signal in a property.
Nele = 4;
c = 3e8; fc = 3e8; lambda = c/fc;
ha = phased.ULA('NumElements',Nele,'ElementSpacing',lambda/2);
Simulate the clutter return for 10 pulses. At each step, pass the
transmit signal as an input argument. The software automatically
computes the effective transmitted power of the signal. The transmit
signal is a rectangular waveform with a pulse width of 2 µs.
1-449
phased.gpu.ConstantGammaClutter
tpower = 5000;
pw = 2e-6;
X = tpower*ones(floor(pw*fs),1);
Nsamp = fs/prf; Npulse = 10;
csig = zeros(Nsamp,Nele,Npulse);
for m = 1:Npulse
csig(:,:,m) = step(hclutter,X);
end
Plot the angle-Doppler response of the clutter at the 20th range bin.
hresp = phased.AngleDopplerResponse('SensorArray',ha,...
'OperatingFrequency',fc,'PropagationSpeed',c,'PRF',prf);
plotResponse(hresp,shiftdim(csig(20,:,:)),...
'NormalizeDoppler',true);
1-450
phased.gpu.ConstantGammaClutter
1-451
phased.gpu.ConstantGammaClutter
Define a seed value to use for the GPU stream and the CPU stream.
seed = 7151;
Create a CPU random number stream that uses the combined multiple
recursive generator and the chosen seed value. Then, use this stream
as the global stream for random number generation on the CPU.
stream_cpu = RandStream('CombRecursive','Seed',seed,...
'NormalTransform','Inversion');
RandStream.setGlobalStream(stream_cpu);
Create a GPU random number stream that uses the combined multiple
recursive generator and the same seed value. Then, use this stream as
the global stream for random number generation on the GPU.
stream_gpu = parallel.gpu.RandStream('CombRecursive','Seed',seed);
parallel.gpu.RandStream.setGlobalStream(stream_gpu);
Generate clutter on both the CPU and the GPU, using the global stream
on each platform.
h_cpu = phased.ConstantGammaClutter('SeedSource','Auto');
h_gpu = phased.gpu.ConstantGammaClutter('SeedSource','Auto');
y_cpu = step(h_cpu);
y_gpu = step(h_gpu);
Check that the element-wise differences between the CPU and GPU
results are negligible.
maxdiff =
1-452
phased.gpu.ConstantGammaClutter
2.9092e-18
ans =
2.2204e-16
References [1] Barton, David. “Land Clutter Models for Radar Design and
Analysis,” Proceedings of the IEEE. Vol. 73, Number 2, February, 1985,
pp. 198–204.
[2] Long, Maurice W. Radar Reflectivity of Land and Sea, 3rd Ed.
Boston: Artech House, 2001.
[3] Nathanson, Fred E., J. Patrick Reilly, and Marvin N. Cohen. Radar
Design Principles, 2nd Ed. Mendham, NJ: SciTech Publishing, 1999.
1-453
phased.gpu.ConstantGammaClutter.clone
Purpose Create GPU constant gamma clutter simulation object with same
property values
Syntax C = clone(H)
1-454
phased.gpu.ConstantGammaClutter.getNumInputs
Syntax N = getNumInputs(H)
1-455
phased.gpu.ConstantGammaClutter.getNumOutputs
Syntax N = getNumOutputs(H)
1-456
phased.gpu.ConstantGammaClutter.isLocked
Syntax TF = isLocked(H)
1-457
phased.gpu.ConstantGammaClutter.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-458
phased.gpu.ConstantGammaClutter.reset
Purpose Reset random numbers and time count for clutter simulation
Syntax reset(H)
1-459
phased.gpu.ConstantGammaClutter.step
Syntax Y = step(H)
Y = step(H,X)
Description Y = step(H) computes the collected clutter return at each sensor. This
syntax is available when you set the TransmitSignalInputPort
property to false.
Y = step(H,X) specifies the transmit signal in X. Transmit signal
refers to the output of the transmitter while it is on during a given pulse.
This syntax is available when you set the TransmitSignalInputPort
property to true.
Input H
Arguments Constant gamma clutter object.
X
Transmit signal, specified as a column vector of data type double.
The System object handles data transfer between the CPU and
GPU.
Output Y
Arguments Collected clutter return at each sensor. The data types of X and
Y are the same. Y has dimensions N-by-M matrix. M is the
number of subarrays in the radar system if H.Sensor contains
subarrays, or the number of sensors, otherwise. When you set
the OutputFormat property to 'Samples', N is specified in the
NumSamples property. When you set the OutputFormat property
to 'Pulses', N is the total number of samples in the next L
pulses. In this case, L is specified in the NumPulses property.
1-460
phased.gpu.ConstantGammaClutter.step
Nele = 4;
c = 3e8; fc = 3e8; lambda = c/fc;
ha = phased.ULA('NumElements',Nele,'ElementSpacing',lambda/2);
1-461
phased.gpu.ConstantGammaClutter.step
Plot the angle-Doppler response of the clutter at the 20th range bin.
hresp = phased.AngleDopplerResponse('SensorArray',ha,...
'OperatingFrequency',fc,'PropagationSpeed',c,'PRF',prf);
plotResponse(hresp,shiftdim(csig(20,:,:)),...
'NormalizeDoppler',true);
1-462
phased.gpu.ConstantGammaClutter.step
1-463
phased.gpu.ConstantGammaClutter.step
input argument. In this case, you do not record the effective transmitted
power of the signal in a property.
Nele = 4;
c = 3e8; fc = 3e8; lambda = c/fc;
ha = phased.ULA('NumElements',Nele,'ElementSpacing',lambda/2);
Simulate the clutter return for 10 pulses. At each step, pass the
transmit signal as an input argument. The software automatically
computes the effective transmitted power of the signal. The transmit
signal is a rectangular waveform with a pulse width of 2 µs.
1-464
phased.gpu.ConstantGammaClutter.step
tpower = 5000;
pw = 2e-6;
X = tpower*ones(floor(pw*fs),1);
Nsamp = fs/prf; Npulse = 10;
csig = zeros(Nsamp,Nele,Npulse);
for m = 1:Npulse
csig(:,:,m) = step(hclutter,X);
end
Plot the angle-Doppler response of the clutter at the 20th range bin.
hresp = phased.AngleDopplerResponse('SensorArray',ha,...
'OperatingFrequency',fc,'PropagationSpeed',c,'PRF',prf);
plotResponse(hresp,shiftdim(csig(20,:,:)),...
'NormalizeDoppler',true);
1-465
phased.gpu.ConstantGammaClutter.step
1-466
phased.gpu.ConstantGammaClutter.step
1-467
phased.HeterogeneousConformalArray
Properties ElementSet
Set of elements used in the array
Specify the set of different elements used in the sensor array as a
row MATLAB cell array. Each member of the cell array contains
an element object in the phased package. Elements specified
in the ElementSet property must be either all antennas or all
microphones. In addition, all specified antenna elements should
1-468
phased.HeterogeneousConformalArray
ElementIndices
Elements location assignment
This property specifies the mapping of elements in the array.
The property assigns elements to their locations in the array
using the indices into the ElementSet property. The value of
ElementIndices must be an length-N row vector. In this vector,
N represents the number of elements in the array. The values in
the vector specified by ElementIndices should be less than or
equal to the number of entries in the ElementSet property.
Default: [1 2 2 1]
ElementPosition
Element positions
ElementPosition specifies the positions of the elements in
the conformal array. The value of the ElementPosition
property must be a 3-by-N matrix, where N indicates the
number of elements in the conformal array. Each column of
ElementPosition represents the position, in the form [x; y; z]
(in meters), of a single element in the array’s local coordinate
system. The local coordinate system has its origin at an arbitrary
point.
Default: [0; 0; 0]
ElementNormal
Element normal directions
1-469
phased.HeterogeneousConformalArray
Default: [0; 0]
Taper
Element taper or weighting
Element tapering specified as a complex-valued scalar or a
complex-valued 1-by-N row vector. N is the number of elements
in the array as determined by the size of the ElementIndices
property. Tapers, also known as weights, are applied to each
sensor element in the sensor array and modify both the amplitude
and phase of the received data. If 'Taper' is a scalar, the same
weights are applied to each element. If 'Taper' is a vector, each
weight is applied to the corresponding sensor element.
Default: 1
1-470
phased.HeterogeneousConformalArray
sElement1 = phased.CosineAntennaElement('CosinePower',1.6);
sElement2 = phased.CosineAntennaElement('CosinePower',1.5);
sArray = phased.HeterogeneousConformalArray(...
1-471
phased.HeterogeneousConformalArray
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 1 1 1 2 2 2 2]);
N = 8; azang = (0:N-1)*360/N-180;
sArray.ElementPosition = ...
[cosd(azang);sind(azang);zeros(1,N)];
sArray.ElementNormal = [azang;zeros(1,N)];
c = physconst('LightSpeed');
fc = 1e9;
plotResponse(sArray,fc,c,'RespCut','El','Format','Polar');
1-472
phased.HeterogeneousConformalArray
References [1] Josefsson, L. and P. Persson. Conformal Array Antenna Theory and
Design. Piscataway, NJ: IEEE Press, 2006.
1-473
phased.HeterogeneousConformalArray
1-474
phased.HeterogeneousConformalArray.clone
Syntax C = clone(H)
1-475
phased.HeterogeneousConformalArray.collectPlaneWave
Syntax Y = collectPlaneWave(H,X,ANG)
Y = collectPlaneWave(H,X,ANG,FREQ)
Y = collectPlaneWave(H,X,ANG,FREQ,C)
Input H
Arguments Array object.
X
Incoming signals, specified as an M-column matrix. Each column
of X represents an individual incoming signal.
ANG
Directions from which incoming signals arrive, in degrees. ANG
can be either a 2-by-M matrix or a row vector of length M.
If ANG is a 2-by-M matrix, each column specifies the direction of
arrival of the corresponding signal in X. Each column of ANG is in
the form [azimuth; elevation]. The azimuth angle must be
between –180 and 180 degrees, inclusive. The elevation angle
must be between –90 and 90 degrees, inclusive.
If ANG is a row vector of length M, each entry in ANG specifies the
azimuth angle. In this case, the corresponding elevation angle
is assumed to be 0.
FREQ
1-476
phased.HeterogeneousConformalArray.collectPlaneWave
Default: 3e8
C
Propagation speed of signal in meters per second.
Output Y
Arguments Received signals. Y is an N-column matrix, where N is the number
of elements in the array H. Each column of Y is the received signal
at the corresponding array element, with all incoming signals
combined.
sElement1 = phased.CosineAntennaElement('CosinePower',1.5);
sElement2 = phased.CosineAntennaElement('CosinePower',1.8);
N = 8; azang = (0:N-1)*360/N-180;
sArray = phased.HeterogeneousConformalArray(...
'ElementPosition',...
[cosd(azang);sind(azang);zeros(1,N)],...
'ElementNormal',[azang;zeros(1,N)],...
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 1 1 1 2 2 2 2]);
c = physconst('LightSpeed');
y = collectPlaneWave(sArray,randn(4,2),[10 30],c);
disp(y(:,1:2));
1-477
phased.HeterogeneousConformalArray.collectPlaneWave
1-478
phased.HeterogeneousConformalArray.getElementPositio
Examples Construct a default conformal array and obtain the element positions.
sElement1 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100e6 1e9],...
'AxisDirection','Z');
sElement2 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100e6 1e9],...
'AxisDirection','Y');
N = 8; azang = (0:N-1)*360/N-180;
sArray = phased.HeterogeneousConformalArray(...
'ElementPosition',...
[cosd(azang);sind(azang);zeros(1,N)],...
'ElementNormal',[azang;zeros(1,N)],...
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 1 1 1 2 2 2 2]);
pos = getElementPosition(sArray);
disp(pos(:,1:4));
1-479
phased.HeterogeneousConformalArray.getElementPosition
0 0 0 0
1-480
phased.HeterogeneousConformalArray.getNumElements
Syntax N = getNumElements(H)
sElement1 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100e6 1e9],...
'AxisDirection','Z');
sElement2 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100e6 1e9],...
'AxisDirection','Y');
N = 8; azang = (0:N-1)*360/N-180;
sArray = phased.HeterogeneousConformalArray(...
'ElementPosition',...
[cosd(azang);sind(azang);zeros(1,N)],...
'ElementNormal',[azang;zeros(1,N)],...
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 1 1 1 2 2 2 2]);
N = getNumElements(sArray)
N =
1-481
phased.HeterogeneousConformalArray.getNumInputs
Syntax N = getNumInputs(H)
1-482
phased.HeterogeneousConformalArray.getNumOutputs
Syntax N = getNumOutputs(H)
1-483
phased.HeterogeneousConformalArray.getTaper
Examples Construct a 12-element, 2-ring tapered disk array where the outer ring
is more heavily tapered than the inner ring.
sElement1 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100e6 1e9],...
'AxisDirection','Z');
sElement2 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100e6 1e9],...
'AxisDirection','Y');
elemAngles = ([0:5]*360/6);
elemPosInner = 0.5*[zeros(size(elemAngles));...
cosd(elemAngles); sind(elemAngles)];
elemPosOuter = [zeros(size(elemAngles));...
cosd(elemAngles); sind(elemAngles)];
elemNorms = repmat([0;0],1,12);
taper = [ones(size(elemAngles)),...
0.3*ones(size(elemAngles))];
sArray = phased.HeterogeneousConformalArray(...
1-484
phased.HeterogeneousConformalArray.getTaper
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 1 1 1 1 1 2 2 2 2 2 2],...
'ElementPosition',[elemPosInner,elemPosOuter],...
'ElementNormal',elemNorms,...
'Taper',taper);
w = getTaper(sArray)
w =
1.0000
1.0000
1.0000
1.0000
1.0000
1.0000
0.3000
0.3000
0.3000
0.3000
0.3000
0.3000
viewArray(sArray,'ShowTaper',true,'ShowIndex','all');
1-485
phased.HeterogeneousConformalArray.getTaper
1-486
phased.HeterogeneousConformalArray.isLocked
Syntax TF = isLocked(H)
1-487
phased.HeterogeneousConformalArray.isPolarizationCapable
sElement1 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100e6 1e9],...
'AxisDirection','Z');
sElement2 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100e6 1e9],...
'AxisDirection','Y');
elemAngles = ([0:5]*360/6);
elemPosInner = 0.5*[zeros(size(elemAngles));...
cosd(elemAngles); sind(elemAngles)];
elemPosOuter = [zeros(size(elemAngles));...
cosd(elemAngles); sind(elemAngles)];
elemNorms = repmat([0;0],1,12);
sArray = phased.HeterogeneousConformalArray(...
1-488
phased.HeterogeneousConformalArray.isPolarizationCapa
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 1 1 1 1 1 2 2 2 2 2 2],...
'ElementPosition',[elemPosInner,elemPosOuter],...
'ElementNormal',elemNorms);
isPolarizationCapable(sArray)
ans =
The returned value true (1) shows that this array supports
polarization.
1-489
phased.HeterogeneousConformalArray.plotResponse
Syntax plotResponse(H,FREQ,V)
plotResponse(H,FREQ,V,Name,Value)
hPlot = plotResponse( ___ )
Input H
Arguments Array object
FREQ
Operating frequency in Hertz specified as a scalar or 1-by-K row
vector. Values must lie within the range specified by a property of
H. That property is named FrequencyRange or FrequencyVector,
depending on the type of element in the array. The element has
no response at frequencies outside that range. If you set the
'RespCut' property of H to '3D', FREQ must be a scalar. When
FREQ is a row vector, plotResponse draws multiple frequency
responses on the same axes.
V
Propagation speed in meters per second.
1-490
phased.HeterogeneousConformalArray.plotResponse
value. Name must appear inside single quotes (' '). You can
specify several name and value pair arguments in any order as
Name1,Value1,...,NameN,ValueN.
’CutAngle’
Cut angle as a scalar. This argument is applicable only when
RespCut is 'Az' or 'El'. If RespCut is 'Az', CutAngle must
be between –90 and 90. If RespCut is 'El', CutAngle must be
between –180 and 180.
Default: 0
’Format’
Format of the plot, using one of 'Line', 'Polar', or 'UV'. If you
set Format to 'UV', FREQ must be a scalar.
Default: 'Line'
’NormalizeResponse’
Set this value to true to normalize the response pattern. Set this
value to false to plot the response pattern without normalizing
it. This parameter is not applicable when you set the Unit
parameter value to 'dbi'.
Default: true
’OverlayFreq’
Set this value to true to overlay pattern cuts in a 2-D line plot.
Set this value to false to plot pattern cuts against frequency in a
3-D waterfall plot. If this value is false, FREQ must be a vector
with at least two entries.
This parameter applies only when Format is not 'Polar' and
RespCut is not '3D'.
1-491
phased.HeterogeneousConformalArray.plotResponse
Default: true
’Polarization’
Specify the polarization options for plotting the array response
pattern. The allowable values are |'None' | 'Combined' | 'H'
| 'V' | where
Default: 'None'
’RespCut’
Cut of the response. Valid values depend on Format, as follows:
1-492
phased.HeterogeneousConformalArray.plotResponse
Default: 'db'
’Weights’
Weight values applied to the array, specified as a length-N
column vector or N-by-M matrix. The dimension N is the number
of elements in the array. The interpretation of M depends upon
whether the input argument FREQ is a scalar or row vector.
’AzimuthAngles’
1-493
phased.HeterogeneousConformalArray.plotResponse
Default: [-180:180]
’ElevationAngles’
Elevation angles for plotting array response, specified as a row
vector. The ElevationAngles parameter sets the display range
and resolution of elevation angles for visualizing the radiation
pattern. This parameter is allowed only when the RespCut
parameter is set to 'El' or '3D' and the Format parameter
is set to 'Line' or 'Polar'. The values of elevation angles
should lie between –90° and 90° and must be in nondecreasing
order. When yous set the RespCut parameter to '3D', you can
set the ElevationAngles and AzimuthAngles parameters
simultaneously.
Default: [-90:90]
’UGrid’
U coordinate values for plotting array response, specified as a
row vector. The UGrid parameter sets the display range and
resolution of the U coordinates for visualizing the radiation
pattern in U/V space. This parameter is allowed only when the
Format parameter is set to 'UV' and the RespCut parameter is
set to 'U' or '3D'. The values of UGrid should be between –1 and
1 and should be specified in nondecreasing order. You can set the
UGrid and VGrid parameters simultaneously.
1-494
phased.HeterogeneousConformalArray.plotResponse
Default: [-1:0.01:1]
’VGrid’
V coordinate values for plotting array response, specified as a
row vector. The VGrid parameter sets the display range and
resolution of the V coordinates for visualizing the radiation
pattern in U/V space. This parameter is allowed only when the
Format parameter is set to 'UV' and the RespCut parameter is
set to '3D'. The values of VGrid should be between –1 and 1 and
should be specified in nondecreasing order. You can set VGrid and
UGrid parameters simultaneously.
Default: [-1:0.01:1]
sElement1 = phased.CosineAntennaElement('CosinePower',1.5);
sElement2 = phased.CosineAntennaElement('CosinePower',1.8);
N = 8; azang = (0:N-1)*360/N-180;
sArray = phased.HeterogeneousConformalArray(...
'ElementPosition',...
0.4*[zeros(1,N);cosd(azang);sind(azang)],...
'ElementNormal', zeros(2,N),...
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 1 1 1 2 2 2 2]);
c = physconst('LightSpeed');
fc = 1e9;
plotResponse(sArray,fc,c,'RespCut','El','Format','Polar');
1-495
phased.HeterogeneousConformalArray.plotResponse
plotResponse(sArray,fc,c,'RespCut','El','Format','Polar',...
'Unit','dbi');
1-496
phased.HeterogeneousConformalArray.plotResponse
sElement1 = phased.CosineAntennaElement('CosinePower',1.5);
sElement2 = phased.CosineAntennaElement('CosinePower',1.8);
N = 8; azang = (0:N-1)*360/N-180;
p0 = [zeros(1,N);cosd(azang);sind(azang)];
posn = [0.6*p0, 0.4*p0, 0.2*p0];
1-497
phased.HeterogeneousConformalArray.plotResponse
sArray1 = phased.HeterogeneousConformalArray(...
'ElementPosition',posn,...
'ElementNormal', zeros(2,3*N),...
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 1 1 1 1 1 1 1,...
1 1 1 1 1 1 1 1,...
2 2 2 2 2 2 2 2]);
viewArray(sArray1);
1-498
phased.HeterogeneousConformalArray.plotResponse
c = physconst('LightSpeed');
fc = 1e9;
wts1 = ones(3*N,1);
1-499
phased.HeterogeneousConformalArray.plotResponse
wts1 = wts1/sum(abs(wts1));
wts2 = [0.5*ones(N,1); 0.7*ones(N,1); 1*ones(N,1)];
wts2 = wts2/sum(abs(wts2));
plotResponse(sArray1,fc,c,'RespCut','El',...
'Format','Polar',...
'ElevationAngles',[-60:0.1:60],...
'Weights',...
[wts1,wts2],...
'Unit','db');
1-500
phased.HeterogeneousConformalArray.plotResponse
1-501
phased.HeterogeneousConformalArray.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-502
phased.HeterogeneousConformalArray.step
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Input H
Arguments Array object.
FREQ
Operating frequencies of array in hertz. FREQ is a row vector
of length L. Typical values are within the range specified by a
property of H.Element. That property is named FrequencyRange
or FrequencyVector, depending on the type of element in the
array. The element has zero response at frequencies outside that
range.
ANG
Directions in degrees. ANG can be either a 2-by-M matrix or a
row vector of length M.
If ANG is a 2-by-M matrix, each column of the matrix specifies the
direction in the form [azimuth; elevation]. The azimuth angle
1-503
phased.HeterogeneousConformalArray.step
Output RESP
Arguments Voltage responses of the phased array. The output depends on
whether the array supports polarization or not.
1-504
phased.HeterogeneousConformalArray.step
sElement1 = phased.CosineAntennaElement('CosinePower',1.5);
sElement2 = phased.CosineAntennaElement('CosinePower',1.8);
N = 8; azang = (0:N-1)*360/N-180;
sArray = phased.HeterogeneousConformalArray(...
'ElementPosition',...
[cosd(azang);sind(azang);zeros(1,N)],...
'ElementNormal', zeros(2,N),...
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 1 1 1 2 2 2 2]);
fc = 1e9;
ang = [30;5];
resp = step(sArray,fc,ang)
resp =
0.8013
0.8013
0.8013
0.8013
0.7666
0.7666
0.7666
0.7666
1-505
phased.HeterogeneousConformalArray.viewArray
Syntax viewArray(H)
viewArray(H,Name,Value)
hPlot = viewArray( ___ )
Input H
Arguments Array object
’ShowIndex’
Vector specifying the element indices to show in the figure. Each
number in the vector must be an integer between 1 and the
number of elements. You can also specify the string 'All' to show
indices of all elements of the array or 'None' to suppress indices.
Default: 'None'
’ShowNormals’
1-506
phased.HeterogeneousConformalArray.viewArray
Default: false
’ShowTaper’
Set this value to true to specify whether to change the element
color brightness in proportion to the element taper magnitude.
When this value is set to false, all elements are drawn with the
same color.
Default: false
’Title’
String specifying the title of the plot.
Output hPlot
Arguments Handle of array elements in figure window.
sElement1 = phased.CosineAntennaElement('CosinePower',1.5);
sElement2 = phased.CosineAntennaElement('CosinePower',1.8);
N = 8; azang = (0:N-1)*360/N-180;
sArray = phased.HeterogeneousConformalArray(...
'ElementPosition',...
[cosd(azang);sind(azang);zeros(1,N)],...
'ElementNormal', zeros(2,N),...
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 1 1 1 2 2 2 2]);
1-507
phased.HeterogeneousConformalArray.viewArray
viewArray(sArray,'ShowIndex','all','ShowNormal',true);
1-508
phased.HeterogeneousConformalArray.viewArray
1-509
phased.HeterogeneousULA
Properties ElementSet
Set of elements used in the array
Specify the set of different elements used in the sensor array as a
row MATLAB cell array. Each member of the cell array contains
an element object in the phased package. Elements specified
in the ElementSet property must be either all antennas or all
1-510
phased.HeterogeneousULA
ElementIndices
Elements location assignment
This property specifies the mapping of elements in the array. The
property assigns elements to their locations in the array using
indices into the ElementSet property. ElementIndices must be
a 1-by-N row vector where N is greater than 1. N is the number
of elements in the sensor array. The values in ElementIndices
should be less than or equal to the number of entries in the
ElementSet property.
Default: [1 1]
ElementSpacing
Element spacing
A scalar containing the spacing (in meters) between two adjacent
elements in the array.
Default: 0.5
Taper
Element tapering
Element tapering specified as a complex-valued scalar or a
complex-valued 1-by-N row vector. N is the number of elements
in the array as determined by the size of the ElementIndices
property. Tapers, also known as weights, are applied to each
sensor element in the sensor array and modify both the amplitude
and phase of the received data. If 'Taper' is a scalar, the same
1-511
phased.HeterogeneousULA
Default: 1
1-512
phased.HeterogeneousULA
power values of 1.5 while the inside elements have power values of 1.8.
Find the response of each element at boresight.
sElement1 = phased.CosineAntennaElement('CosinePower',1.5);
sElement2 = phased.CosineAntennaElement('CosinePower',1.8);
sArray = phased.HeterogeneousULA(...
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 1 2 2 2 2 2 2 1 1 ]);
fc = 1e9;
ang = [0;0];
resp = step(sArray,fc,ang)
resp =
1
1
1
1
1
1
1
1
1
1
c = physconst('LightSpeed');
plotResponse(sArray,fc,c,'RespCut','Az','Format','Polar');
1-513
phased.HeterogeneousULA
1-514
phased.HeterogeneousULA
sElement1 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100e6 1e9],...
'AxisDirection','Z');
sElement2 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100e6 1e9],...
'AxisDirection','Y');
sArray = phased.HeterogeneousULA(...
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 1 2 2 2 2 2 2 1 1 ],...
'Taper',taylorwin(10)');
isPolarizationCapable(sArray)
ans =
viewArray(sArray,'ShowTaper',true,'ShowIndex',...
'All','ShowTaper',true)
1-515
phased.HeterogeneousULA
fc = 150e6;
ang = [10];
resp = step(sArray,fc,ang)
resp.H
resp =
1-516
phased.HeterogeneousULA
H: [10x1 double]
V: [10x1 double]
ans =
0
0
-1.2442
-1.6279
-1.8498
-1.8498
-1.6279
-1.2442
0
0
c = physconst('LightSpeed');
plotResponse(sArray,fc,c,'RespCut','Az','Format',...
'Polar','Polarization','C');
1-517
phased.HeterogeneousULA
References [1] Brookner, E., ed. Radar Technology. Lexington, MA: LexBook, 1996.
1-518
phased.HeterogeneousULA
| phased.CustomAntennaElement |
phased.IsotropicAntennaElementphased.ShortDipoleAntennaElement
1-519
phased.HeterogeneousULA.clone
Syntax C = clone(H)
1-520
phased.HeterogeneousULA.collectPlaneWave
Syntax Y = collectPlaneWave(H,X,ANG)
Y = collectPlaneWave(H,X,ANG,FREQ)
Y = collectPlaneWave(H,X,ANG,FREQ,C)
Input H
Arguments Array object.
X
Incoming signals, specified as an M-column matrix. Each column
of X represents an individual incoming signal.
ANG
Directions from which incoming signals arrive, in degrees. ANG
can be either a 2-by-M matrix or a row vector of length M.
If ANG is a 2-by-M matrix, each column specifies the direction of
arrival of the corresponding signal in X. Each column of ANG is in
the form [azimuth; elevation]. The azimuth angle must be
between –180 and 180 degrees, inclusive. The elevation angle
must be between –90 and 90 degrees, inclusive.
If ANG is a row vector of length M, each entry in ANG specifies the
azimuth angle. In this case, the corresponding elevation angle
is assumed to be 0.
FREQ
1-521
phased.HeterogeneousULA.collectPlaneWave
Default: 3e8
C
Propagation speed of signal in meters per second.
Output Y
Arguments Received signals. Y is an N-column matrix, where N is the number
of elements in the array H. Each column of Y is the received signal
at the corresponding array element, with all incoming signals
combined.
sElement1 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100e6 1e9],...
'AxisDirection','Z');
sElement2 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100e6 1e9],...
'AxisDirection','Y');
sArray = phased.HeterogeneousULA(...
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 2 2 1]);
y = collectPlaneWave(sArray,randn(4,2),[10 30],1e8,...
physconst('LightSpeed'));
y(:,1)
ans =
1-522
phased.HeterogeneousULA.collectPlaneWave
0.7430 - 0.3705i
0.8418 + 0.4308i
-2.4817 + 0.9157i
1.0724 - 0.4748i
1-523
phased.HeterogeneousULA.getElementPosition
sElement1 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100e6 1e9],...
'AxisDirection','Z');
sElement2 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100e6 1e9],...
'AxisDirection','Y');
sArray = phased.HeterogeneousULA(...
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 2 2 1]);
pos = getElementPosition(sArray);
pos =
0 0 0 0
-0.7500 -0.2500 0.2500 0.7500
0 0 0 0
1-524
phased.HeterogeneousULA.getNumElements
Syntax N = getNumElements(H)
Examples Construct a default ULA, and obtain the number of elements in that
array.
sElement1 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100e6 1e9],...
'AxisDirection','Z');
sElement2 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100e6 1e9],...
'AxisDirection','Y');
sArray = phased.HeterogeneousULA(...
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 2 2 1]);
N = getNumElements(sArray)
N =
1-525
phased.HeterogeneousULA.getNumInputs
Syntax N = getNumInputs(H)
1-526
phased.HeterogeneousULA.getNumOutputs
Syntax N = getNumOutputs(H)
1-527
phased.HeterogeneousULA.getTaper
Description wts = getTaper(h) returns the tapers, wts, applied to each element
of the phased heterogeneous uniform line array (ULA), h. Tapers are
often referred to as weights.
sElement1 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100e6 1e9],...
'AxisDirection','Z');
sElement2 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100e6 1e9],...
'AxisDirection','Y');
sArray = phased.HeterogeneousULA(...
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 2 2 2 1],'Taper',taylorwin(5)');
w = getTaper(sArray)
w =
1-528
phased.HeterogeneousULA.getTaper
0.5181
1.2029
1.5581
1.2029
0.5181
1-529
phased.HeterogeneousULA.isLocked
Syntax TF = isLocked(H)
1-530
phased.HeterogeneousULA.isPolarizationCapable
sElement1 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100e6 1e9],...
'AxisDirection','Z');
sElement2 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100e6 1e9],...
'AxisDirection','Y');
sArray = phased.HeterogeneousULA(...
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 2 2 2 1]);
isPolarizationCapable(sArray)
ans =
1-531
phased.HeterogeneousULA.isPolarizationCapable
The returned value true (1) shows that this array supports
polarization.
1-532
phased.HeterogeneousULA.plotResponse
Syntax plotResponse(H,FREQ,V)
plotResponse(H,FREQ,V,Name,Value)
hPlot = plotResponse( ___ )
Input H
Arguments Array object
FREQ
Operating frequency in Hertz specified as a scalar or 1-by-K row
vector. Values must lie within the range specified by a property of
H. That property is named FrequencyRange or FrequencyVector,
depending on the type of element in the array. The element has
no response at frequencies outside that range. If you set the
'RespCut' property of H to '3D', FREQ must be a scalar. When
FREQ is a row vector, plotResponse draws multiple frequency
responses on the same axes.
V
Propagation speed in meters per second.
1-533
phased.HeterogeneousULA.plotResponse
value. Name must appear inside single quotes (' '). You can
specify several name and value pair arguments in any order as
Name1,Value1,...,NameN,ValueN.
’CutAngle’
Cut angle as a scalar. This argument is applicable only when
RespCut is 'Az' or 'El'. If RespCut is 'Az', CutAngle must
be between –90 and 90. If RespCut is 'El', CutAngle must be
between –180 and 180.
Default: 0
’Format’
Format of the plot, using one of 'Line', 'Polar', or 'UV'. If you
set Format to 'UV', FREQ must be a scalar.
Default: 'Line'
’NormalizeResponse’
Set this value to true to normalize the response pattern. Set this
value to false to plot the response pattern without normalizing
it. This parameter is not applicable when you set the Unit
parameter value to 'dbi'.
Default: true
’OverlayFreq’
Set this value to true to overlay pattern cuts in a 2-D line plot.
Set this value to false to plot pattern cuts against frequency in a
3-D waterfall plot. If this value is false, FREQ must be a vector
with at least two entries.
This parameter applies only when Format is not 'Polar' and
RespCut is not '3D'.
1-534
phased.HeterogeneousULA.plotResponse
Default: true
’Polarization’
Specify the polarization options for plotting the array response
pattern. The allowable values are |'None' | 'Combined' | 'H'
| 'V' | where
Default: 'None'
’RespCut’
Cut of the response. Valid values depend on Format, as follows:
1-535
phased.HeterogeneousULA.plotResponse
Default: 'db'
’Weights’
Weight values applied to the array, specified as a length-N
column vector or N-by-M matrix. The dimension N is the number
of elements in the array. The interpretation of M depends upon
whether the input argument FREQ is a scalar or row vector.
’AzimuthAngles’
1-536
phased.HeterogeneousULA.plotResponse
Default: [-180:180]
’ElevationAngles’
Elevation angles for plotting array response, specified as a row
vector. The ElevationAngles parameter sets the display range
and resolution of elevation angles for visualizing the radiation
pattern. This parameter is allowed only when the RespCut
parameter is set to 'El' or '3D' and the Format parameter
is set to 'Line' or 'Polar'. The values of elevation angles
should lie between –90° and 90° and must be in nondecreasing
order. When yous set the RespCut parameter to '3D', you can
set the ElevationAngles and AzimuthAngles parameters
simultaneously.
Default: [-90:90]
’UGrid’
U coordinate values for plotting array response, specified as a
row vector. The UGrid parameter sets the display range and
resolution of the U coordinates for visualizing the radiation
pattern in U/V space. This parameter is allowed only when the
Format parameter is set to 'UV' and the RespCut parameter is
set to 'U' or '3D'. The values of UGrid should be between –1 and
1 and should be specified in nondecreasing order. You can set the
UGrid and VGrid parameters simultaneously.
1-537
phased.HeterogeneousULA.plotResponse
Default: [-1:0.01:1]
’VGrid’
V coordinate values for plotting array response, specified as a
row vector. The VGrid parameter sets the display range and
resolution of the V coordinates for visualizing the radiation
pattern in U/V space. This parameter is allowed only when the
Format parameter is set to 'UV' and the RespCut parameter is
set to '3D'. The values of VGrid should be between –1 and 1 and
should be specified in nondecreasing order. You can set VGrid and
UGrid parameters simultaneously.
Default: [-1:0.01:1]
Construct the array from z-directed and y-directed short dipole antenna
elements.
sElement1 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[2e8 5e8],...
'AxisDirection','Z');
sElement2 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[2e8 5e8],...
'AxisDirection','Y');
sArray = phased.HeterogeneousULA(...
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 2 2 2 1]);
fc = [3e8 4e8];
c = physconst('LightSpeed');
1-538
phased.HeterogeneousULA.plotResponse
plotResponse(sArray,fc,c);
sElement1 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[2e8 5e8],...
1-539
phased.HeterogeneousULA.plotResponse
'AxisDirection','Z');
sElement2 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[2e8 5e8],...
'AxisDirection','Y');
sArray = phased.HeterogeneousULA(...
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 2 2 2 1]);
fc = 3e8;
c = physconst('LightSpeed');
plotResponse(sArray,fc,c,'RespCut','Az','Format','Polar');
1-540
phased.HeterogeneousULA.plotResponse
plotResponse(sArray,fc,c,'RespCut','Az','Format','Polar',...
'Unit','dbi');
1-541
phased.HeterogeneousULA.plotResponse
1-542
phased.HeterogeneousULA.plotResponse
sElement1 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[2e8 5e8],...
'AxisDirection','Z');
sElement2 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[2e8 5e8],...
'AxisDirection','Y');
sArray = phased.HeterogeneousULA(...
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 1 2 2 2 2 2 1 1]);
fc = 3e8;
wts1 = ones(9,1);
wts2 = taylorwin(9);
c = physconst('LightSpeed');
plotResponse(sArray,fc,c,'RespCut','Az',...
'AzimuthAngles',[-45:0.1:45],...
'Weights',[wts1,wts2]);
1-543
phased.HeterogeneousULA.plotResponse
1-544
phased.HeterogeneousULA.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-545
phased.HeterogeneousULA.step
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Input H
Arguments Array object.
FREQ
Operating frequencies of array in hertz. FREQ is a row vector
of length L. Typical values are within the range specified by a
property of H.Element. That property is named FrequencyRange
or FrequencyVector, depending on the type of element in the
array. The element has zero response at frequencies outside that
range.
ANG
Directions in degrees. ANG can be either a 2-by-M matrix or a
row vector of length M.
If ANG is a 2-by-M matrix, each column of the matrix specifies the
direction in the form [azimuth; elevation]. The azimuth angle
1-546
phased.HeterogeneousULA.step
Output RESP
Arguments Voltage responses of the phased array. The output depends on
whether the array supports polarization or not.
1-547
phased.HeterogeneousULA.step
resp =
0.8059
0.7719
0.7719
0.7719
0.8059
sMic1 = phased.CustomMicrophoneElement(...
'FrequencyResponse',[20 20e3]);
sMic1.PolarPatternFrequencies = [500 1000];
sMic1.PolarPattern = mag2db([...
0.5+0.5*cosd(sMic1.PolarPatternAngles);...
0.6+0.4*cosd(sMic1.PolarPatternAngles)]);
sMic2 = phased.CustomMicrophoneElement(...
'FrequencyResponse',[20 20e3]);
sMic2.PolarPatternFrequencies = [500 1000];
1-548
phased.HeterogeneousULA.step
sMic2.PolarPattern = mag2db([...
ones(size(sMic2.PolarPatternAngles));...
ones(size(sMic2.PolarPatternAngles))]);
sArray = phased.HeterogeneousULA(...
'ElementSet',{sMic1,sMic2},...
'ElementIndices',[1 1 2 2 2 1 1]);
fc = [1500, 2000];
ang = [40 50; 0 0];
resp = step(sArray,fc,ang)
resp(:,:,1) =
9.0642 8.5712
9.0642 8.5712
10.0000 10.0000
10.0000 10.0000
10.0000 10.0000
9.0642 8.5712
9.0642 8.5712
resp(:,:,2) =
9.0642 8.5712
9.0642 8.5712
10.0000 10.0000
10.0000 10.0000
10.0000 10.0000
9.0642 8.5712
9.0642 8.5712
1-549
phased.HeterogeneousULA.viewArray
Syntax viewArray(H)
viewArray(H,Name,Value)
hPlot = viewArray( ___ )
Input H
Arguments Array object.
’ShowIndex’
Vector specifying the element indices to show in the figure. Each
number in the vector must be an integer between 1 and the
number of elements. You can also specify the string 'All' to show
indices of all elements of the array or 'None' to suppress indices.
Default: 'None'
’ShowNormals’
1-550
phased.HeterogeneousULA.viewArray
Default: false
’ShowTaper’
Set this value to true to specify whether to change the element
color brightness in proportion to the element taper magnitude.
When this value is set to false, all elements are drawn with the
same color.
Default: false
’Title’
String specifying the title of the plot.
Output hPlot
Arguments Handle of array elements in figure window.
1-551
phased.HeterogeneousULA.viewArray
1-552
phased.HeterogeneousURA
Properties ElementSet
Set of elements used in the array
Specify the set of different elements used in the sensor array as a
row MATLAB cell array. Each member of the cell array contains
an element object in the phased package. Elements specified
in the ElementSet property must be either all antennas or all
microphones. In addition, all specified antenna elements should
have same polarization capability. Specify the element of the
1-553
phased.HeterogeneousURA
ElementIndices
Elements location assignment
This property specifies the mapping of elements in the array.
The property assigns elements to their locations in the array
using the indices into the ElementSet property. The value of
ElementIndices must be an M-by-N matrix. In this matrix, M
represents the number of rows and N represents the number of
columns. Rows are along y-axis and columns are along z-axis of
the local coordinate system. The values in the matrix specified by
ElementIndices should be less than or equal to the number of
entries in the ElementSet property.
Default: [1 1;1 1]
ElementSpacing
Element spacing
A 1-by-2 vector or a scalar containing the element spacing (in
meters) of the array. If ElementSpacing is a 1-by-2 vector, it is
in the form of [SpacingBetweenRows,SpacingBetweenColumns].
See “Spacing Between Columns” on page 1-556 and “Spacing
Between Rows” on page 1-556. If ElementSpacing is a scalar,
both spacings are the same.
Lattice
Element lattice
Specify the element lattice as one of 'Rectangular' |
'Triangular'. When you set the Lattice property to
1-554
phased.HeterogeneousURA
Default: 'Rectangular'
Taper
Element taper
Element tapering specified as a complex-valued scalar or a
complex-valued M-by-N matrix. M is the number of elements
along the z-axis and N is the number of elements along
y-axis. M and N correspond to the values of [NumberofRows,
NumberOfColumns] in the Size property. Tapers, also known as
weights, are applied to each sensor element in the sensor array
and modify both the amplitude and phase of the received data. If
'Taper' is a scalar, the same weights are applied to each element.
If 'Taper' is a vector, each weight is applied to the corresponding
sensor element.
Default: 1
1-555
phased.HeterogeneousURA
1-556
phased.HeterogeneousURA
Spacing Between
Rows
1-557
phased.HeterogeneousURA
sElement1 = phased.CosineAntennaElement('CosinePower',1.5);
sElement2 = phased.CosineAntennaElement('CosinePower',1.8);
sArray = phased.HeterogeneousURA(...
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 1; 2 2; 1 1]);
fc = 1e9;
ang = [30;0];
resp = step(sArray,fc,ang)
resp =
0.8059
0.7719
0.8059
0.8059
0.7719
0.8059
c = physconst('LightSpeed');
plotResponse(sArray,fc,c,'RespCut','Az','Format','Polar');
1-558
phased.HeterogeneousURA
sElement1 = phased.CosineAntennaElement('CosinePower',1.5);
sElement2 = phased.CosineAntennaElement('CosinePower',1.8);
sArray = phased.HeterogeneousURA(...
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 1 1; 2 2 2; 1 1 1],...
1-559
phased.HeterogeneousURA
'Lattice','Triangular');
viewArray(sArray);
References [1] Brookner, E., ed. Radar Technology. Lexington, MA: LexBook, 1996.
[2] Brookner, E., ed. Practical Phased Array Antenna Systems. Boston:
Artech House, 1991.
1-560
phased.HeterogeneousURA
1-561
phased.HeterogeneousURA.clone
Syntax C = clone(H)
1-562
phased.HeterogeneousURA.collectPlaneWave
Syntax Y = collectPlaneWave(H,X,ANG)
Y = collectPlaneWave(H,X,ANG,FREQ)
Y = collectPlaneWave(H,X,ANG,FREQ,C)
Input H
Arguments Array object.
X
Incoming signals, specified as an M-column matrix. Each column
of X represents an individual incoming signal.
ANG
Directions from which incoming signals arrive, in degrees. ANG
can be either a 2-by-M matrix or a row vector of length M.
If ANG is a 2-by-M matrix, each column specifies the direction of
arrival of the corresponding signal in X. Each column of ANG is in
the form [azimuth; elevation]. The azimuth angle must be
between –180 and 180 degrees, inclusive. The elevation angle
must be between –90 and 90 degrees, inclusive.
If ANG is a row vector of length M, each entry in ANG specifies the
azimuth angle. In this case, the corresponding elevation angle
is assumed to be 0.
FREQ
1-563
phased.HeterogeneousURA.collectPlaneWave
Default: 3e8
C
Propagation speed of signal in meters per second.
Output Y
Arguments Received signals. Y is an N-column matrix, where N is the number
of elements in the array H. Each column of Y is the received signal
at the corresponding array element, with all incoming signals
combined.
sElement1 = phased.CosineAntennaElement('CosinePower',1.5);
sElement2 = phased.CosineAntennaElement('CosinePower',1.8);
sArray = phased.HeterogeneousURA(...
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 2; 1 2]);
y = collectPlaneWave(sArray,randn(4,2),[10 30],1e8,...
physconst('LightSpeed'));
y(:,1)
ans =
4.2642 - 0.5130i
2.6971 - 0.2353i
-0.6539 - 0.0625i
2.8244 - 0.2227i
1-564
phased.HeterogeneousURA.collectPlaneWave
1-565
phased.HeterogeneousURA.getElementPosition
sElement1 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100e6 1e9],...
'AxisDirection','Z');
sElement2 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100e6 1e9],...
'AxisDirection','Y');
sArray = phased.HeterogeneousURA(...
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 2; 2 1]);
pos = getElementPosition(sArray);
1-566
phased.HeterogeneousURA.getElementPosition
pos =
0 0 0 0
-0.2500 -0.2500 0.2500 0.2500
0.2500 -0.2500 0.2500 -0.2500
1-567
phased.HeterogeneousURA.getNumElements
Syntax N = getNumElements(H)
sElement1 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100e6 1e9],...
'AxisDirection','Z');
sElement2 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100e6 1e9],...
'AxisDirection','Y');
sArray = phased.HeterogeneousURA(...
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 2; 2 1]);
N = getNumElements(sArray)
N =
1-568
phased.HeterogeneousURA.getNumInputs
Syntax N = getNumInputs(H)
1-569
phased.HeterogeneousURA.getNumOutputs
Syntax N = getNumOutputs(H)
1-570
phased.HeterogeneousURA.getTaper
Description wts = getTaper(h) returns the tapers, wts, applied to each element of
the phased heterogeneous uniform rectangular array (URA), h. Tapers
are often referred to as weights.
sElement1 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100e6 1e9],...
'AxisDirection','Z');
sElement2 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100e6 1e9],...
'AxisDirection','Y');
sArray = phased.HeterogeneousURA(...
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 2 2 2 1 ; 1 2 2 2 1],...
1-571
phased.HeterogeneousURA.getTaper
'Taper',[taylorwin(5)';taylorwin(5)']);
w = getTaper(sArray)
w =
0.5181
0.5181
1.2029
1.2029
1.5581
1.5581
1.2029
1.2029
0.5181
0.5181
viewArray(sArray,'ShowTaper',true);
1-572
phased.HeterogeneousURA.getTaper
1-573
phased.HeterogeneousURA.isLocked
Syntax TF = isLocked(H)
1-574
phased.HeterogeneousURA.isPolarizationCapable
sElement1 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100e6 1e9],...
'AxisDirection','Z');
sElement2 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100e6 1e9],...
'AxisDirection','Y');
sArray = phased.HeterogeneousURA(...
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 2 2 2 1 ; 1 2 2 2 1]);
isPolarizationCapable(sArray)
ans =
1-575
phased.HeterogeneousURA.isPolarizationCapable
The returned value true (1) shows that this array supports
polarization.
1-576
phased.HeterogeneousURA.plotResponse
Syntax plotResponse(H,FREQ,V)
plotResponse(H,FREQ,V,Name,Value)
hPlot = plotResponse( ___ )
Input H
Arguments Array object
FREQ
Operating frequency in Hertz specified as a scalar or 1-by-K row
vector. Values must lie within the range specified by a property of
H. That property is named FrequencyRange or FrequencyVector,
depending on the type of element in the array. The element has
no response at frequencies outside that range. If you set the
'RespCut' property of H to '3D', FREQ must be a scalar. When
FREQ is a row vector, plotResponse draws multiple frequency
responses on the same axes.
V
Propagation speed in meters per second.
1-577
phased.HeterogeneousURA.plotResponse
value. Name must appear inside single quotes (' '). You can
specify several name and value pair arguments in any order as
Name1,Value1,...,NameN,ValueN.
’CutAngle’
Cut angle as a scalar. This argument is applicable only when
RespCut is 'Az' or 'El'. If RespCut is 'Az', CutAngle must
be between –90 and 90. If RespCut is 'El', CutAngle must be
between –180 and 180.
Default: 0
’Format’
Format of the plot, using one of 'Line', 'Polar', or 'UV'. If you
set Format to 'UV', FREQ must be a scalar.
Default: 'Line'
’NormalizeResponse’
Set this value to true to normalize the response pattern. Set this
value to false to plot the response pattern without normalizing
it. This parameter is not applicable when you set the Unit
parameter value to 'dbi'.
Default: true
’OverlayFreq’
Set this value to true to overlay pattern cuts in a 2-D line plot.
Set this value to false to plot pattern cuts against frequency in a
3-D waterfall plot. If this value is false, FREQ must be a vector
with at least two entries.
This parameter applies only when Format is not 'Polar' and
RespCut is not '3D'.
1-578
phased.HeterogeneousURA.plotResponse
Default: true
’Polarization’
Specify the polarization options for plotting the array response
pattern. The allowable values are |'None' | 'Combined' | 'H'
| 'V' | where
Default: 'None'
’RespCut’
Cut of the response. Valid values depend on Format, as follows:
1-579
phased.HeterogeneousURA.plotResponse
Default: 'db'
’Weights’
Weight values applied to the array, specified as a length-N
column vector or N-by-M matrix. The dimension N is the number
of elements in the array. The interpretation of M depends upon
whether the input argument FREQ is a scalar or row vector.
’AzimuthAngles’
1-580
phased.HeterogeneousURA.plotResponse
Default: [-180:180]
’ElevationAngles’
Elevation angles for plotting array response, specified as a row
vector. The ElevationAngles parameter sets the display range
and resolution of elevation angles for visualizing the radiation
pattern. This parameter is allowed only when the RespCut
parameter is set to 'El' or '3D' and the Format parameter
is set to 'Line' or 'Polar'. The values of elevation angles
should lie between –90° and 90° and must be in nondecreasing
order. When yous set the RespCut parameter to '3D', you can
set the ElevationAngles and AzimuthAngles parameters
simultaneously.
Default: [-90:90]
’UGrid’
U coordinate values for plotting array response, specified as a
row vector. The UGrid parameter sets the display range and
resolution of the U coordinates for visualizing the radiation
pattern in U/V space. This parameter is allowed only when the
Format parameter is set to 'UV' and the RespCut parameter is
set to 'U' or '3D'. The values of UGrid should be between –1 and
1 and should be specified in nondecreasing order. You can set the
UGrid and VGrid parameters simultaneously.
1-581
phased.HeterogeneousURA.plotResponse
Default: [-1:0.01:1]
’VGrid’
V coordinate values for plotting array response, specified as a
row vector. The VGrid parameter sets the display range and
resolution of the V coordinates for visualizing the radiation
pattern in U/V space. This parameter is allowed only when the
Format parameter is set to 'UV' and the RespCut parameter is
set to '3D'. The values of VGrid should be between –1 and 1 and
should be specified in nondecreasing order. You can set VGrid and
UGrid parameters simultaneously.
Default: [-1:0.01:1]
sElement1 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[2e8 5e8],...
'AxisDirection','Z');
sElement2 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[2e8 5e8],...
'AxisDirection','Y');
sArray = phased.HeterogeneousURA(...
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 1 1; 2 2 2; 1 1 1]);
fc = [3e8];
c = physconst('LightSpeed');
plotResponse(sArray,fc,c);
1-582
phased.HeterogeneousURA.plotResponse
plotResponse(sArray,fc,c,'RespCut','Az','Format','Polar');
1-583
phased.HeterogeneousURA.plotResponse
plotResponse(sArray,fc,c,'RespCut','Az','Unit','dbi');
1-584
phased.HeterogeneousURA.plotResponse
1-585
phased.HeterogeneousURA.plotResponse
sElement1 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[2e8 5e8],...
'AxisDirection','Z');
sElement2 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[2e8 5e8],...
'AxisDirection','Y');
sArray = phased.HeterogeneousURA(...
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 1 1; 2 2 2; 1 1 1]);
fc = [3e8];
c = physconst('LightSpeed');
wts1 = ones(9,1)/9;
wts2 = [.7,.7,.7,.7,1,.7,.7,.7,.7]';
wts2 = wts2/sum(wts2);
plotResponse(sArray,fc,c,'RespCut','Az',...
'Format','Line',...
'AzimuthAngles',[-45:0.1:45],...
'Weights',[wts1,wts2],'Unit','db');
1-586
phased.HeterogeneousURA.plotResponse
1-587
phased.HeterogeneousURA.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-588
phased.HeterogeneousURA.step
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Input H
Arguments Array object.
FREQ
Operating frequencies of array in hertz. FREQ is a row vector
of length L. Typical values are within the range specified by a
property of H.Element. That property is named FrequencyRange
or FrequencyVector, depending on the type of element in the
array. The element has zero response at frequencies outside that
range.
ANG
Directions in degrees. ANG can be either a 2-by-M matrix or a
row vector of length M.
If ANG is a 2-by-M matrix, each column of the matrix specifies the
direction in the form [azimuth; elevation]. The azimuth angle
1-589
phased.HeterogeneousURA.step
Output RESP
Arguments Voltage responses of the phased array. The output depends on
whether the array supports polarization or not.
1-590
phased.HeterogeneousURA.step
sElement1 = phased.CosineAntennaElement('CosinePower',1.5);
sElement2 = phased.CosineAntennaElement('CosinePower',1.8);
sArray = phased.HeterogeneousURA(...
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 2; 2 1]);
fc = 1e9;
c = physconst('LightSpeed');
ang = [30;0];
resp = step(sArray,fc,ang)
resp =
0.8059
0.7719
0.7719
0.8059
plotResponse(sArray,fc,c);
1-591
phased.HeterogeneousURA.step
1-592
phased.HeterogeneousURA.viewArray
Syntax viewArray(H)
viewArray(H,Name,Value)
hPlot = viewArray( ___ )
Input H
Arguments Array object.
’ShowIndex’
Vector specifying the element indices to show in the figure. Each
number in the vector must be an integer between 1 and the
number of elements. You can also specify the string 'All' to show
indices of all elements of the array or 'None' to suppress indices.
Default: 'None'
’ShowNormals’
1-593
phased.HeterogeneousURA.viewArray
Default: false
’ShowTaper’
Set this value to true to specify whether to change the element
color brightness in proportion to the element taper magnitude.
When this value is set to false, all elements are drawn with the
same color.
Default: false
’Title’
String specifying the title of the plot.
Output hPlot
Arguments Handle of array elements in figure window.
sElement1 = phased.CosineAntennaElement('CosinePower',1.5);
sElement2 = phased.CosineAntennaElement('CosinePower',1.8);
sArray = phased.HeterogeneousURA(...
'ElementSet',{sElement1,sElement2},...
'ElementIndices',[1 1 1 1; 1 2 2 1; 1 2 2 1; 1 1 1 1]);
viewArray(sArray,'ShowIndex','all','ShowNormal',true);
1-594
phased.HeterogeneousURA.viewArray
1-595
phased.IsotropicAntennaElement
Properties FrequencyRange
Operating frequency range
Specify the antenna element operating frequency range (in Hz) as
a 1-by-2 row vector in the form of [LowerBound HigherBound].
The antenna element has zero response outside the specified
frequency range.
Default: [0 1e20]
BackBaffled
Baffle the back of antenna element
1-596
phased.IsotropicAntennaElement
Default: false
ha = phased.IsotropicAntennaElement(...
'FrequencyRange',[800e6 1.2e9]);
fc = 1e9;
1-597
phased.IsotropicAntennaElement
1-598
phased.IsotropicAntennaElement.clone
Syntax C = clone(H)
1-599
phased.IsotropicAntennaElement.getNumInputs
Syntax N = getNumInputs(H)
1-600
phased.IsotropicAntennaElement.getNumOutputs
Syntax N = getNumOutputs(H)
1-601
phased.IsotropicAntennaElement.isLocked
Syntax TF = isLocked(H)
1-602
phased.IsotropicAntennaElement.isPolarizationCapable
h = phased.IsotropicAntennaElement('FrequencyRange',[1.0,10]*1e9);
isPolarizationCapable(h)
ans =
The returned value false (0) shows that the antenna element does
not support polarization.
1-603
phased.IsotropicAntennaElement.plotResponse
Syntax plotResponse(H,FREQ)
plotResponse(H,FREQ,Name,Value)
hPlot = plotResponse( ___ )
Input H
Arguments Element System object
FREQ
Operating frequency in Hertz specified as a scalar or 1–by-K
row vector. FREQ must lie within the range specified by the
FrequencyVector property of H. If you set the 'RespCut' property
of H to '3D', FREQ must be a scalar. When FREQ is a row vector,
plotResponse draws multiple frequency responses on the same
axes.
’CutAngle’
1-604
phased.IsotropicAntennaElement.plotResponse
Default: 0
’Format’
Format of the plot, using one of 'Line', 'Polar', or 'UV'. If you
set Format to 'UV', FREQ must be a scalar.
Default: 'Line'
’NormalizeResponse’
Set this value to true to normalize the response pattern. Set this
value to false to plot the response pattern without normalizing
it. This parameter is not applicable when you set the Unit
parameter value to 'dbi'.
Default: true
’OverlayFreq’
Set this value to true to overlay pattern cuts in a 2-D line plot.
Set this value to false to plot pattern cuts against frequency in a
3-D waterfall plot. If this value is false, FREQ must be a vector
with at least two entries.
This parameter applies only when Format is not 'Polar' and
RespCut is not '3D'.
Default: true
’Polarization’
1-605
phased.IsotropicAntennaElement.plotResponse
Default: 'None'
’RespCut’
Cut of the response. Valid values depend on Format, as follows:
1-606
phased.IsotropicAntennaElement.plotResponse
Default: 'db'
’AzimuthAngles’
Azimuth angles for plotting element response, specified as a row
vector. The AzimuthAngles parameter sets the display range and
resolution of azimuth angles for visualizing the radiation pattern.
This parameter is allowed only when the RespCut parameter is
set to 'Az' or '3D' and the Format parameter is set to 'Line' or
'Polar'. The values of azimuth angles should lie between –180°
and 180° and must be in nondecreasing order. When you set the
RespCut parameter to '3D', you can set the AzimuthAngles and
ElevationAngles parameters simultaneously.
Default: [-180:180]
’ElevationAngles’
Elevation angles for plotting element response, specified as a row
vector. The ElevationAngles parameter sets the display range
and resolution of elevation angles for visualizing the radiation
pattern. This parameter is allowed only when the RespCut
parameter is set to 'El' or '3D' and the Format parameter
is set to 'Line' or 'Polar'. The values of elevation angles
should lie between –90° and 90° and must be in nondecreasing
order. When you set the RespCut parameter to '3D', you can
set the ElevationAngles and AzimuthAngles parameters
simultaneously.
1-607
phased.IsotropicAntennaElement.plotResponse
Default: [-90:90]
’UGrid’
U coordinate values for plotting element response, specified as
a row vector. The UGrid parameter sets the display range and
resolution of the U coordinates for visualizing the radiation
pattern in U/V space. This parameter is allowed only when the
Format parameter is set to 'UV' and the RespCut parameter is
set to 'U' or '3D'. The values of UGrid should be between –1 and
1 and should be specified in nondecreasing order. You can set the
UGrid and VGrid parameters simultaneously.
Default: [-1:0.01:1]
’VGrid’
V coordinate values for plotting element response, specified
as a row vector. The VGrid parameter sets the display range
and resolution of the V coordinates for visualizing the radiation
pattern in U/V space. This parameter is allowed only when the
Format parameter is set to 'UV' and the RespCut parameter is
set to '3D'. The values of VGrid should be between –1 and 1 and
should be specified in nondecreasing order. You can set the VGrid
and UGrid parameters simultaneously.
Default: [-1:0.01:1]
sIso = phased.IsotropicAntennaElement;
plotResponse(sIso,1e9,'Unit','pow');
1-608
phased.IsotropicAntennaElement.plotResponse
plotResponse(sIso,1e9,'Unit','dbi');
1-609
phased.IsotropicAntennaElement.plotResponse
sIso = phased.IsotropicAntennaElement(...
'FrequencyRange',[800e6 1.2e9]);
fc = 1e9;
resp = step(sIso,fc,[0;0])
1-610
phased.IsotropicAntennaElement.plotResponse
resp =
plotResponse(sIso,fc,'RespCut','El','Format','Polar');
1-611
phased.IsotropicAntennaElement.plotResponse
sIso = phased.IsotropicAntennaElement(...
'FrequencyRange',[0.8e9 1.2e9]);
1-612
phased.IsotropicAntennaElement.plotResponse
Plot the 3-D response of the antenna at 1 GHz from -30 to 30 degrees in
both azimuth and elevation at 0.1 degree increments.
fc = 1e9;
plotResponse(sIso,fc,'RespCut','3D','Format','Polar',...
'Unit','mag','AzimuthAngles',[-30:.1:30],...
'ElevationAngles',[-30:.1:30]);
1-613
phased.IsotropicAntennaElement.plotResponse
1-614
phased.IsotropicAntennaElement.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-615
phased.IsotropicAntennaElement.step
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Input H
Arguments Antenna element object.
FREQ
Operating frequencies of antenna in hertz. FREQ is a row vector
of length L.
ANG
Directions in degrees. ANG can be either a 2-by-M matrix or a
row vector of length M.
If ANG is a 2-by-M matrix, each column of the matrix specifies the
direction in the form [azimuth; elevation]. The azimuth angle
must be between –180 and 180 degrees, inclusive. The elevation
angle must be between –90 and 90 degrees, inclusive.
If ANG is a row vector of length M, each element specifies a
direction’s azimuth angle. In this case, the corresponding
elevation angle is assumed to be 0.
1-616
phased.IsotropicAntennaElement.step
Output RESP
Arguments Voltage response of antenna element specified as an M-by-L,
complex-valued matrix. In this matrix, M represents the number
of angles specified in ANG while L represents the number of
frequencies specified in FREQ.
ha = phased.IsotropicAntennaElement(...
'FrequencyRange',[800e6 1.2e9]);
fc = 1e9;
resp = step(ha,fc,[0; 0]);
plotResponse(ha,fc,'RespCut','El','Format','Polar');
1-617
phased.IsotropicAntennaElement.step
1-618
phased.LCMVBeamformer
Properties Constraint
Constraint matrix
Specify the constraint matrix used for LCMV beamforming as an
N-by-K matrix. Each column of the matrix is a constraint and N
is the number of elements in the sensor array.
Default: [1; 1]
DesiredResponse
Desired response vector
Specify the desired response used for LCMV beamforming as a
column vector of length K, where K is the number of constraints in
the Constraint property. Each element in the vector defines the
1-619
phased.LCMVBeamformer
DiagonalLoadingFactor
Diagonal loading factor
Specify the diagonal loading factor as a positive scalar. Diagonal
loading is a technique used to achieve robust beamforming
performance, especially when the sample support is small. This
property is tunable.
Default: 0
TrainingInputPort
Add input to specify training data
To specify additional training data, set this property to true and
use the corresponding input argument when you invoke step.
To use the input signal as the training data, set this property to
false.
Default: false
WeightsOutputPort
Output beamforming weights
To obtain the weights used in the beamformer, set this property to
true and use the corresponding output argument when invoking
step. If you do not want to obtain the weights, set this property to
false.
Default: false
1-620
phased.LCMVBeamformer
% Simulate signal
t = (0:1000)';
x = sin(2*pi*0.01*t);
c = 3e8; Fc = 3e8;
incidentAngle = [45; 0];
ha = phased.ULA('NumElements',5);
x = collectPlaneWave(ha,x,incidentAngle,Fc,c);
noise = 0.1*(randn(size(x)) + 1j*randn(size(x)));
rx = x + noise;
% Beamforming
hstv = phased.SteeringVector('SensorArray',ha,...
'PropagationSpeed',c);
hbf = phased.LCMVBeamformer;
hbf.Constraint = step(hstv,Fc,incidentAngle);
hbf.DesiredResponse = 1;
y = step(hbf, rx);
1-621
phased.LCMVBeamformer
% Plot
plot(t,real(rx(:,3)),'r:',t,real(y));
xlabel('Time'); ylabel('Amplitude');
legend('Original','Beamformed');
1-622
phased.LCMVBeamformer
1-623
phased.LCMVBeamformer.clone
Syntax C = clone(H)
1-624
phased.LCMVBeamformer.getNumInputs
Syntax N = getNumInputs(H)
1-625
phased.LCMVBeamformer.getNumOutputs
Syntax N = getNumOutputs(H)
1-626
phased.LCMVBeamformer.isLocked
Syntax TF = isLocked(H)
1-627
phased.LCMVBeamformer.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-628
phased.LCMVBeamformer.step
Syntax Y = step(H,X)
Y = step(H,X,XT)
[Y,W] = step( ___ )
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
% Simulate signal
t = (0:1000)';
x = sin(2*pi*0.01*t);
c = 3e8; Fc = 3e8;
1-629
phased.LCMVBeamformer.step
% Beamforming
hstv = phased.SteeringVector('SensorArray',ha,...
'PropagationSpeed',c);
hbf = phased.LCMVBeamformer;
hbf.Constraint = step(hstv,Fc,incidentAngle);
hbf.DesiredResponse = 1;
y = step(hbf, rx);
1-630
phased.LinearFMWaveform
Properties SampleRate
Sample rate
Specify the sample rate, in hertz, as a positive scalar. The quantity
(SampleRate ./ PRF) is a scalar or vector that must contain only
integers. The default value of this property corresponds to 1 MHz.
Default: 1e6
PulseWidth
Pulse width
Specify the length of each pulse (in seconds) as a positive scalar.
The value must satisfy PulseWidth <= 1./PRF.
Default: 50e-6
1-631
phased.LinearFMWaveform
PRF
Pulse repetition frequency
Specify the pulse repetition frequency (in hertz) as a scalar or a
row vector. The default value of this property corresponds to 10
kHz.
To implement a constant PRF, specify PRF as a positive scalar.
To implement a staggered PRF, specify PRF as a row vector with
positive elements. When PRF is a vector, the output pulses use
successive elements of the vector as the PRF. If the last element
of the vector is reached, the process continues cyclically with the
first element of the vector.
The value of this property must satisfy these constraints:
Default: 1e4
SweepBandwidth
FM sweep bandwidth
Specify the bandwidth of the linear FM sweeping (in hertz) as a
positive scalar. The default value corresponds to 100 kHz.
Default: 1e5
SweepDirection
FM sweep direction
Specify the direction of the linear FM sweep as one of 'Up' or
'Down'.
Default: 'Up'
1-632
phased.LinearFMWaveform
SweepInterval
Location of FM sweep interval
If you set this property value to 'Positive', the waveform sweeps
in the interval between 0 and B, where B is the SweepBandwidth
property value. If you set this property value to 'Symmetric', the
waveform sweeps in the interval between –B/2 and B/2.
Default: 'Positive'
Envelope
Envelope function
Specify the envelope function as one of 'Rectangular' or
'Gaussian’.
Default: 'Rectangular'
OutputFormat
Output signal format
Specify the format of the output signal as one of 'Pulses'
or 'Samples'. When you set the OutputFormat property to
'Pulses', the output of the step method is in the form of multiple
pulses. In this case, the number of pulses is the value of the
NumPulses property.
When you set the OutputFormat property to 'Samples', the
output of the step method is in the form of multiple samples. In
this case, the number of samples is the value of the NumSamples
property.
Default: 'Pulses'
NumSamples
Number of samples in output
1-633
phased.LinearFMWaveform
Default: 100
NumPulses
Number of pulses in output
Specify the number of pulses in the output of the step method as
a positive integer. This property applies only when you set the
OutputFormat property to 'Pulses'.
Default: 1
1-634
phased.LinearFMWaveform
hw = phased.LinearFMWaveform('SweepBandwidth',1e5,...
'PulseWidth',1e-4);
plot(hw);
1-635
phased.LinearFMWaveform
References [1] Levanon, N. and E. Mozeson. Radar Signals. Hoboken, NJ: John
Wiley & Sons, 2004.
1-636
phased.LinearFMWaveform
1-637
phased.LinearFMWaveform.bandwidth
Syntax BW = bandwidth(H)
Description BW = bandwidth(H) returns the bandwidth (in hertz) of the pulses for
the linear FM pulse waveform H. The bandwidth equals the value of the
SweepBandwidth property.
Input H
Arguments Linear FM pulse waveform object.
Output BW
Arguments Bandwidth of the pulses, in hertz.
H = phased.LinearFMWaveform;
bw = bandwidth(H)
1-638
phased.LinearFMWaveform.clone
Syntax C = clone(H)
1-639
phased.LinearFMWaveform.getMatchedFilter
hwav = phased.LinearFMWaveform('PulseWidth',5e-05,...
'SweepBandwidth',1e5,'OutputFormat','Pulses');
coeff = getMatchedFilter(hwav);
stem(real(coeff));
title('Matched filter coefficients, real part');
1-640
phased.LinearFMWaveform.getNumInputs
Syntax N = getNumInputs(H)
1-641
phased.LinearFMWaveform.getNumOutputs
Syntax N = getNumOutputs(H)
1-642
phased.LinearFMWaveform.getStretchProcessor
Syntax HS = getStretchProcessor(H)
HS = getStretchProcessor(H,refrng)
HS = getStretchProcessor(H,refrng,rngspan)
HS = getStretchProcessor(H,refrng,rngspan,v)
Input H
Arguments Linear FM pulse waveform object.
refrng
Reference range, in meters, as a positive scalar.
rngspan
Length of the interval of ranges of interest, in meters, as a positive
scalar. The center of the interval is the range value specified in
the refrng argument.
1-643
phased.LinearFMWaveform.getStretchProcessor
v
Propagation speed, in meters per second, as a positive scalar.
Output HS
Arguments Stretch processor as a phased.StretchProcessor System object.
hwav = phased.LinearFMWaveform;
x = step(hwav);
c = 3e8; r = 4950;
num_sample = r/(c/(2*hwav.SampleRate));
x = circshift(x,num_sample);
hs = getStretchProcessor(hwav,5000,200,c);
y = step(hs,x);
[Pxx,F] = periodogram(y,[],2048,hs.SampleRate,'centered');
plot(F/1000,10*log10(Pxx)); grid;
xlabel('Frequency (kHz)');
ylabel('Power/Frequency (dB/Hz)');
title('Periodogram Power Spectrum Density Estimate');
1-644
phased.LinearFMWaveform.getStretchProcessor
[~,rngidx] = findpeaks(pow2db(Pxx/max(Pxx)),...
'MinPeakHeight',-5);
rngfreq = F(rngidx);
re = stretchfreq2rng(rngfreq,hs.SweepSlope,...
hs.ReferenceRange,c);
1-645
phased.LinearFMWaveform.getStretchProcessor
1-646
phased.LinearFMWaveform.isLocked
Syntax TF = isLocked(H)
1-647
phased.LinearFMWaveform.plot
Syntax plot(Hwav)
plot(Hwav,Name,Value)
plot(Hwav,Name,Value,LineSpec)
h = plot( ___ )
Description plot(Hwav) plots the real part of the waveform specified by Hwav.
plot(Hwav,Name,Value) plots the waveform with additional options
specified by one or more Name,Value pair arguments.
plot(Hwav,Name,Value,LineSpec) specifies the same line color, line
style, or marker options as are available in the MATLAB plot function.
h = plot( ___ ) returns the line handle in the figure.
Input Hwav
Arguments Waveform object. This variable must be a scalar that represents a
single waveform object.
LineSpec
String that specifies the same line color, style, or marker options
as are available in the MATLAB plot function. If you specify a
PlotType value of 'complex', then LineSpec applies to both the
real and imaginary subplots.
Default: 'b'
’PlotType’
1-648
phased.LinearFMWaveform.plot
Specifies whether the function plots the real part, imaginary part,
or both parts of the waveform. Valid values are 'real', 'imag',
and 'complex'.
Default: 'real'
’PulseIdx’
Index of the pulse to plot. This value must be a scalar.
Default: 1
Output h
Arguments Handle to the line or lines in the figure. For a PlotType value of
'complex', h is a column vector. The first and second elements of
this vector are the handles to the lines in the real and imaginary
subplots, respectively.
hw = phased.LinearFMWaveform('SweepBandwidth',1e5,...
'PulseWidth',1e-4);
plot(hw);
1-649
phased.LinearFMWaveform.plot
1-650
phased.LinearFMWaveform.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-651
phased.LinearFMWaveform.reset
Syntax reset(H)
1-652
phased.LinearFMWaveform.step
Syntax Y = step(H)
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
hfmwav = phased.LinearFMWaveform('SweepBandwidth',3e5,...
'OutputFormat','Pulses','SampleRate',1e6,...
'PulseWidth',50e-6,'PRF',1e4);
% use step method to obtain the linear FM waveform
wav = step(hfmwav);
1-653
phased.MatchedFilter
Properties CoefficientsSource
Source of matched filter coefficients
Specify whether the matched filter coefficients come from the
Coefficients property of this object or from an input argument
in step. Values of this property are:
Default: 'Property'
Coefficients
1-654
phased.MatchedFilter
Default: [1;1]
SpectrumWindow
Window for spectrum weighting
Specify the window used for spectrum weighting using one of
'None', 'Hamming', 'Chebyshev', 'Hann', 'Kaiser', 'Taylor',
or 'Custom'. Spectrum weighting is often used with linear FM
waveform to reduce the sidelobes in the time domain. The object
computes the window length internally, to match the FFT length.
Default: 'None'
CustomSpectrumWindow
User-defined window for spectrum weighting
Specify the user-defined window for spectrum weighting using a
function handle or a cell array. This property applies when you
set the SpectrumWindow property to 'Custom'.
If CustomSpectrumWindow is a function handle, the specified
function takes the window length as the input and generates
appropriate window coefficients.
If CustomSpectrumWindow is a cell array, then the first cell must
be a function handle. The specified function takes the window
length as the first input argument, with other additional input
arguments if necessary, and generates appropriate window
coefficients. The remaining entries in the cell array are the
additional input arguments to the function, if any.
Default: @hamming
1-655
phased.MatchedFilter
SpectrumRange
Spectrum window coverage region
Specify the spectrum region on which the spectrum
window is applied as a 1-by-2 vector in the form of
[StartFrequency EndFrequency] (in hertz). This property
applies when you set the SpectrumWindow property to a value
other than 'None'.
Note that both StartFrequency and EndFrequency are measured
in baseband. That is, they are within [-Fs/2 Fs/2], where Fs is
the sample rate that you specify in the SampleRate property.
StartFrequency cannot be larger than EndFrequency.
Default: [0 1e5]
SampleRate
Coefficient sample rate
Specify the matched filter coefficients sample rate (in hertz)
as a positive scalar. This property applies when you set the
SpectrumWindow property to a value other than 'None'.
Default: 1e6
SidelobeAttenuation
Window sidelobe attenuation level
Specify the sidelobe attenuation level (in decibels) of a Chebyshev
or Taylor window as a positive scalar. This property applies
when you set the SpectrumWindow property to 'Chebyshev' or
'Taylor'.
Default: 30
Beta
Kaiser window parameter
1-656
phased.MatchedFilter
Default: 0.5
Nbar
Number of nearly constant sidelobes in Taylor window
Specify the number of nearly constant level sidelobes adjacent
to the mainlobe in a Taylor window as a positive integer. This
property applies when you set the SpectrumWindow property to
'Taylor'.
Default: 4
GainOutputPort
Output gain
To obtain the matched filter gain, set this property to true and
use the corresponding output argument when invoking step.
If you do not want to obtain the matched filter gain, set this
property to false.
Default: false
1-657
phased.MatchedFilter
hw = phased.LinearFMWaveform('PulseWidth',1e-4,'PRF',5e3);
x = step(hw);
hmf = phased.MatchedFilter(...
'Coefficients',getMatchedFilter(hw));
y = step(hmf,x);
subplot(211),plot(real(x));
xlabel('Samples'); ylabel('Amplitude');
title('Input Signal');
subplot(212),plot(real(y));
xlabel('Samples'); ylabel('Amplitude');
title('Matched Filter Output');
1-658
phased.MatchedFilter
hw = phased.LinearFMWaveform('PulseWidth',1e-4,'PRF',5e3);
1-659
phased.MatchedFilter
x = step(hw);
hmf = phased.MatchedFilter(...
'Coefficients',getMatchedFilter(hw),...
'SpectrumWindow','Hamming');
y = step(hmf,x);
subplot(211),plot(real(x));
xlabel('Samples'); ylabel('Amplitude');
title('Input Signal');
subplot(212),plot(real(y));
xlabel('Samples'); ylabel('Amplitude');
title('Matched Filter Output');
1-660
phased.MatchedFilter
Apply the matched filter, using a custom Gaussian window for spectrum
weighting.
hw = phased.LinearFMWaveform('PulseWidth',1e-4,'PRF',5e3);
1-661
phased.MatchedFilter
x = step(hw);
hmf = phased.MatchedFilter(...
'Coefficients',getMatchedFilter(hw),...
'SpectrumWindow','Custom',...
'CustomSpectrumWindow',{@gausswin,2.5});
y = step(hmf,x);
subplot(211),plot(real(x));
xlabel('Samples'); ylabel('Amplitude');
title('Input Signal');
subplot(212),plot(real(y));
xlabel('Samples'); ylabel('Amplitude');
title('Matched Filter Output');
1-662
phased.MatchedFilter
1-663
phased.MatchedFilter
H ’( F ) w( F ) H ( F )
where w(F) is the window and H(F) is the original transfer function.
For further details on matched filter theory, see [1]or [2].
1-664
phased.MatchedFilter.clone
Syntax C = clone(H)
1-665
phased.MatchedFilter.getNumInputs
Syntax N = getNumInputs(H)
1-666
phased.MatchedFilter.getNumOutputs
Syntax N = getNumOutputs(H)
1-667
phased.MatchedFilter.isLocked
Syntax TF = isLocked(H)
Description TF = isLocked(H) returns the locked status, TF, for the MatchedFilter
System object.
The isLocked method returns a logical value that indicates whether
input attributes and nontunable properties for the object are locked. The
object performs an internal initialization the first time the step method
is executed. This initialization locks nontunable properties and input
specifications, such as dimensions, complexity, and data type of the
input data. After locking, the isLocked method returns a true value.
1-668
phased.MatchedFilter.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-669
phased.MatchedFilter.step
Syntax Y = step(H,X)
Y = step(H,X,COEFF)
[Y,GAIN] = step( ___ )
Description Y = step(H,X) applies the matched filtering to the input X and returns
the filtered result in Y. The filter is applied along the first dimension.
Y and X have the same dimensions. The initial transient is removed
from the filtered result.
Y = step(H,X,COEFF) uses the input COEFF as the matched
filter coefficients. This syntax is available when you set the
CoefficientsSource property to 'Input port'.
[Y,GAIN] = step( ___ ) returns additional output GAIN as the gain (in
decibels) of the matched filter. This syntax is available when you set
the GainOutputPort property to true.
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
hfmwav = phased.LinearFMWaveform('SweepBandwidth',3e5,...
'OutputFormat','Pulses','SampleRate',1e6,...
'PulseWidth',50e-6,'PRF',1e4);
% use step method of phased.LinearFMWaveform
1-670
phased.MatchedFilter.step
1-671
phased.MVDRBeamformer
Properties SensorArray
Sensor array
Sensor array specified as an array System object belonging to the
phased package. A sensor array can contain subarrays.
PropagationSpeed
Signal propagation speed
Specify the propagation speed of the signal, in meters per second,
as a positive scalar.
1-672
phased.MVDRBeamformer
OperatingFrequency
System operating frequency
Specify the operating frequency of the beamformer in hertz as a
positive scalar. The default value corresponds to 300 MHz.
Default: 3e8
DiagonalLoadingFactor
Diagonal loading factor
Specify the diagonal loading factor as a positive scalar. Diagonal
loading is a technique used to achieve robust beamforming
performance, especially when the sample support is small. This
property is tunable.
Default: 0
TrainingInputPort
Add input to specify training data
To specify additional training data, set this property to true and
use the corresponding input argument when you invoke step.
To use the input signal as the training data, set this property to
false.
Default: false
DirectionSource
Source of beamforming direction
Specify whether the beamforming direction for the beamformer
comes from the Direction property of this object or from an
input argument in step. Values of this property are:
1-673
phased.MVDRBeamformer
Default: 'Property'
Direction
Beamforming directions
Specify the beamforming directions of the beamformer as a
two-row matrix. Each column of the matrix has the form
[AzimuthAngle; ElevationAngle] (in degrees). Each azimuth angle
must be between –180 and 180 degrees, and each elevation angle
must be between –90 and 90 degrees. This property applies when
you set the DirectionSource property to 'Property'.
Default: [0; 0]
WeightsOutputPort
Output beamforming weights
To obtain the weights used in the beamformer, set this property to
true and use the corresponding output argument when invoking
step. If you do not want to obtain the weights, set this property to
false.
Default: false
1-674
phased.MVDRBeamformer
% Signal simulation
t = (0:1000)';
x = sin(2*pi*0.01*t);
c = 3e8; Fc = 3e8;
incidentAngle = [45; 0];
ha = phased.ULA('NumElements',5);
x = collectPlaneWave(ha,x,incidentAngle,Fc,c);
noise = 0.1*(randn(size(x)) + 1j*randn(size(x)));
rx = x+noise;
% Beamforming
hbf = phased.MVDRBeamformer('SensorArray',ha,...
'PropagationSpeed',c,'OperatingFrequency',Fc,...
'Direction',incidentAngle,'WeightsOutputPort',true);
[y,w] = step(hbf,rx);
% Plot signals
plot(t,real(rx(:,3)),'r:',t,real(y));
xlabel('Time'); ylabel('Amplitude');
legend('Original','Beamformed');
1-675
phased.MVDRBeamformer
1-676
phased.MVDRBeamformer
1-677
phased.MVDRBeamformer.clone
Syntax C = clone(H)
1-678
phased.MVDRBeamformer.getNumInputs
Syntax N = getNumInputs(H)
1-679
phased.MVDRBeamformer.getNumOutputs
Syntax N = getNumOutputs(H)
1-680
phased.MVDRBeamformer.isLocked
Syntax TF = isLocked(H)
1-681
phased.MVDRBeamformer.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-682
phased.MVDRBeamformer.step
Syntax Y = step(H,X)
Y = step(H,X,XT)
Y = step(H,X,ANG)
Y = step(H,X,XT,ANG)
[Y,W] = step( ___ )
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
1-683
phased.MVDRBeamformer.step
Input H
Arguments Beamformer object.
X
Input signal, specified as an M-by-N matrix. If the sensor array
contains subarrays, N is the number of subarrays; otherwise, N
is the number of elements. If you set the TrainingInputPort to
false, M must be larger than N; otherwise, M can be any positive
integer.
XT
Training samples, specified as a P-by-N matrix. If the sensor
array contains subarrays, N is the number of subarrays;
otherwise, N is the number of elements. P must be larger than N.
ANG
Beamforming directions, specified as a two-row matrix. Each
column has the form [AzimuthAngle; ElevationAngle], in degrees.
Each azimuth angle must be between –180 and 180 degrees, and
each elevation angle must be between –90 and 90 degrees.
Output Y
Arguments Beamformed output. Y is an M-by-L matrix, where M is the
number of rows of X and L is the number of beamforming
directions.
W
Beamforming weights. W is an N-by-L matrix, where L is the
number of beamforming directions. If the sensor array contains
subarrays, N is the number of subarrays; otherwise, N is the
number of elements.
% Signal simulation
1-684
phased.MVDRBeamformer.step
t = (0:1000)';
x = sin(2*pi*0.01*t);
c = 3e8; Fc = 3e8;
incidentAngle = [45; 0];
ha = phased.ULA('NumElements',5);
x = collectPlaneWave(ha,x,incidentAngle,Fc,c);
noise = 0.1*(randn(size(x)) + 1j*randn(size(x)));
rx = x+noise;
% Beamforming
hbf = phased.MVDRBeamformer('SensorArray',ha,...
'PropagationSpeed',c,'OperatingFrequency',Fc,...
'Direction',incidentAngle,'WeightsOutputPort',true);
[y,w] = step(hbf,rx);
1-685
phased.MVDREstimator
Properties SensorArray
Handle to sensor array
Specify the sensor array as a handle. The sensor array must be a
phased.ULA object.
PropagationSpeed
Signal propagation speed
Specify the propagation speed of the signal, in meters per second,
as a positive scalar.
1-686
phased.MVDREstimator
OperatingFrequency
System operating frequency
Specify the operating frequency of the system in hertz as a
positive scalar. The default value corresponds to 300 MHz.
Default: 3e8
ForwardBackwardAveraging
Perform forward-backward averaging
Set this property to true to use forward-backward averaging to
estimate the covariance matrix for sensor arrays with conjugate
symmetric array manifold.
Default: false
SpatialSmoothing
Spatial smoothing
Specify the number of averaging used by spatial smoothing to
estimate the covariance matrix as a nonnegative integer. Each
additional smoothing handles one extra coherent source, but
reduces the effective number of element by 1. The maximum
value of this property is M–2, where M is the number of sensors.
ScanAngles
Scan angles
Specify the scan angles (in degrees) as a real vector. The angles
are broadside angles and must be between –90 and 90, inclusive.
You must specify the angles in ascending order.
1-687
phased.MVDREstimator
Default: -90:90
DOAOutputPort
Enable DOA output
To obtain the signal’s direction of arrival (DOA), set this property
to true and use the corresponding output argument when
invoking step. If you do not want to obtain the DOA, set this
property to false.
Default: false
NumSignals
Number of signals
Specify the number of signals for DOA estimation as a
positive scalar integer. This property applies when you set the
DOAOutputPort property to true.
Default: 1
1-688
phased.MVDREstimator
fs = 8000; t = (0:1/fs:1).';
x1 = cos(2*pi*t*300); x2 = cos(2*pi*t*400);
ha = phased.ULA('NumElements',10,'ElementSpacing',1);
ha.Element.FrequencyRange = [100e6 300e6];
fc = 150e6;
x = collectPlaneWave(ha,[x1 x2],[10 20;60 -5]',fc);
% additive noise
noise = 0.1*(randn(size(x))+1i*randn(size(x)));
% construct MVDR estimator object
hdoa = phased.MVDREstimator('SensorArray',ha,...
'OperatingFrequency',fc,...
'DOAOutputPort',true,'NumSignals',2);
% use the MVDREstimator step method to obtain the DOA estimates
[y,doas] = step(hdoa,x+noise);
doas = broadside2az(sort(doas),[20 -5]);
plotSpectrum(hdoa);
1-689
phased.MVDREstimator
1-690
phased.MVDREstimator.clone
Purpose Create MVDR spatial spectrum estimator object with same property
values
Syntax C = clone(H)
1-691
phased.MVDREstimator.getNumInputs
Syntax N = getNumInputs(H)
1-692
phased.MVDREstimator.getNumOutputs
Syntax N = getNumOutputs(H)
1-693
phased.MVDREstimator.isLocked
Syntax TF = isLocked(H)
Description TF = isLocked(H) returns the locked status, TF, for the MVDREstimator
System object.
The isLocked method returns a logical value that indicates whether
input attributes and nontunable properties for the object are locked. The
object performs an internal initialization the first time the step method
is executed. This initialization locks nontunable properties and input
specifications, such as dimensions, complexity, and data type of the
input data. After locking, the isLocked method returns a true value.
1-694
phased.MVDREstimator.plotSpectrum
Syntax plotSpectrum(H)
plotSpectrum(H,Name,Value)
h = plotSpectrum( ___ )
Description plotSpectrum(H) plots the spatial spectrum resulting from the last call
of the step method.
plotSpectrum(H,Name,Value) plots the spatial spectrum with
additional options specified by one or more Name,Value pair
arguments.
h = plotSpectrum( ___ ) returns the line handle in the figure.
Input H
Arguments Spatial spectrum estimator object.
’NormalizeResponse’
Set this value to true to plot the normalized spectrum. Set this
value to false to plot the spectrum without normalizing it.
Default: false
’Title’
String to use as title of figure.
1-695
phased.MVDREstimator.plotSpectrum
’Unit’
The unit of the plot. Valid values are 'db', 'mag', and 'pow'.
Default: 'db'
fs = 8000; t = (0:1/fs:1).';
x1 = cos(2*pi*t*300); x2 = cos(2*pi*t*400);
ha = phased.ULA('NumElements',10,'ElementSpacing',1);
ha.Element.FrequencyRange = [100e6 300e6];
fc = 150e6;
x = collectPlaneWave(ha,[x1 x2],[10 20;60 -5]',fc);
% additive noise
noise = 0.1*(randn(size(x))+1i*randn(size(x)));
% construct MVDR estimator object
hdoa = phased.MVDREstimator('SensorArray',ha,...
'OperatingFrequency',fc,...
'DOAOutputPort',true,'NumSignals',2);
% use the MVDREstimator step method to obtain the DOA estimates
[y,doas] = step(hdoa,x+noise);
doas = broadside2az(sort(doas),[20 -5]);
plotSpectrum(hdoa);
1-696
phased.MVDREstimator.plotSpectrum
1-697
phased.MVDREstimator.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-698
phased.MVDREstimator.reset
Syntax reset(H)
1-699
phased.MVDREstimator.step
Syntax Y = step(H,X)
[Y,ANG] = step(H,X)
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
fs = 8000; t = (0:1/fs:1).';
x1 = cos(2*pi*t*300); x2 = cos(2*pi*t*400);
ha = phased.ULA('NumElements',10,'ElementSpacing',1);
ha.Element.FrequencyRange = [100e6 300e6];
fc = 150e6;
x = collectPlaneWave(ha,[x1 x2],[10 20;60 -5]',fc);
% additive noise
1-700
phased.MVDREstimator.step
noise = 0.1*(randn(size(x))+1i*randn(size(x)));
% construct MVDR estimator object
hdoa = phased.MVDREstimator('SensorArray',ha,...
'OperatingFrequency',fc,...
'DOAOutputPort',true,'NumSignals',2);
% use the MVDREstimator step method to obtain the DOA estimates
[y,doas] = step(hdoa,x+noise);
doas = broadside2az(sort(doas),[20 -5]);
1-701
phased.MVDREstimator2D
1 Define and set up your 2-D MVDR spatial spectrum estimator. See
“Construction” on page 1-702.
Properties SensorArray
Handle to sensor array
Specify the sensor array as a handle. The sensor array must be
an array object in the phased package. The array cannot contain
subarrays.
PropagationSpeed
Signal propagation speed
Specify the propagation speed of the signal, in meters per second,
as a positive scalar.
1-702
phased.MVDREstimator2D
OperatingFrequency
System operating frequency
Specify the operating frequency of the system in hertz as a
positive scalar. The default value corresponds to 300 MHz.
Default: 3e8
ForwardBackwardAveraging
Perform forward-backward averaging
Set this property to true to use forward-backward averaging to
estimate the covariance matrix for sensor arrays with conjugate
symmetric array manifold.
Default: false
AzimuthScanAngles
Azimuth scan angles (degrees)
Specify the azimuth scan angles (in degrees) as a real vector. The
angles must be between –180 and 180, inclusive. You must specify
the angles in ascending order.
Default: -90:90
ElevationScanAngles
Elevation scan angles
Specify the elevation scan angles (in degrees) as a real vector or
scalar. The angles must be between –90 and 90, inclusive. You
must specify the angles in ascending order.
Default: 0
1-703
phased.MVDREstimator2D
DOAOutputPort
Enable DOA output
To obtain the signal’s direction of arrival (DOA), set this property
to true and use the corresponding output argument when
invoking step. If you do not want to obtain the DOA, set this
property to false.
Default: false
NumSignals
Number of signals
Specify the number of signals for DOA estimation as a
positive scalar integer. This property applies when you set the
DOAOutputPort property to true.
Default: 1
1-704
phased.MVDREstimator2D
Examples Estimate the DOAs of two signals received by a 50-element URA with
a rectangular lattice. The antenna operating frequency is 150 MHz.
The actual direction of the first signal is –37 degrees in azimuth and 0
degrees in elevation. The direction of the second signal is 17 degrees
in azimuth and 20 degrees in elevation. This example also plots the
spatial spectrum.
fs = 8000; t = (0:1/fs:1).';
x1 = cos(2*pi*t*300); x2 = cos(2*pi*t*400);
ha = phased.URA('Size',[5 10],'ElementSpacing',[1 0.6]);
ha.Element.FrequencyRange = [100e6 300e6];
fc = 150e6;
x = collectPlaneWave(ha,[x1 x2],[-37 0;17 20]',fc);
% additive noise
noise = 0.1*(randn(size(x))+1i*randn(size(x)));
% construct MVDR DOA estimator for URA
hdoa = phased.MVDREstimator2D('SensorArray',ha,...
'OperatingFrequency',fc,...
'DOAOutputPort',true,'NumSignals',2,...
'AzimuthScanAngles',-50:50,...
'ElevationScanAngles',-30:30);
% use the step method to obtain the output and DOA estimates
[~,doas] = step(hdoa,x+noise);
plotSpectrum(hdoa);
1-705
phased.MVDREstimator2D
1-706
phased.MVDREstimator2D.clone
Purpose Create 2-D MVDR spatial spectrum estimator object with same
property values
Syntax C = clone(H)
1-707
phased.MVDREstimator2D.getNumInputs
Syntax N = getNumInputs(H)
1-708
phased.MVDREstimator2D.getNumOutputs
Syntax N = getNumOutputs(H)
1-709
phased.MVDREstimator2D.isLocked
Syntax TF = isLocked(H)
1-710
phased.MVDREstimator2D.plotSpectrum
Syntax plotSpectrum(H)
plotSpectrum(H,Name,Value)
h = plotSpectrum( ___ )
Description plotSpectrum(H) plots the spatial spectrum resulting from the last call
of the step method.
plotSpectrum(H,Name,Value) plots the spatial spectrum with
additional options specified by one or more Name,Value pair
arguments.
h = plotSpectrum( ___ ) returns the line handle in the figure.
Input H
Arguments Spatial spectrum estimator object.
’NormalizeResponse’
Set this value to true to plot the normalized spectrum. Set this
value to false to plot the spectrum without normalizing it.
Default: false
’Title’
String to use as title of figure.
1-711
phased.MVDREstimator2D.plotSpectrum
’Unit’
The unit of the plot. Valid values are 'db', 'mag', and 'pow'.
Default: 'db'
Examples Estimate the DOAs of two signals received by a 50-element URA with
a rectangular lattice. The antenna operating frequency is 150 MHz.
The actual direction of the first signal is –37 degrees in azimuth and 0
degrees in elevation. The direction of the second signal is 17 degrees in
azimuth and 20 degrees in elevation.
fs = 8000; t = (0:1/fs:1).';
x1 = cos(2*pi*t*300); x2 = cos(2*pi*t*400);
ha = phased.URA('Size',[5 10],'ElementSpacing',[1 0.6]);
ha.Element.FrequencyRange = [100e6 300e6];
fc = 150e6;
x = collectPlaneWave(ha,[x1 x2],[-37 0;17 20]',fc);
% additive noise
noise = 0.1*(randn(size(x))+1i*randn(size(x)));
% construct MVDR DOA estimator for URA
hdoa = phased.MVDREstimator2D('SensorArray',ha,...
'OperatingFrequency',fc,...
'DOAOutputPort',true,'NumSignals',2,...
'AzimuthScanAngles',-50:50,...
'ElevationScanAngles',-30:30);
% use the step method to obtain the output and DOA estimates
[~,doas] = step(hdoa,x+noise);
plotSpectrum(hdoa);
1-712
phased.MVDREstimator2D.plotSpectrum
1-713
phased.MVDREstimator2D.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-714
phased.MVDREstimator2D.reset
Syntax reset(H)
1-715
phased.MVDREstimator2D.step
Syntax Y = step(H,X)
[Y,ANG] = step(H,X)
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Examples Estimate the DOAs of two signals received by a 50-element URA with
a rectangular lattice. The antenna operating frequency is 150 MHz.
The actual direction of the first signal is –37 degrees in azimuth and 0
degrees in elevation. The direction of the second signal is 17 degrees in
azimuth and 20 degrees in elevation.
fs = 8000; t = (0:1/fs:1).';
x1 = cos(2*pi*t*300); x2 = cos(2*pi*t*400);
ha = phased.URA('Size',[5 10],'ElementSpacing',[1 0.6]);
ha.Element.FrequencyRange = [100e6 300e6];
1-716
phased.MVDREstimator2D.step
fc = 150e6;
x = collectPlaneWave(ha,[x1 x2],[-37 0;17 20]',fc);
% additive noise
noise = 0.1*(randn(size(x))+1i*randn(size(x)));
% construct MVDR DOA estimator for URA
hdoa = phased.MVDREstimator2D('SensorArray',ha,...
'OperatingFrequency',fc,...
'DOAOutputPort',true,'NumSignals',2,...
'AzimuthScanAngles',-50:50,...
'ElevationScanAngles',-30:30);
% use the step method to obtain the output and DOA estimates
[~,doas] = step(hdoa,x+noise);
1-717
phased.OmnidirectionalMicrophoneElement
Properties FrequencyRange
Operating frequency range
Specify the operating frequency range (in Hz) of the microphone
element as a 1x2 row vector in the form of [LowerBound
HigherBound]. The microphone element has no response outside
the specified frequency range.
Default: [0 1e20]
BackBaffled
1-718
phased.OmnidirectionalMicrophoneElement
Default: false
h = phased.OmnidirectionalMicrophoneElement(...
1-719
phased.OmnidirectionalMicrophoneElement
'FrequencyRange',[20 2e3]);
fc = [200 300 400];
ang = [0;0];
resp = step(h,fc,ang);
plotResponse(h,200,'RespCut','Az','Format','Polar');
1-720
phased.OmnidirectionalMicrophoneElement.clone
Syntax C = clone(H)
1-721
phased.OmnidirectionalMicrophoneElement.getNumInputs
Syntax N = getNumInputs(H)
1-722
phased.OmnidirectionalMicrophoneElement.getNumOutpu
Syntax N = getNumOutputs(H)
1-723
phased.OmnidirectionalMicrophoneElement.isLocked
Syntax TF = isLocked(H)
1-724
phased.OmnidirectionalMicrophoneElement.isPolarization
h = phased.OmnidirectionalMicrophoneElement;
isPolarizationCapable(h)
ans =
1-725
phased.OmnidirectionalMicrophoneElement.plotResponse
Syntax plotResponse(H,FREQ)
plotResponse(H,FREQ,Name,Value)
hPlot = plotResponse( ___ )
Input H
Arguments Element System object
FREQ
Operating frequency in Hertz specified as a scalar or 1–by-K
row vector. FREQ must lie within the range specified by the
FrequencyVector property of H. If you set the 'RespCut' property
of H to '3D', FREQ must be a scalar. When FREQ is a row vector,
plotResponse draws multiple frequency responses on the same
axes.
’CutAngle’
1-726
phased.OmnidirectionalMicrophoneElement.plotResponse
Default: 0
’Format’
Format of the plot, using one of 'Line', 'Polar', or 'UV'. If you
set Format to 'UV', FREQ must be a scalar.
Default: 'Line'
’NormalizeResponse’
Set this value to true to normalize the response pattern. Set this
value to false to plot the response pattern without normalizing
it. This parameter is not applicable when you set the Unit
parameter value to 'dbi'.
Default: true
’OverlayFreq’
Set this value to true to overlay pattern cuts in a 2-D line plot.
Set this value to false to plot pattern cuts against frequency in a
3-D waterfall plot. If this value is false, FREQ must be a vector
with at least two entries.
This parameter applies only when Format is not 'Polar' and
RespCut is not '3D'.
Default: true
’Polarization’
1-727
phased.OmnidirectionalMicrophoneElement.plotResponse
Default: 'None'
’RespCut’
Cut of the response. Valid values depend on Format, as follows:
1-728
phased.OmnidirectionalMicrophoneElement.plotResponse
Default: 'db'
’AzimuthAngles’
Azimuth angles for plotting element response, specified as a row
vector. The AzimuthAngles parameter sets the display range and
resolution of azimuth angles for visualizing the radiation pattern.
This parameter is allowed only when the RespCut parameter is
set to 'Az' or '3D' and the Format parameter is set to 'Line' or
'Polar'. The values of azimuth angles should lie between –180°
and 180° and must be in nondecreasing order. When you set the
RespCut parameter to '3D', you can set the AzimuthAngles and
ElevationAngles parameters simultaneously.
Default: [-180:180]
’ElevationAngles’
Elevation angles for plotting element response, specified as a row
vector. The ElevationAngles parameter sets the display range
and resolution of elevation angles for visualizing the radiation
pattern. This parameter is allowed only when the RespCut
parameter is set to 'El' or '3D' and the Format parameter
is set to 'Line' or 'Polar'. The values of elevation angles
should lie between –90° and 90° and must be in nondecreasing
order. When you set the RespCut parameter to '3D', you can
set the ElevationAngles and AzimuthAngles parameters
simultaneously.
1-729
phased.OmnidirectionalMicrophoneElement.plotResponse
Default: [-90:90]
’UGrid’
U coordinate values for plotting element response, specified as
a row vector. The UGrid parameter sets the display range and
resolution of the U coordinates for visualizing the radiation
pattern in U/V space. This parameter is allowed only when the
Format parameter is set to 'UV' and the RespCut parameter is
set to 'U' or '3D'. The values of UGrid should be between –1 and
1 and should be specified in nondecreasing order. You can set the
UGrid and VGrid parameters simultaneously.
Default: [-1:0.01:1]
’VGrid’
V coordinate values for plotting element response, specified
as a row vector. The VGrid parameter sets the display range
and resolution of the V coordinates for visualizing the radiation
pattern in U/V space. This parameter is allowed only when the
Format parameter is set to 'UV' and the RespCut parameter is
set to '3D'. The values of VGrid should be between –1 and 1 and
should be specified in nondecreasing order. You can set the VGrid
and UGrid parameters simultaneously.
Default: [-1:0.01:1]
sOmni = phased.OmnidirectionalMicrophoneElement(...
'FrequencyRange',[20 20e3]);
1-730
phased.OmnidirectionalMicrophoneElement.plotResponse
fc = 200;
plotResponse(sOmni,fc,'Unit','mag');
plotResponse(sOmni,fc,'Unit','dbi');
1-731
phased.OmnidirectionalMicrophoneElement.plotResponse
sOmin = phased.OmnidirectionalMicrophoneElement(...
'FrequencyRange',[20 20e3]);
1-732
phased.OmnidirectionalMicrophoneElement.plotResponse
Plot the 3-D response at 500 Hz. Show the response between -30 to 30
degrees in both azimuth and elevation in 0.1 degree increments.
plotResponse(sOmin,500,'Format','Polar',...
'RespCut','3D','Unit','mag',...
'AzimuthAngles',[-30:0.1:30],...
'ElevationAngles',[-30:0.1:30]);
1-733
phased.OmnidirectionalMicrophoneElement.plotResponse
1-734
phased.OmnidirectionalMicrophoneElement.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-735
phased.OmnidirectionalMicrophoneElement.step
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Input H
Arguments Microphone object.
FREQ
Frequencies in hertz. FREQ is a row vector of length L.
ANG
Directions in degrees. ANG can be either a 2-by-M matrix or a
row vector of length M.
If ANG is a 2-by-M matrix, each column of the matrix specifies the
direction in the form [azimuth; elevation]. The azimuth angle
must be between –180 and 180 degrees, inclusive. The elevation
angle must be between –90 and 90 degrees, inclusive.
If ANG is a row vector of length M, each element specifies a
direction’s azimuth angle. In this case, the corresponding
elevation angle is assumed to be 0.
1-736
phased.OmnidirectionalMicrophoneElement.step
Output RESP
Arguments Response of microphone. RESP is an M-by-L matrix that contains
the responses of the microphone element at the M angles specified
in ANG and the L frequencies specified in FREQ.
h = phased.OmnidirectionalMicrophoneElement(...
'FrequencyRange',[20 2e3]);
fc = [200 300 400];
ang = [0;0];
resp = step(h,fc,ang);
plotResponse(h,200,'RespCut','Az','Format','Polar');
1-737
phased.OmnidirectionalMicrophoneElement.step
1-738
phased.PartitionedArray
Properties Array
Array aperture
Specify a phased array as a phased.ULA, phased.URA, or
phased.ConformalArray object.
Default: phased.ULA('NumElements',4)
SubarraySelection
Subarray definition matrix
1-739
phased.PartitionedArray
Default: [1 1 0 0; 0 0 1 1]
SubarraySteering
Subarray steering method
Specify the method of steering the subarray as one of 'None' |
'Phase' | 'Time'.
Default: 'None'
PhaseShifterFrequency
Subarray phase shifter frequency
Specify the operating frequency of phase shifters that perform
subarray steering. The property value is a positive scalar in
hertz. This property applies when you set the SubarraySteering
property to 'Phase'.
Default: 3e8
1-740
phased.PartitionedArray
h = phased.ULA('NumElements',4,'ElementSpacing',0.5);
ha = phased.PartitionedArray('Array',h,...
'SubarraySelection',[1 1 0 0;0 0 1 1]);
Plot the azimuth response of the array. Assume the operating frequency
is 1 GHz and the propagation speed is 3e8 m/s.
plotResponse(ha,1e9,3e8,'RespCut','Az','Format','Polar');
1-741
phased.PartitionedArray
h = phased.ULA('NumElements',4,'ElementSpacing',0.5);
ha = phased.PartitionedArray('Array',h,...
'SubarraySelection',[1 1 0 0;0 0 1 1]);
1-742
phased.PartitionedArray
RESP = step(ha,1e9,[0;0],3e8);
References
[1] Van Trees, H.L. Optimum Array Processing. New York:
Wiley-Interscience, 2002.
1-743
phased.PartitionedArray.clone
Syntax C = clone(H)
1-744
phased.PartitionedArray.collectPlaneWave
Syntax Y = collectPlaneWave(H,X,ANG)
Y = collectPlaneWave(H,X,ANG,FREQ)
Y = collectPlaneWave(H,X,ANG,FREQ,C)
Input H
Arguments Array object.
X
Incoming signals, specified as an M-column matrix. Each column
of X represents an individual incoming signal.
ANG
Directions from which incoming signals arrive, in degrees. ANG
can be either a 2-by-M matrix or a row vector of length M.
If ANG is a 2-by-M matrix, each column specifies the direction of
arrival of the corresponding signal in X. Each column of ANG is in
the form [azimuth; elevation]. The azimuth angle must be
between –180 and 180 degrees, inclusive. The elevation angle
must be between –90 and 90 degrees, inclusive.
If ANG is a row vector of length M, each entry in ANG specifies the
azimuth angle. In this case, the corresponding elevation angle
is assumed to be 0.
FREQ
1-745
phased.PartitionedArray.collectPlaneWave
Default: 3e8
C
Propagation speed of signal in meters per second.
Output Y
Arguments Received signals. Y is an N-column matrix, where N is the number
of subarrays in the array H. Each column of Y is the received
signal at the corresponding subarray, with all incoming signals
combined.
ha = phased.ULA('NumElements',16);
hpa = phased.PartitionedArray('Array',ha,...
'SubarraySelection',....
[1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0;...
0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0;...
0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0;...
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1]);
Y = collectPlaneWave(hpa,randn(4,2),[10 30],...
1e8,physconst('LightSpeed'));
1-746
phased.PartitionedArray.collectPlaneWave
1-747
phased.PartitionedArray.getElementPosition
Input H
Arguments Partitioned array object.
Output POS
Arguments Element positions in array. POS is a 3-by-N matrix, where N is
the number of elements in H. Each column of POS defines the
position of an element in the local coordinate system, in meters,
using the form [x; y; z].
H = phased.PartitionedArray('Array',phased.URA('Size',[2 3]),...
'SubarraySelection',[1 0 1 0 1 0; 0 1 0 1 0 1]);
POS = getElementPosition(H);
1-748
phased.PartitionedArray.getNumElements
Syntax N = getNumElements(H)
Input H
Arguments Partitioned array object.
H = phased.PartitionedArray('Array',phased.URA('Size',[2 3]),...
'SubarraySelection',[1 0 1 0 1 0; 0 1 0 1 0 1]);
N = getNumElements(H);
1-749
phased.PartitionedArray.getNumInputs
Syntax N = getNumInputs(H)
1-750
phased.PartitionedArray.getNumOutputs
Syntax N = getNumOutputs(H)
1-751
phased.PartitionedArray.getNumSubarrays
Syntax N = getNumSubarrays(H)
Input H
Arguments Partitioned array object.
H = phased.PartitionedArray('Array',...
phased.ULA('NumElements',5),...
'SubarraySelection',[1 1 1 0 0; 0 0 1 1 1]);
N = getNumSubarrays(H);
1-752
phased.PartitionedArray.getSubarrayPosition
Input H
Arguments Partitioned array object.
Output POS
Arguments Subarrays positions in array. POS is a 3-by-N matrix, where N is
the number of subarrays in H. Each column of POS defines the
position of a subarray in the local coordinate system, in meters,
using the form [x; y; z].
H = phased.PartitionedArray('Array',phased.URA('Size',[2 3]),...
'SubarraySelection',[1 0 1 0 1 0; 0 1 0 1 0 1]);
POS = getSubarrayPosition(H);
1-753
phased.PartitionedArray.isLocked
Syntax TF = isLocked(H)
1-754
phased.PartitionedArray.isPolarizationCapable
hsd = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[1e9 10e9]);
ha = phased.ULA(4,'Element',hsd);
hp = phased.PartitionedArray('Array',ha,...
'SubarraySelection',[1 1 0 0; 0 0 1 1]);
isPolarizationCapable(hp)
ans =
1-755
phased.PartitionedArray.isPolarizationCapable
The returned value true (1) shows that this array supports
polarization.
1-756
phased.PartitionedArray.plotResponse
Syntax plotResponse(H,FREQ,V)
plotResponse(H,FREQ,V,Name,Value)
hPlot = plotResponse( ___ )
Input H
Arguments Array object.
FREQ
Operating frequency in hertz. Typical values are within the range
specified by a property of H.Array.Element. That property is
named FrequencyRange or FrequencyVector, depending on the
type of element in the array. The element has zero response at
frequencies outside that range. If FREQ is a nonscalar row vector,
the plot shows multiple frequency responses on the same axes.
V
Propagation speed in meters per second.
1-757
phased.PartitionedArray.plotResponse
’CutAngle’
Cut angle specified as a scalar. This argument is applicable only
when RespCut is 'Az' or 'El'. If RespCut is 'Az', CutAngle
must be between –90 and 90. If RespCut is 'El', CutAngle must
be between –180 and 180.
Default: 0
’Format’
Format of the plot, using one of 'Line', 'Polar', or 'UV'. If you
set Format to 'UV', FREQ must be a scalar.
Default: 'Line'
’NormalizeResponse’
Set this value to true to normalize the response pattern. Set this
value to false to plot the response pattern without normalizing
it. This parameter is not applicable when you set the Unit
parameter value to 'dbi'.
Default: true
’OverlayFreq’
Set this value to true to overlay pattern cuts in a 2-D line plot.
Set this value to false to plot pattern cuts against frequency in
a 3-D waterfall plot. If this value is false, then FREQ must be a
vector with at least two entries.
This parameter applies only when Format is not 'Polar' and
RespCut is not '3D'.
Default: true
1-758
phased.PartitionedArray.plotResponse
’Polarization’
Specify the polarization options for plotting the array response
pattern. The allowable values are |'None' | 'Combined' | 'H'
| 'V' | where:
Default: 'None'
’RespCut’
Cut of the response. Valid values depend on Format, as follows:
1-759
phased.PartitionedArray.plotResponse
Default: [0;0]
’Unit’
The unit of the plot. Valid values are 'db', 'mag', 'pow', or 'dbi'.
This parameter determines the type of plot that is produced.
Default: 'db'
’Weights’
Weight values applied to the array, specified as a length-N
column vector or N-by-M matrix. The dimension N is the number
of subarrays in the array. The interpretation of M depends upon
whether the input argument FREQ is a scalar or row vector.
1-760
phased.PartitionedArray.plotResponse
’AzimuthAngles’
Azimuth angles for plotting subarray response, specified as a row
vector. The AzimuthAngles parameter sets the display range and
resolution of azimuth angles for visualizing the radiation pattern.
This parameter is allowed only when the RespCut parameter is
set to 'Az' or '3D' and the Format parameter is set to 'Line' or
'Polar'. The values of azimuth angles should lie between –180°
and 180° and must be in nondecreasing order. When you set the
RespCut parameter to '3D', you can set the AzimuthAngles and
ElevationAngles parameters simultaneously.
Default: [-180:180]
’ElevationAngles’
Elevation angles for plotting subarray response, specified as a row
vector. The ElevationAngles parameter sets the display range
1-761
phased.PartitionedArray.plotResponse
Default: [-90:90]
’UGrid’
U coordinate values for plotting subarray response, specified
as a row vector. The UGrid parameter sets the display range
and resolution of the U coordinates for visualizing the radiation
pattern in U/V space. This parameter is allowed only when the
Format parameter is set to 'UV' and the RespCut parameter is
set to 'U' or '3D'. The values of UGrid should be between –1 and
1 and should be specified in nondecreasing order. You can set the
UGrid and VGrid parameters simultaneously.
Default: [-1:0.01:1]
’VGrid’
V coordinate values for plotting subarray response, specified
as a row vector. The VGrid parameter sets the display range
and resolution of the V coordinates for visualizing the radiation
pattern in U/V space. This parameter is allowed only when the
Format parameter is set to 'UV' and the RespCut parameter is
set to '3D'. The values of VGrid should be between –1 and 1 and
should be specified in nondecreasing order. You can set the VGrid
and UGrid parameters simultaneously.
Default: [-1:0.01:1]
1-762
phased.PartitionedArray.plotResponse
h = phased.ULA('NumElements',4,'ElementSpacing',0.5);
ha = phased.PartitionedArray('Array',h,...
'SubarraySelection',[1 1 0 0;0 0 1 1]);
Plot the azimuth response of the array. Assume the operating frequency
is 1 GHz and the propagation speed is 3e8 m/s.
plotResponse(ha,1e9,3e8,'RespCut','Az','Format','Polar');
1-763
phased.PartitionedArray.plotResponse
1-764
phased.PartitionedArray.plotResponse
fmin = 1e9;
fmax = 6e9;
c = physconst('LightSpeed');
lam = c/fmax;
s_iso = phased.IsotropicAntennaElement(...
'FrequencyRange',[fmin,fmax],...
'BackBaffled',false);
s_ura = phased.URA('Element',s_iso,'Size',[2,6],...
'ElementSpacing',[lam/2,lam/2]);
subarraymap = [[1,1,1,1,0,0,0,0,0,0,0,0];...
[0,0,0,0,1,1,1,1,0,0,0,0];...
[0,0,0,0,0,0,0,0,1,1,1,1]];
s_pa = phased.PartitionedArray('Array',s_ura,...
'SubarraySelection',subarraymap);
Plot the response of the array at 5 GHz over the restricted range of
azimuth angles.
fc = 5e9;
wts = [[1,1,1]',[.862,1.23,.862]'];
plotResponse(s_pa,fc,c,'RespCut','Az',...
'AzimuthAngles',[-50:0.1:50],...
'Unit','db','Format','Polar',...
'Weights',wts);
1-765
phased.PartitionedArray.plotResponse
The plot of the response shows the broadening of the main lobe and the
reduction of the strength of the sidelobes caused by the weight tapering.
Next, plot an azimuth cut of the directivity of the array at 5 GHz
over the restricted range of azimuth angles for the two different sets
of weights.
fc = 5e9;
wts = [[1,1,1]',[.862,1.23,.862]'];
plotResponse(s_pa,fc,c,'RespCut','Az',...
1-766
phased.PartitionedArray.plotResponse
'AzimuthAngles',[-50:0.1:50],...
'Unit','dbi',...
'Weights',wts);
1-767
phased.PartitionedArray.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-768
phased.PartitionedArray.step
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Input H
Arguments Partitioned array object.
FREQ
Operating frequencies of array in hertz. FREQ is a row vector
of length L. Typical values are within the range specified
by a property of H.Array.Element. That property is named
FrequencyRange or FrequencyVector, depending on the type
of element in the array. The element has zero response at
frequencies outside that range.
1-769
phased.PartitionedArray.step
ANG
Directions in degrees. ANG can be either a 2-by-M matrix or a
row vector of length M.
If ANG is a 2-by-M matrix, each column of the matrix specifies the
direction in the form [azimuth; elevation]. The azimuth angle
must be between –180 and 180 degrees, inclusive. The elevation
angle must be between –90 and 90 degrees, inclusive.
If ANG is a row vector of length M, each element specifies a
direction’s azimuth angle. In this case, the corresponding
elevation angle is assumed to be 0.
V
Propagation speed in meters per second. This value must be a
scalar.
STEERANGLE
Subarray steering direction. STEERANGLE can be either a
2-element column vector or a scalar.
If STEERANGLE is a 2-element column vector, it has the form
[azimuth; elevation]. The azimuth angle must be between
–180 and 180 degrees, inclusive. The elevation angle must be
between –90 and 90 degrees, inclusive.
If STEERANGLE is a scalar, it specifies the direction’s azimuth
angle. In this case, the elevation angle is assumed to be 0.
Output RESP
Arguments Voltage responses of the subarrays of a phased array. The output
depends on whether the array supports polarization or not.
1-770
phased.PartitionedArray.step
h = phased.ULA('NumElements',4,'ElementSpacing',0.5);
ha = phased.PartitionedArray('Array',h,...
'SubarraySelection',[1 1 0 0;0 0 1 1]);
RESP = step(ha,1e9,[0;0],3e8);
1-771
phased.PartitionedArray.viewArray
Syntax viewArray(H)
viewArray(H,Name,Value)
hPlot = viewArray( ___ )
Input H
Arguments Array object.
’ShowIndex’
Vector specifying the element indices to show in the figure. Each
number in the vector must be an integer between 1 and the
number of elements. You can also specify the string 'All' to show
indices of all elements of the array or 'None' to suppress indices.
Default: 'None'
’ShowNormals’
1-772
phased.PartitionedArray.viewArray
Default: false
’ShowTaper’
Set this value to true to specify whether to change the element
color brightness in proportion to the element taper magnitude.
When this value is set to false, all elements are drawn with the
same color. The default value is false.
Default: false
’ShowSubarray’
Vector specifying the indices of subarrays to highlight in the
figure. Each number in the vector must be an integer between
1 and the number of subarrays. You can also specify the string
'All' to highlight all subarrays of the array or 'None' to suppress
the subarray highlighting. The highlighting uses different colors
for different subarrays, and white for elements that occur in
multiple subarrays.
Default: 'All'
’Title’
String specifying the title of the plot.
Output hPlot
Arguments Handles of array elements in figure window.
1-773
phased.PartitionedArray.viewArray
h = phased.ULA(16);
ha = phased.PartitionedArray('Array',h,...
'SubarraySelection',...
[1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0;...
0 0 1 1 1 1 0 0 0 0 0 0 0 0 0 0;...
0 0 0 0 1 1 1 1 0 0 0 0 0 0 0 0;...
0 0 0 0 0 0 0 0 1 1 1 1 0 0 0 0;...
0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1]);
viewArray(ha);
1-774
phased.PartitionedArray.viewArray
1-775
phased.PartitionedArray.viewArray
1-776
phased.PartitionedArray.viewArray
1-777
phased.PartitionedArray.viewArray
1-778
phased.PhaseCodedWaveform
Properties SampleRate
Sample rate
Specify the sample rate in hertz as a positive scalar. The default
value of this property corresponds to 1 MHz. The value of this
property must satisfy these constraints:
Default: 1e6
1-779
phased.PhaseCodedWaveform
Code
Phase code type
Specify the phase code type used in phase modulation. Valid
values are:
• 'Barker'
• 'Frank'
• 'P1'
• 'P2'
• 'P3'
• 'P4'
• 'Px'
• 'Zadoff-Chu'
Default: 'Frank'
ChipWidth
Duration of each chip
Specify the duration of each chip in a phase-coded waveform in
seconds as a positive scalar.
The value of this property must satisfy these constraints:
Default: 1e-5
NumChips
Number of chips
1-780
phased.PhaseCodedWaveform
Default: 4
SequenceIndex
Zadoff-Chu sequence index
Specify the sequence index used in Zadoff-Chu code as a positive
integer. This property applies only when you set the Code
property to 'Zadoff-Chu'. The value of SequenceIndex must be
relatively prime to the value of the NumChips property.
Default: 1
PRF
Pulse repetition frequency
Specify the pulse repetition frequency (in hertz) as a scalar or a
row vector. The default value of this property corresponds to 10
kHz.
To implement a constant PRF, specify PRF as a positive scalar.
To implement a staggered PRF, specify PRF as a row vector with
positive elements. When PRF is a vector, the output pulses use
1-781
phased.PhaseCodedWaveform
Default: 1e4
OutputFormat
Output signal format
Specify the format of the output signal as one of 'Pulses'
or 'Samples'. When you set the OutputFormat property to
'Pulses', the output of the step method is in the form of multiple
pulses. In this case, the number of pulses is the value of the
NumPulses property.
When you set the OutputFormat property to 'Samples', the
output of the step method is in the form of multiple samples. In
this case, the number of samples is the value of the NumSamples
property.
Default: 'Pulses'
NumSamples
Number of samples in output
Specify the number of samples in the output of the step method
as a positive integer. This property applies only when you set the
OutputFormat property to 'Samples'.
Default: 100
1-782
phased.PhaseCodedWaveform
NumPulses
Number of pulses in output
Specify the number of pulses in the output of the step method as
a positive integer. This property applies only when you set the
OutputFormat property to 'Pulses'.
Default: 1
Examples Create and plot a phase-coded pulse waveform that uses the Zadoff-Chu
code.
1-783
phased.PhaseCodedWaveform
hw = phased.PhaseCodedWaveform('Code','Zadoff-Chu',...
'ChipWidth',1e-6,'NumChips',16,...
'OutputFormat','Pulses','NumPulses',2);
plot(hw);
hw = phased.PhaseCodedWaveform('Code','Zadoff-Chu',...
1-784
phased.PhaseCodedWaveform
'ChipWidth',1e-6,'NumChips',16,...
'OutputFormat','Pulses','NumPulses',2);
x = step(hw);
figure;
plot(real(x)); title('Waveform Output, Real Part');
xlabel('Samples'); ylabel('Amplitude (V)');
1-785
phased.PhaseCodedWaveform
References [1] Levanon, N. and E. Mozeson. Radar Signals. Hoboken, NJ: John
Wiley & Sons, 2004.
1-786
phased.PhaseCodedWaveform.bandwidth
Syntax BW = bandwidth(H)
Input H
Arguments Phase-coded waveform object.
Output BW
Arguments Bandwidth of the pulses, in hertz.
H = phased.PhaseCodedWaveform;
bw = bandwidth(H);
1-787
phased.PhaseCodedWaveform.clone
Syntax C = clone(H)
1-788
phased.PhaseCodedWaveform.getMatchedFilter
Input H
Arguments Phase-coded waveform object.
Output Coeff
Arguments Column vector containing coefficients of the matched filter for H.
Examples Get the matched filter coefficients for a phase-coded pulse waveform
that uses the Zadoff-Chu code.
hwav = phased.PhaseCodedWaveform('Code','Zadoff-Chu',...
'ChipWidth',1e-6,'NumChips',16,...
'OutputFormat','Pulses','NumPulses',2);
coeff = getMatchedFilter(hwav);
stem(real(coeff));
title('Matched Filter Coefficients, Real Part');
axis([0 17 -1.1 1.1])
1-789
phased.PhaseCodedWaveform.getMatchedFilter
1-790
phased.PhaseCodedWaveform.getNumInputs
Syntax N = getNumInputs(H)
1-791
phased.PhaseCodedWaveform.getNumOutputs
Syntax N = getNumOutputs(H)
1-792
phased.PhaseCodedWaveform.isLocked
Syntax TF = isLocked(H)
1-793
phased.PhaseCodedWaveform.plot
Syntax plot(Hwav)
plot(Hwav,Name,Value)
plot(Hwav,Name,Value,LineSpec)
h = plot( ___ )
Description plot(Hwav) plots the real part of the waveform specified by Hwav.
plot(Hwav,Name,Value) plots the waveform with additional options
specified by one or more Name,Value pair arguments.
plot(Hwav,Name,Value,LineSpec) specifies the same line color, line
style, or marker options as are available in the MATLAB plot function.
h = plot( ___ ) returns the line handle in the figure.
Input Hwav
Arguments Waveform object. This variable must be a scalar that represents a
single waveform object.
LineSpec
String that specifies the same line color, style, or marker options
as are available in the MATLAB plot function. If you specify a
PlotType value of 'complex', then LineSpec applies to both the
real and imaginary subplots.
Default: 'b'
’PlotType’
1-794
phased.PhaseCodedWaveform.plot
Specifies whether the function plots the real part, imaginary part,
or both parts of the waveform. Valid values are 'real', 'imag',
and 'complex'.
Default: 'real'
’PulseIdx’
Index of the pulse to plot. This value must be a scalar.
Default: 1
Output h
Arguments Handle to the line or lines in the figure. For a PlotType value of
'complex', h is a column vector. The first and second elements of
this vector are the handles to the lines in the real and imaginary
subplots, respectively.
Examples Create and plot a phase-coded pulse waveform that uses the Zadoff-Chu
code.
hw = phased.PhaseCodedWaveform('Code','Zadoff-Chu',...
'ChipWidth',1e-6,'NumChips',16,...
'OutputFormat','Pulses','NumPulses',2);
plot(hw);
1-795
phased.PhaseCodedWaveform.plot
1-796
phased.PhaseCodedWaveform.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-797
phased.PhaseCodedWaveform.reset
Syntax reset(H)
1-798
phased.PhaseCodedWaveform.step
Syntax Y = step(H)
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Input H
Arguments Phase-coded waveform object.
Output Y
Arguments Column vector containing the waveform samples.
hw = phased.PhaseCodedWaveform('Code','Zadoff-Chu',...
'ChipWidth',1e-6,'NumChips',16,...
'OutputFormat','Pulses','NumPulses',2);
x = step(hw);
figure;
plot(real(x)); title('Waveform Output, Real Part');
xlabel('Samples'); ylabel('Amplitude (V)');
1-799
phased.PhaseCodedWaveform.step
1-800
phased.PhaseShiftBeamformer
Properties SensorArray
Sensor array
Sensor array specified as an array System object belonging to the
phased package. A sensor array can contain subarrays.
PropagationSpeed
Signal propagation speed
Specify the propagation speed of the signal, in meters per second,
as a positive scalar.
1-801
phased.PhaseShiftBeamformer
OperatingFrequency
System operating frequency
Specify the operating frequency of the beamformer in hertz as a
scalar. The default value of this property corresponds to 300 MHz.
Default: 3e8
DirectionSource
Source of beamforming direction
Specify whether the beamforming direction for the beamformer
comes from the Direction property of this object or from an
input argument in step. Values of this property are:
Default: 'Property'
Direction
Beamforming directions
Specify the beamforming directions of the beamformer as a
two-row matrix. Each column of the matrix has the form
[AzimuthAngle; ElevationAngle] (in degrees). Each azimuth angle
must be between –180 and 180 degrees, and each elevation angle
must be between –90 and 90 degrees. This property applies when
you set the DirectionSource property to 'Property'.
Default: [0; 0]
WeightsNormalization
1-802
phased.PhaseShiftBeamformer
Default: 'Distortionless'
WeightsOutputPort
Output beamforming weights
To obtain the weights used in the beamformer, set this property to
true and use the corresponding output argument when invoking
step. If you do not want to obtain the weights, set this property to
false.
Default: false
1-803
phased.PhaseShiftBeamformer
% Simulate signal
t = (0:1000)';
x = sin(2*pi*0.01*t);
c = 3e8; Fc = 3e8;
incidentAngle = [45; 0];
ha = phased.ULA('NumElements',5);
x = collectPlaneWave(ha,x,incidentAngle,Fc,c);
noise = 0.1*(randn(size(x)) + 1j*randn(size(x)));
rx = x + noise;
% Beamforming
hbf = phased.PhaseShiftBeamformer('SensorArray',ha,...
'OperatingFrequency',Fc,'PropagationSpeed',c,...
'Direction',incidentAngle,'WeightsOutputPort',true);
[y,w] = step(hbf,rx);
% Plot signals
plot(t,real(rx(:,3)),'r:',t,real(y));
xlabel('Time'); ylabel('Amplitude');
legend('Original','Beamformed');
1-804
phased.PhaseShiftBeamformer
1-805
phased.PhaseShiftBeamformer
1-806
phased.PhaseShiftBeamformer
1-807
phased.PhaseShiftBeamformer.clone
Purpose Create phase shift beamformer object with same property values
Syntax C = clone(H)
1-808
phased.PhaseShiftBeamformer.getNumInputs
Syntax N = getNumInputs(H)
1-809
phased.PhaseShiftBeamformer.getNumOutputs
Syntax N = getNumOutputs(H)
1-810
phased.PhaseShiftBeamformer.isLocked
Syntax TF = isLocked(H)
1-811
phased.PhaseShiftBeamformer.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-812
phased.PhaseShiftBeamformer.step
Syntax Y = step(H,X)
Y = step(H,X,ANG)
[Y,W] = step( ___ )
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Input H
Arguments Beamformer object.
X
Input signal, specified as an M-by-N matrix. If the sensor array
contains subarrays, N is the number of subarrays; otherwise, N is
the number of elements.
ANG
Beamforming directions, specified as a two-row matrix. Each
column has the form [AzimuthAngle; ElevationAngle], in degrees.
1-813
phased.PhaseShiftBeamformer.step
Each azimuth angle must be between –180 and 180 degrees, and
each elevation angle must be between –90 and 90 degrees.
Output Y
Arguments Beamformed output. Y is an M-by-L matrix, where M is the
number of rows of X and L is the number of beamforming
directions.
W
Beamforming weights. W is an N-by-L matrix, where L is the
number of beamforming directions. If the sensor array contains
subarrays, N is the number of subarrays; otherwise, N is the
number of elements.
% Simulate signal
t = (0:1000)';
x = sin(2*pi*0.01*t);
c = 3e8; Fc = 3e8;
incidentAngle = [45; 0];
ha = phased.ULA('NumElements',5);
x = collectPlaneWave(ha,x,incidentAngle,Fc,c);
noise = 0.1*(randn(size(x)) + 1j*randn(size(x)));
rx = x + noise;
% Beamforming
hbf = phased.PhaseShiftBeamformer('SensorArray',ha,...
'OperatingFrequency',Fc,'PropagationSpeed',c,...
'Direction',incidentAngle,'WeightsOutputPort',true);
[y,w] = step(hbf,rx);
1-814
phased.PhaseShiftBeamformer.step
1-815
phased.Platform
Properties InitialPosition
Initial position of platform
Specify the initial position of the platform as a 3-by-1 column
vector in the form of [x; y; z] (in meters).
Default: [0; 0; 0]
Velocity
1-816
phased.Platform
Velocity of platform
Specify the current velocity of the platform as a 3-by-1 vector
in the form of [x; y; z] (in meters/second). This property is
tunable.
Default: [0; 0; 0]
OrientationAxes
Orientation axes of platform
Specify the three axes that define the local (x, y, z) coordinate
system at the platform as a 3-by-3 matrix (one axis in each
column). The three axes must be orthonormal.
OrientationAxesOutputPort
Output orientation axes
To obtain the orientation axes of the platform, set this property to
true and use the corresponding output argument when invoking
step. If you do not want to obtain the orientation axes of the
platform, set this property to false.
Default: false
1-817
phased.Platform
1-818
phased.Platform.clone
Syntax C = clone(H)
1-819
phased.Platform.getNumInputs
Syntax N = getNumInputs(H)
1-820
phased.Platform.getNumOutputs
Syntax N = getNumOutputs(H)
1-821
phased.Platform.isLocked
Syntax TF = isLocked(H)
Description TF = isLocked(H) returns the locked status, TF, for the Platform
System object.
The isLocked method returns a logical value that indicates whether
input attributes and nontunable properties for the object are locked. The
object performs an internal initialization the first time the step method
is executed. This initialization locks nontunable properties and input
specifications, such as dimensions, complexity, and data type of the
input data. After locking, the isLocked method returns a true value.
1-822
phased.Platform.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-823
phased.Platform.reset
Syntax reset(H)
1-824
phased.Platform.step
Description [P,V] = step(H,T) returns the current position, P, and the current
velocity, V, of the platform. The method then updates the position and
velocity using the equation P = P+VT where T specifies the elapsed time
(in seconds) for the current step.
[P,V,AX] = step(H,T) returns the additional output
AX as the platform’s orientation axes when you set the
OrientationAxesOutputPort property to true.
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Examples Define a platform at origin with a velocity of [100; 100; 0] in meters per
second. Simulate the motion of the platform for 2 steps, assuming the
time elapsed for each step is 1 second.
1-825
phased.RadarTarget
Properties EnablePolarization
Allow polarized signals
Set this property to true to allow the target to simulate the
reflection of polarized radiation. Set this property to false to
ignore polarization.
Default: false
Mode
Target scattering mode
Target scattering mode specified as one of 'Monostatic' or
'Bistatic'. If you set this property to 'Monostatic', the signal’s
reflection direction is the opposite to its incoming direction. If you
set this property to 'Bistatic', the signal’s reflection direction
1-826
phased.RadarTarget
Default: 'Monostatic'
ScatteringMatrixSource
Source of target mean scattering matrix
Source of target mean scattering matrix specified as
one of 'Property' or 'Input port'. If you set the
ScatteringMatrixSource property to 'Property', the target’s
mean scattering matrix is determined by the value of the
ScatteringMatrix property. If you set this property to 'Input
port', the mean scattering matrix is determined by an input
argument of the step method. This property applies only when
you set the EnablePolarization property to true. When
the EnablePolarization property is set to false, use the
MeanRCSSource property instead, together with the MeanRCS
property, if needed.
Default: 'Property'
ScatteringMatrix
Mean radar scattering matrix
Mean radar scattering matrix specified as a 2-by-2 matrix.
This matrix represents the mean value of the target’s radar
cross-section (in square meters). The matrix has the form
[s_hh s_hv;s_vh s_vv]. In this matrix, the component s_hv
specifies the complex scattering response when the input signal
is vertically polarized and the reflected signal is horizontally
polarized. The other components are defined similarly. This
property applies when you set the ScatteringMatrixSource
property to 'Property' and the EnablePolarization property
to true. When the EnablePolarization property is set to
false, use the MeanRCS property instead, together with the
MeanRCSSource property. This property is tunable.
1-827
phased.RadarTarget
Default: [1 0;0 1]
MeanRCSSource
Source of mean radar cross section
Specify whether the target’s mean RCS value comes from the
MeanRCS property of this object or from an input argument in
step. Values of this property are:
Default: 'Property'
MeanRCS
Mean radar cross section
Specify the mean value of the target’s radar cross section (in
square meters) as a nonnegative scalar. This property applies
when the MeanRCSSource property is 'Property'. This property
is tunable.
When EnablePolarization property is set to true,
use the ScatteringMatrix property together with the
ScatteringMatrixSource.
Default: 1
Model
Target statistical model
1-828
phased.RadarTarget
Default: 'Nonfluctuating'
PropagationSpeed
Signal propagation speed
Specify the propagation speed of the signal, in meters per second,
as a positive scalar.
OperatingFrequency
Signal carrier frequency
Specify the carrier frequency of the signal you are reflecting from
the target, as a scalar in hertz. The default value of this property
corresponds to 300 MHz.
Default: 3e8
SeedSource
Source of seed for random number generator
Specify how the object generates random numbers. Values of this
property are:
1-829
phased.RadarTarget
Default: 'Auto'
Seed
Seed for random number generator
Specify the seed for the random number generator as a scalar
integer between 0 and 232–1. This property applies when you set
the SeedSource property to 'Property'.
Default: 0
1-830
phased.RadarTarget
x = ones(10,1);
hr = phased.RadarTarget('Model','Nonfluctuating','MeanRCS',10);
y = step(hr,x);
Y GX
where:
4
G
2
• σ is the mean RCS of the target
• λ is the wavelength of the incoming signal
Each element of the signal incident on the target is scaled by the gain
factor.
For polarized waves, the scattering equation is more complicated. The
single scalar signal, X, is replaced by a vector signal, (EH, EV), with
horizontal and vertical components. A scattering matrix, S, replaces
the scalar cross-section, σ. Through the scattering matrix, the incident
1-831
phased.RadarTarget
horizontal and vertical polarized signals are converted into the reflected
horizontal and vertical polarized signals
References [1] Mott, H., Antennas for Radar and Communications, John Wiley &
Sons, 1992.
1-832
phased.RadarTarget.clone
Syntax C = clone(H)
1-833
phased.RadarTarget.getNumInputs
Syntax N = getNumInputs(H)
1-834
phased.RadarTarget.getNumOutputs
Syntax N = getNumOutputs(H)
1-835
phased.RadarTarget.isLocked
Syntax TF = isLocked(H)
1-836
phased.RadarTarget.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-837
phased.RadarTarget.reset
Syntax reset(H)
Description reset(H) resets the states of the RadarTarget object, H. This method
resets the random number generator state if the SeedSource property
is applicable and has the value 'Property'.
1-838
phased.RadarTarget.step
Syntax Y = step(H,X)
Y = step(H,X,MEANRCS)
Y = step(H,X,UPDATERCS)
Y = step(H,X,MEANRCS,UPDATERCS)
Y = step(H,X,ANGLE_IN,LAXES)
Y = step(H,X,ANGLE_IN,ANGLE_OUT,LAXES)
Y = step(H,X,ANGLE_IN,LAXES,SMAT)
Y = step(H,X,ANGLE_IN,LAXES,UPDATESMAT)
Y = step(H,X,ANGLE_IN,ANGLE_OUT,LAXES,SMAT,UPDATESMAT)
1-839
phased.RadarTarget.step
1-840
phased.RadarTarget.step
1-841
phased.RadarTarget.step
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Examples Reflect a 250-Hz sine wave with unit amplitude off a target with a
nonfluctuating RCS of 2 m2. The carrier frequency of the sine wave is
1 GHz.
htarget = phased.RadarTarget('Model','nonfluctuating',...
'MeanRCS',2,'OperatingFrequency',1e9);
t = linspace(0,1,1000);
sig = cos(2*pi*250*t)';
reflectedsig = step(htarget,sig);
Y GX
where:
4
G
2
• σ is the mean RCS of the target
• λ is the wavelength of the incoming signal
1-842
phased.RadarTarget.step
Each element of the signal incident on the target is scaled by the gain
factor.
For polarized waves, the scattering equation is more complicated. The
single scalar signal, X, is replaced by a vector signal, (EH, EV), with
horizontal and vertical components. A scattering matrix, S, replaces
the scalar cross-section, σ. Through the scattering matrix, the incident
horizontal and vertical polarized signals are converted into the reflected
horizontal and vertical polarized signals
References [1] Mott, H. Antennas for Radar and Communications.John Wiley &
Sons, 1992.
1-843
phased.Radiator
Properties Sensor
Sensor element or sensor array
Sensor element or sensor array specified as a System object in
the Phased Array System Toolbox. A sensor array can contain
subarrays.
1-844
phased.Radiator
PropagationSpeed
Signal propagation speed
Specify the propagation speed of the signal, in meters per second,
as a positive scalar.
OperatingFrequency
System operating frequency
Specify the operating frequency of the system in hertz as a
positive scalar. The default value corresponds to 300 MHz.
Default: 3e8
CombineRadiatedSignals
Combine radiated signals
Set this property to true to combine radiated signals from all
radiating elements. Set this property to false to obtain the
radiated signal for each radiating element. If the Sensor property
is an array that contains subarrays, the CombineRadiatedSignals
property must be true.
Default: true
EnablePolarization
Enable Polarization
Set this property to true to simulate the radiation of polarized
waves. Set this property to false to ignore polarization. This
property applies when the sensor specified in the Sensor property
is capable of simulating polarization.
1-845
phased.Radiator
Default: false
WeightsInputPort
Enable weights input
To specify weights, set this property to true and then use the
corresponding input argument when you invoke step. If you do
not want to specify weights, set this property to false.
Default: false
ha = phased.IsotropicAntennaElement;
hr = phased.Radiator('Sensor',ha,'OperatingFrequency',300e6);
x = [1;1];
radiatingAngle = [30 10]';
y = step(hr,x,radiatingAngle);
1-846
phased.Radiator
ha = phased.ULA('NumElements',5);
hr = phased.Radiator('Sensor',ha,'OperatingFrequency',300e6);
x = [1;1];
radiatingAngle = [30 10; 20 0]'; % two directions
y = step(hr,x,radiatingAngle);
ha = phased.ULA('NumElements',3);
hr = phased.Radiator('Sensor',ha,'OperatingFrequency',1e9,...
'CombineRadiatedSignals',false);
x = [1 2 3;1 2 3];
radiatingAngle = [10 0; 20 5; 45 2]'; % One angle for one antenna
y = step(hr,x,radiatingAngle);
1-847
phased.Radiator.clone
Syntax C = clone(H)
1-848
phased.Radiator.getNumInputs
Syntax N = getNumInputs(H)
1-849
phased.Radiator.getNumOutputs
Syntax N = getNumOutputs(H)
1-850
phased.Radiator.isLocked
Syntax TF = isLocked(H)
Description TF = isLocked(H) returns the locked status, TF, for the Radiator
System object.
The isLocked method returns a logical value that indicates whether
input attributes and nontunable properties for the object are locked. The
object performs an internal initialization the first time the step method
is executed. This initialization locks nontunable properties and input
specifications, such as dimensions, complexity, and data type of the
input data. After locking, the isLocked method returns a true value.
1-851
phased.Radiator.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-852
phased.Radiator.step
Syntax Y = step(H,X,ANG)
Y = step(H,X,ANG,LAXES)
Y = step(H,X,ANG,WEIGHTS)
Y = step(H,X,ANG,STEERANGLE)
Y = step(H,X,ANG,LAXES,WEIGHTS,STEERANGLE)
1-853
phased.Radiator.step
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Input H
Arguments Radiator object.
X
Signals to radiate. X can be either a vector or a matrix.
If X is a vector, that vector is radiated through all radiating
elements or subarrays. The computation does not divide the
signal’s power among elements or subarrays, but rather treats
the X vector the same as a matrix in which each column equals
this vector.
If X is a matrix, the number of columns of X must equal the
number of subarrays if H.Sensor is an array that contains
subarrays, or the number of radiating elements otherwise. Each
column of X is radiated by the corresponding element or subarray.
ANG
Radiating directions of signals. ANG is a two-row matrix. Each
column specifies a radiating direction in the form [AzimuthAngle;
ElevationAngle], in degrees.
LAXES
1-854
phased.Radiator.step
Output Y
Arguments Radiated signals
1-855
phased.Radiator.step
ha = phased.ULA('NumElements',5);
% construct the radiator object
hr = phased.Radiator('Sensor',ha,...
'OperatingFrequency',300e6,'CombineRadiatedSignals',true);
% simple signal to radiate
x = [1;1];
% radiating direction in azimuth and elevation
radiatingAngle = [30; 10];
% use the step method to radiate the signal
y = step(hr,x,radiatingAngle);
hsd = phased.ShortDipoleAntennaElement;
ha = phased.ULA('Element',hsd,'NumElements',5);
hr = phased.Radiator('Sensor',ha,...
'OperatingFrequency',300e6,'CombineRadiatedSignals',true,'EnablePolar
x = [1;1];
radiatingAngle = [30 30; 0 20];
y = step(hr,x,radiatingAngle,rotx(10))
y =
1-856
phased.Radiator.step
X
Y
Z
1-857
phased.RangeDopplerResponse
Properties RangeMethod
Method of range processing
Specify the method of range processing as 'Matched filter'
or 'Dechirp'.
1-858
phased.RangeDopplerResponse
PropagationSpeed
Signal propagation speed
Specify the propagation speed of the signal, in meters per second,
as a positive scalar.
SampleRate
Sample rate
Specify the sample rate, in hertz, as a positive scalar. The default
value corresponds to 1 MHz.
Default: 1e6
SweepSlope
FM sweep slope
Specify the slope of the linear FM sweeping, in hertz per second,
as a scalar. The x data you provide to step or plotResponse must
correspond to sweeps having this slope.
1-859
phased.RangeDopplerResponse
This property applies only when you set the RangeMethod property
to 'Dechirp'.
Default: 1e9
DechirpInput
Whether to dechirp input signal
Set this property to true to have the range-Doppler response
object dechirp the input signal. Set this property to false to
indicate that the input signal is already dechirped and no dechirp
operation is necessary. This property applies only when you set
the RangeMethod property to 'Dechirp'.
Default: false
DecimationFactor
Decimation factor for dechirped signal
Specify the decimation factor for the dechirped signal as a
positive integer. When processing FMCW signals, you can often
decimate the dechirped signal to reduce the requirements on the
analog-to-digital converter.
This property applies only when you set the RangeMethod
property to 'Dechirp' and the DechirpInput property to true.
The default value indicates no decimation.
Default: 1
RangeFFTLengthSource
Source of FFT length in range processing
Specify how the object determines the FFT length in range
processing. Values of this property are:
1-860
phased.RangeDopplerResponse
This property applies only when you set the RangeMethod property
to 'Dechirp'.
Default: 'Auto'
RangeFFTLength
FFT length in range processing
Specify the FFT length in the range domain as a positive integer.
This property applies only when you set the RangeMethod
property to 'Dechirp' and the RangeFFTLengthSource property
to 'Property'.
Default: 1024
RangeWindow
Window for range weighting
Specify the window used for range processing using one of
'None', 'Hamming', 'Chebyshev', 'Hann', 'Kaiser', 'Taylor',
or 'Custom'. If you set this property to 'Taylor', the generated
Taylor window has four nearly constant sidelobes adjacent to
the mainlobe. This property applies only when you set the
RangeMethod property to 'Dechirp'.
Default: 'None'
RangeSidelobeAttenuation
Sidelobe attenuation level for range processing
1-861
phased.RangeDopplerResponse
Default: 30
CustomRangeWindow
User-defined window for range processing
Specify the user-defined window for range processing using
a function handle or a cell array. This property applies only
when you set the RangeMethod property to 'Dechirp' and the
RangeWindow property to 'Custom'.
If CustomRangeWindow is a function handle, the specified function
takes the window length as the input and generates appropriate
window coefficients.
If CustomRangeWindow is a cell array, then the first cell must
be a function handle. The specified function takes the window
length as the first input argument, with other additional input
arguments, if necessary. The function then generates appropriate
window coefficients. The remaining entries in the cell array are
the additional input arguments to the function, if any.
Default: @hamming
DopplerFFTLengthSource
Source of FFT length in Doppler processing
Specify how the object determines the FFT length in Doppler
processing. Values of this property are:
1-862
phased.RangeDopplerResponse
This property applies only when you set the RangeMethod property
to 'Dechirp'.
Default: 'Auto'
DopplerFFTLength
FFT length in Doppler processing
Specify the FFT length in Doppler processing as a positive integer.
This property applies only when you set the RangeMethod property
to 'Dechirp' and the DopplerFFTLengthSource property to
'Property'.
Default: 1024
DopplerWindow
Window for Doppler weighting
Specify the window used for Doppler processing using one of
'None', 'Hamming', 'Chebyshev', 'Hann', 'Kaiser', 'Taylor',
or 'Custom'. If you set this property to 'Taylor', the generated
Taylor window has four nearly constant sidelobes adjacent to
the mainlobe. This property applies only when you set the
RangeMethod property to 'Dechirp'.
Default: 'None'
DopplerSidelobeAttenuation
Sidelobe attenuation level for Doppler processing
1-863
phased.RangeDopplerResponse
Default: 30
CustomDopplerWindow
User-defined window for Doppler processing
Specify the user-defined window for Doppler processing using
a function handle or a cell array. This property applies only
when you set the RangeMethod property to 'Dechirp' and the
DopplerWindow property to 'Custom'.
If CustomDopplerWindow is a function handle, the specified
function takes the window length as the input and generates
appropriate window coefficients.
If CustomDopplerWindow is a cell array, then the first cell must
be a function handle. The specified function takes the window
length as the first input argument, with other additional input
arguments, if necessary. The function then generates appropriate
window coefficients. The remaining entries in the cell array are
the additional input arguments to the function, if any.
Default: @hamming
DopplerOutput
Doppler domain output
Specify the Doppler domain output as 'Frequency' or 'Speed'.
The Doppler domain output is the DOP_GRID argument of step.
1-864
phased.RangeDopplerResponse
Default: 'Frequency'
OperatingFrequency
Signal carrier frequency
Specify the carrier frequency, in hertz, as a scalar. This property
applies only when you set the DopplerOutput property to 'Speed'.
The default value of this property corresponds to 300 MHz.
Default: 3e8
1-865
phased.RangeDopplerResponse
Load data for a pulsed radar signal. The signal includes three target
returns. Two targets are approximately 2000 m away, while the third
is approximately 3500 m away. In addition, two of the targets are
stationary relative to the radar. The third is moving away from the
radar at about 100 m/s.
load RangeDopplerExampleData;
hrdresp = phased.RangeDopplerResponse(...
'DopplerFFTLengthSource','Property',...
'DopplerFFTLength',RangeDopplerEx_MF_NFFTDOP,...
'SampleRate',RangeDopplerEx_MF_Fs,...
'DopplerOutput','Speed',...
'OperatingFrequency',RangeDopplerEx_MF_Fc);
[resp,rng_grid,dop_grid] = step(hrdresp,...
RangeDopplerEx_MF_X,RangeDopplerEx_MF_Coeff);
imagesc(dop_grid,rng_grid,mag2db(abs(resp)));
xlabel('Speed (m/s)');
ylabel('Range (m)');
title('Range-Doppler Map');
1-866
phased.RangeDopplerResponse
Load data for an FMCW signal that has not been dechirped. The signal
contains the return from a target about 2200 m away. The signal has a
normalized Doppler frequency of about –0.36 relative to the radar.
load RangeDopplerExampleData;
hrdresp = phased.RangeDopplerResponse(...
'RangeMethod','Dechirp',...
'PropagationSpeed',RangeDopplerEx_Dechirp_PropSpeed,...
'SampleRate',RangeDopplerEx_Dechirp_Fs,...
'DechirpInput',true,...
'SweepSlope',RangeDopplerEx_Dechirp_SweepSlope);
1-867
phased.RangeDopplerResponse
plotResponse(hrdresp,...
RangeDopplerEx_Dechirp_X,RangeDopplerEx_Dechirp_Xref,...
'Unit','db','NormalizeDoppler',true)
1-868
phased.RangeDopplerResponse
1-869
phased.RangeDopplerResponse.clone
Syntax C = clone(H)
1-870
phased.RangeDopplerResponse.getNumInputs
Syntax N = getNumInputs(H)
1-871
phased.RangeDopplerResponse.getNumOutputs
Syntax N = getNumOutputs(H)
1-872
phased.RangeDopplerResponse.isLocked
Syntax TF = isLocked(H)
1-873
phased.RangeDopplerResponse.plotResponse
Syntax plotResponse(H,x)
plotResponse(H,x,xref)
plotResponse(H,x,coeff)
plotResponse( ___ ,Name,Value)
hPlot = plotResponse( ___ )
Input H
Arguments Range-Doppler response object.
x
Input data. Specific requirements depend on the syntax:
1-874
phased.RangeDopplerResponse.plotResponse
xref
Reference signal, specified as a column vector having the same
number of rows as x.
coeff
Matched filter coefficients, specified as a column vector.
1-875
phased.RangeDopplerResponse.plotResponse
’NormalizeDoppler’
Set this value to true to normalize the Doppler frequency. Set
this value to false to plot the range-Doppler response without
normalizing the Doppler frequency. This parameter applies when
you set the DopplerOutput property of H to 'Frequency'.
Default: false
’Unit’
The unit of the plot. Valid values are 'db', 'mag', and 'pow'.
Default: 'db'
Load data for an FMCW signal that has not been dechirped. The signal
contains the return from a target about 2200 m away. The signal has a
normalized Doppler frequency of about –0.36 relative to the radar.
load RangeDopplerExampleData;
hrdresp = phased.RangeDopplerResponse(...
'RangeMethod','Dechirp',...
'PropagationSpeed',RangeDopplerEx_Dechirp_PropSpeed,...
'SampleRate',RangeDopplerEx_Dechirp_Fs,...
'DechirpInput',true,...
'SweepSlope',RangeDopplerEx_Dechirp_SweepSlope);
1-876
phased.RangeDopplerResponse.plotResponse
plotResponse(hrdresp,...
RangeDopplerEx_Dechirp_X,RangeDopplerEx_Dechirp_Xref,...
'Unit','db','NormalizeDoppler',true)
1-877
phased.RangeDopplerResponse.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-878
phased.RangeDopplerResponse.step
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
1-879
phased.RangeDopplerResponse.step
Input H
Arguments Range-Doppler response object.
x
Input data. Specific requirements depend on the syntax:
xref
Reference signal, specified as a column vector having the same
number of rows as x.
1-880
phased.RangeDopplerResponse.step
coeff
Matched filter coefficients, specified as a column vector.
Output RESP
Arguments Complex range-Doppler response of x, returned as a P-by-Q
matrix. The values of P and Q depend on the syntax.
1-881
phased.RangeDopplerResponse.step
columns in x. Otherwise,
Q is the value of the
DopplerFFTLength property.
RNG_GRID
Range samples at which the range-Doppler response is evaluated.
RNG_GRID is a column vector of length P.
DOP_GRID
Doppler samples or speed samples at which the range-Doppler
response is evaluated. DOP_GRID is a column vector of length Q.
Whether DOP_GRID contains Doppler or speed samples depends
on the DopplerOutput property of H.
Load data for a pulsed radar signal. The signal includes three target
returns. Two targets are approximately 2000 m away, while the third
is approximately 3500 m away. In addition, two of the targets are
stationary relative to the radar. The third is moving away from the
radar at about 100 m/s.
load RangeDopplerExampleData;
hrdresp = phased.RangeDopplerResponse(...
'DopplerFFTLengthSource','Property',...
'DopplerFFTLength',RangeDopplerEx_MF_NFFTDOP,...
'SampleRate',RangeDopplerEx_MF_Fs,...
'DopplerOutput','Speed',...
'OperatingFrequency',RangeDopplerEx_MF_Fc);
1-882
phased.RangeDopplerResponse.step
[resp,rng_grid,dop_grid] = step(hrdresp,...
RangeDopplerEx_MF_X,RangeDopplerEx_MF_Coeff);
imagesc(dop_grid,rng_grid,mag2db(abs(resp)));
xlabel('Speed (m/s)');
ylabel('Range (m)');
title('Range-Doppler Map');
Load data for an FMCW signal that has not been dechirped. The signal
contains the return from one target.
load RangeDopplerExampleData;
1-883
phased.RangeDopplerResponse.step
hrdresp = phased.RangeDopplerResponse(...
'RangeMethod','Dechirp',...
'PropagationSpeed',RangeDopplerEx_Dechirp_PropSpeed,...
'SampleRate',RangeDopplerEx_Dechirp_Fs,...
'DechirpInput',true,...
'SweepSlope',RangeDopplerEx_Dechirp_SweepSlope);
[resp,rng_grid,dop_grid] = step(hrdresp,...
RangeDopplerEx_Dechirp_X,RangeDopplerEx_Dechirp_Xref);
[x_temp,idx_temp] = max(abs(resp));
[~,dop_idx] = max(x_temp);
rng_idx = idx_temp(dop_idx);
dop_est = dop_grid(dop_idx)
rng_est = rng_grid(rng_idx)
dop_est =
-712.8906
rng_est =
2250
1-884
phased.ReceiverPreamp
Properties Gain
Gain of receiver
A scalar containing the gain (in decibels) of the receiver preamp.
Default: 20
LossFactor
Loss factor of receiver
A scalar containing the loss factor (in decibels) of the receiver
preamp.
Default: 0
NoiseBandwidth
1-885
phased.ReceiverPreamp
Default: 1e6
NoiseFigure
Noise figure of receiver
A scalar containing the noise figure (in decibels) of the receiver
preamp. If the receiver has multiple channels/sensors, the noise
figure applies to each channel/sensor.
Default: 0
ReferenceTemperature
Reference temperature of receiver
A scalar containing the reference temperature of the receiver
(in kelvin). If the receiver has multiple channels/sensors, the
reference temperature applies to each channel/sensor.
Default: 290
SampleRate
Sample rate
Specify the sample rate, in hertz, as a positive scalar. The default
value corresponds to 1 MHz.
Default: 1e6
EnableInputPort
Add input to specify enabling signal
1-886
phased.ReceiverPreamp
Default: false
PhaseNoiseInputPort
Add input to specify phase noise
To specify the phase noise for each incoming sample, set this
property to true and use the corresponding input argument
when you invoke step. You can use this information to emulate
coherent-on-receive systems. If you do not want to specify phase
noise, set this property to false.
Default: false
SeedSource
Source of seed for random number generator
Specify how the object generates random numbers. Values of this
property are:
1-887
phased.ReceiverPreamp
Default: 'Auto'
Seed
Seed for random number generator
Specify the seed for the random number generator as a scalar
integer between 0 and 232–1. This property applies when you set
the SeedSource property to 'Property'.
Default: 0
Hrx = phased.ReceiverPreamp('NoiseFigure',10);
Fs = 100;
t = linspace(0,1-1/Fs,100);
x = 1e-6*sin(2*pi*5*t);
y = step(Hrx,x);
plot(t,x,t,real(y));
1-888
phased.ReceiverPreamp
1-889
phased.ReceiverPreamp
1-890
phased.ReceiverPreamp.clone
Syntax C = clone(H)
1-891
phased.ReceiverPreamp.getNumInputs
Syntax N = getNumInputs(H)
1-892
phased.ReceiverPreamp.getNumOutputs
Syntax N = getNumOutputs(H)
1-893
phased.ReceiverPreamp.isLocked
Syntax TF = isLocked(H)
1-894
phased.ReceiverPreamp.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-895
phased.ReceiverPreamp.reset
Syntax reset(H)
1-896
phased.ReceiverPreamp.step
Syntax Y = step(H,X)
Y = step(H,X,EN_RX)
Y = step(H,X,PHNOISE)
Y = step(H,X,EN_RX,PHNOISE)
Description Y = step(H,X) applies the receiver gain and the receiver noise to the
input signal, X, and returns the resulting output signal, Y.
Y = step(H,X,EN_RX) uses input EN_RX as the enabling signal when
the EnableInputPort property is set to true.
Y = step(H,X,PHNOISE) uses input PHNOISE as the phase noise for
each sample in X when the PhaseNoiseInputPort is set to true. The
phase noise is the same for all channels in X. The elements in PHNOISE
represent the random phases the transmitter adds to the transmitted
pulses. The receiver preamp object removes these random phases from
all received samples returned within corresponding pulse intervals.
Such setup is often referred to as coherent on receive.
Y = step(H,X,EN_RX,PHNOISE) combines all input arguments. This
syntax is available when you configure H so that H.EnableInputPort
is true and H.PhaseNoiseInputPort is true.
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Input H
Arguments Receiver object.
1-897
phased.ReceiverPreamp.step
X
Input signal.
EN_RX
Enabling signal, specified as a column vector whose length equals
the number of rows in X. The data type of EN_RN is double or
logical. Every element of EN_RX that equals 0 or false indicates
that the receiver is turned off, and no input signal passes through
the receiver. Every element of EN_RX that is nonzero or true
indicates that the receiver is turned on, and the input passes
through.
PHNOISE
Phase noise for each sample in X, specified as a column vector
whose length equals the number of rows in X. You can obtain
PHNOISE as an optional output argument from the step method
of phased.Transmitter.
Output Y
Arguments Output signal. Y has the same dimensions as X.
1-898
phased.RectangularWaveform
Properties SampleRate
Sample rate
Specify the sample rate, in hertz, as a positive scalar. The quantity
(SampleRate ./ PRF) is a scalar or vector that must contain only
integers. The default value of this property corresponds to 1 MHz.
Default: 1e6
PulseWidth
Pulse width
Specify the length of each pulse (in seconds) as a positive scalar.
The value must satisfy PulseWidth <= 1./PRF.
Default: 50e-6
1-899
phased.RectangularWaveform
PRF
Pulse repetition frequency
Specify the pulse repetition frequency (in hertz) as a scalar or a
row vector. The default value of this property corresponds to 10
kHz.
To implement a constant PRF, specify PRF as a positive scalar.
To implement a staggered PRF, specify PRF as a row vector with
positive elements. When PRF is a vector, the output pulses use
successive elements of the vector as the PRF. If the last element
of the vector is reached, the process continues cyclically with the
first element of the vector.
The value of this property must satisfy these constraints:
Default: 1e4
OutputFormat
Output signal format
Specify the format of the output signal as one of 'Pulses'
or 'Samples'. When you set the OutputFormat property to
'Pulses', the output of the step method is in the form of multiple
pulses. In this case, the number of pulses is the value of the
NumPulses property.
When you set the OutputFormat property to 'Samples', the
output of the step method is in the form of multiple samples. In
this case, the number of samples is the value of the NumSamples
property.
Default: 'Pulses'
1-900
phased.RectangularWaveform
NumSamples
Number of samples in output
Specify the number of samples in the output of the step method
as a positive integer. This property applies only when you set the
OutputFormat property to 'Samples'.
Default: 100
NumPulses
Number of pulses in output
Specify the number of pulses in the output of the step method as
a positive integer. This property applies only when you set the
OutputFormat property to 'Pulses'.
Default: 1
1-901
phased.RectangularWaveform
hw = phased.RectangularWaveform('PulseWidth',1e-4);
plot(hw);
1-902
phased.RectangularWaveform
1-903
phased.RectangularWaveform.bandwidth
Syntax BW = bandwidth(H)
Description BW = bandwidth(H) returns the bandwidth (in hertz) of the pulses for
the rectangular pulse waveform, H. The bandwidth equals the reciprocal
of the pulse width.
Input H
Arguments Rectangular pulse waveform object.
Output BW
Arguments Bandwidth of the pulses, in hertz.
H = phased.RectangularWaveform;
bw = bandwidth(H)
1-904
phased.RectangularWaveform.clone
Syntax C = clone(H)
1-905
phased.RectangularWaveform.getMatchedFilter
hw = phased.RectangularWaveform('PulseWidth',1e-5,...
'OutputFormat','Pulses','NumPulses',1);
Coeff = getMatchedFilter(hw);
1-906
phased.RectangularWaveform.getNumInputs
Syntax N = getNumInputs(H)
1-907
phased.RectangularWaveform.getNumOutputs
Syntax N = getNumOutputs(H)
1-908
phased.RectangularWaveform.isLocked
Syntax TF = isLocked(H)
1-909
phased.RectangularWaveform.plot
Syntax plot(Hwav)
plot(Hwav,Name,Value)
plot(Hwav,Name,Value,LineSpec)
h = plot( ___ )
Description plot(Hwav) plots the real part of the waveform specified by Hwav.
plot(Hwav,Name,Value) plots the waveform with additional options
specified by one or more Name,Value pair arguments.
plot(Hwav,Name,Value,LineSpec) specifies the same line color, line
style, or marker options as are available in the MATLAB plot function.
h = plot( ___ ) returns the line handle in the figure.
Input Hwav
Arguments Waveform object. This variable must be a scalar that represents a
single waveform object.
LineSpec
String that specifies the same line color, style, or marker options
as are available in the MATLAB plot function. If you specify a
PlotType value of 'complex', then LineSpec applies to both the
real and imaginary subplots.
Default: 'b'
’PlotType’
1-910
phased.RectangularWaveform.plot
Specifies whether the function plots the real part, imaginary part,
or both parts of the waveform. Valid values are 'real', 'imag',
and 'complex'.
Default: 'real'
’PulseIdx’
Index of the pulse to plot. This value must be a scalar.
Default: 1
Output h
Arguments Handle to the line or lines in the figure. For a PlotType value of
'complex', h is a column vector. The first and second elements of
this vector are the handles to the lines in the real and imaginary
subplots, respectively.
hw = phased.RectangularWaveform('PulseWidth',1e-4);
plot(hw);
1-911
phased.RectangularWaveform.plot
1-912
phased.RectangularWaveform.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-913
phased.RectangularWaveform.reset
Syntax reset(H)
1-914
phased.RectangularWaveform.step
Syntax Y = step(H)
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
hw = phased.RectangularWaveform('PulseWidth',1e-5,...
'OutputFormat','Pulses','NumPulses',1,...
'SampleRate',1e6,'PRF',1e4);
wav = step(hw);
1-915
phased.ReplicatedSubarray
Properties Subarray
Subarray to replicate
Specify the subarray you use to form the array. The subarray
must be a phased.ULA, phased.URA, or phased.ConformalArray
object.
Layout
1-916
phased.ReplicatedSubarray
Layout of subarrays
Specify the layout of the replicated subarrays as 'Rectangular'
or 'Custom'.
Default: 'Rectangular'
GridSize
Size of rectangular grid
Specify the size of the rectangular grid as a single positive integer
or 1-by-2 positive integer row vector. This property applies only
when you set the Layout property to 'Rectangular'.
If GridSize is a scalar, the array has the same number of
subarrays in each row and column.
If GridSize is a 1-by-2 vector, the vector has the form
[NumberOfRows, NumberOfColumns]. The first entry is the
number of subarrays along each column, while the second entry
is the number of subarrays in each row. A row is along the local
y-axis, and a column is along the local z-axis. This figure shows
how a 3-by-2 URA subarray is replicated using a GridSize value
of [1,2].
1-917
phased.ReplicatedSubarray
3 x 2 Element URA
Replicated on a 1 x 2 Grid
1 4 7 10
Z
2 5 8 11
3 6 9 12
Default: [2 1]
GridSpacing
Spacing of rectangular grid
Specify the rectangular grid spacing of subarrays as a real-valued
positive scalar, a 1-by-2 row vector, or the string value 'Auto'.
This property applies only when you set the Layout property to
'Rectangular'. Grid spacing units are expressed in meters.
If GridSpacing is a scalar, the spacing along the row and the
spacing along the column is the same.
If GridSpacing is a length-2 row vector, it has the form
[SpacingBetweenRows, SpacingBetweenColumn]. The first
entry specifies the spacing between rows along a column. The
second entry specifies the spacing between columns along a row.
If GridSpacing is 'Auto', the replication preserves the element
spacing in both row and column. This option is available only if
you use a phased.ULA or phased.URA object as the subarray.
Default: 'Auto'
1-918
phased.ReplicatedSubarray
SubarrayPosition
Subarray positions in custom grid
Specify the positions of the subarrays in the custom grid. This
property value is a 3-by-N matrix, where N indicates the number
of subarrays in the array. Each column of the matrix represents
the position of a single subarray in the array’s local coordinate
system, in meters, using the form [x; y; z].
This property applies when you set the Layout property to
'Custom'.
SubarrayNormal
Subarray normal directions in custom grid
Specify the normal directions of the subarrays in the array.
This property value is a 2-by-N matrix, where N is the number
of subarrays in the array. Each column of the matrix specifies
the normal direction of the corresponding subarray, in the form
[azimuth; elevation]. Each angle is in degrees and is defined in
the local coordinate system.
You can use the SubarrayPosition and SubarrayNormal
properties to represent any arrangement in which pairs of
subarrays differ by certain transformations. The transformations
can combine translation, azimuth rotation, and elevation rotation.
However, you cannot use transformations that require rotation
about the normal.
This property applies when you set the Layout property to
'Custom'.
Default: [0 0; 0 0]
SubarraySteering
Subarray steering method
1-919
phased.ReplicatedSubarray
Default: 'None'
PhaseShifterFrequency
Subarray phase shifter frequency
Specify the operating frequency of phase shifters that perform
subarray steering. The property value is a positive scalar in
hertz. This property applies when you set the SubarraySteering
property to 'Phase'.
Default: 3e8
1-920
phased.ReplicatedSubarray
h = phased.ULA('NumElements',2,'ElementSpacing',0.5);
ha = phased.ReplicatedSubarray('Subarray',h,...
'Layout','Rectangular','GridSize',[1 2],...
'GridSpacing','Auto');
Plot the azimuth response of the array. Assume the operating frequency
is 1 GHz and the wave propagation speed is 3e8 m/s.
plotResponse(ha,1e9,3e8,'RespCut','Az','Format','Polar');
1-921
phased.ReplicatedSubarray
hsd = phased.ShortDipoleAntennaElement;
h = phased.ULA('Element',hsd,'NumElements',2,'ElementSpacing',0.5);
1-922
phased.ReplicatedSubarray
ha = phased.ReplicatedSubarray('Subarray',h,...
'Layout','Rectangular','GridSize',[1 2],...
'GridSpacing','Auto');
RESP = step(ha,1e9,[0;0],3e8)
RESP =
H: [2x1 double]
V: [2x1 double]
References [1] Mailloux, Robert J. Electronically Scanned Arrays. San Rafael, CA:
Morgan & Claypool Publishers, 2007.
1-923
phased.ReplicatedSubarray.clone
Syntax C = clone(H)
1-924
phased.ReplicatedSubarray.collectPlaneWave
Syntax Y = collectPlaneWave(H,X,ANG)
Y = collectPlaneWave(H,X,ANG,FREQ)
Y = collectPlaneWave(H,X,ANG,FREQ,C)
Input H
Arguments Array object.
X
Incoming signals, specified as an M-column matrix. Each column
of X represents an individual incoming signal.
ANG
Directions from which incoming signals arrive, in degrees. ANG
can be either a 2-by-M matrix or a row vector of length M.
If ANG is a 2-by-M matrix, each column specifies the direction of
arrival of the corresponding signal in X. Each column of ANG is in
the form [azimuth; elevation]. The azimuth angle must be
between –180 and 180 degrees, inclusive. The elevation angle
must be between –90 and 90 degrees, inclusive.
If ANG is a row vector of length M, each entry in ANG specifies the
azimuth angle. In this case, the corresponding elevation angle
is assumed to be 0.
FREQ
1-925
phased.ReplicatedSubarray.collectPlaneWave
Default: 3e8
C
Propagation speed of signal in meters per second.
Output Y
Arguments Received signals. Y is an N-column matrix, where N is the number
of subarrays in the array H. Each column of Y is the received
signal at the corresponding subarray, with all incoming signals
combined.
hs = phased.ULA('NumElements',4);
ha = phased.ReplicatedSubarray('Subarray',hs,...
'GridSize',[4 1]);
Y = collectPlaneWave(ha,randn(4,2),[10 30],...
1e8,physconst('LightSpeed'));
1-926
phased.ReplicatedSubarray.collectPlaneWave
array and only models the array factor among subarrays. Therefore, the
result does not depend on whether the subarray is steered.
1-927
phased.ReplicatedSubarray.getElementPosition
Input H
Arguments Array object consisting of replicated subarrays.
Output POS
Arguments Element positions in array. POS is a 3-by-N matrix, where N is
the number of elements in H. Each column of POS defines the
position of an element in the local coordinate system, in meters,
using the form [x; y; z].
H = phased.ReplicatedSubarray('Subarray',...
phased.ULA('NumElements',3),'GridSize',[1 2]);
POS = getElementPosition(H)
1-928
phased.ReplicatedSubarray.getNumElements
Syntax N = getNumElements(H)
Input H
Arguments Array object consisting of replicated subarrays.
1-929
phased.ReplicatedSubarray.getNumInputs
Syntax N = getNumInputs(H)
1-930
phased.ReplicatedSubarray.getNumOutputs
Syntax N = getNumOutputs(H)
1-931
phased.ReplicatedSubarray.getNumSubarrays
Syntax N = getNumSubarrays(H)
Input H
Arguments Array object consisting of replicated subarrays.
H = phased.ReplicatedSubarray('Subarray',...
phased.ULA('NumElements',3),'GridSize',[2 5]);
N = getNumSubarrays(H);
1-932
phased.ReplicatedSubarray.getSubarrayPosition
Input H
Arguments Partitioned array object.
Output POS
Arguments Subarrays positions in array. POS is a 3-by-N matrix, where N is
the number of subarrays in H. Each column of POS defines the
position of a subarray in the local coordinate system, in meters,
using the form [x; y; z].
H = phased.ReplicatedSubarray('Subarray',...
phased.ULA('NumElements',3),'GridSize',[1 2]);
POS = getSubarrayPosition(H)
1-933
phased.ReplicatedSubarray.isLocked
Syntax TF = isLocked(H)
1-934
phased.ReplicatedSubarray.isPolarizationCapable
h = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[1e9 10e9]);
ha = phased.URA([3,2],'Element',h);
hr = phased.ReplicatedSubarray('Subarray',ha,...
'Layout','Rectangular',...
'GridSize',[1,2],'GridSpacing','Auto');
isPolarizationCapable(hr)
ans =
The returned value true (1) shows that this array supports
polarization.
1-935
phased.ReplicatedSubarray.plotResponse
Syntax plotResponse(H,FREQ,V)
plotResponse(H,FREQ,V,Name,Value)
hPlot = plotResponse( ___ )
Input H
Arguments Array object.
FREQ
Operating frequency, in hertz. Typical values are within the range
specified by a property of H.Subarray.Element. That property is
named FrequencyRange or FrequencyVector, depending on the
type of element in the array. The element has zero response at
frequencies outside that range. If FREQ is a nonscalar row vector,
the plot shows multiple frequency responses on the same axes.
V
Propagation speed in meters per second.
1-936
phased.ReplicatedSubarray.plotResponse
’CutAngle’
Cut angle specified as a scalar. This argument is applicable only
when RespCut is 'Az' or 'El'. If RespCut is 'Az', CutAngle
must be between –90 and 90. If RespCut is 'El', CutAngle must
be between –180 and 180.
Default: 0
’Format’
Format of the plot, using one of 'Line', 'Polar', or 'UV'. If you
set Format to 'UV', FREQ must be a scalar.
Default: 'Line'
’NormalizeResponse’
Set this value to true to normalize the response pattern. Set this
value to false to plot the response pattern without normalizing
it. This parameter is not applicable when you set the Unit
parameter value to 'dbi'.
Default: true
’OverlayFreq’
Set this value to true to overlay pattern cuts in a 2-D line plot.
Set this value to false to plot pattern cuts against frequency in
a 3-D waterfall plot. If this value is false, then FREQ must be a
vector with at least two entries.
This parameter applies only when Format is not 'Polar' and
RespCut is not '3D'.
Default: true
1-937
phased.ReplicatedSubarray.plotResponse
’Polarization’
Specify the polarization options for plotting the array response
pattern. The allowable values are |'None' | 'Combined' | 'H'
| 'V' | where:
Default: 'None'
’RespCut’
Cut of the response. Valid values depend on Format, as follows:
1-938
phased.ReplicatedSubarray.plotResponse
Default: [0;0]
’Unit’
The unit of the plot. Valid values are 'db', 'mag', 'pow', or 'dbi'.
This parameter determines the type of plot that is produced.
Default: 'db'
’Weights’
Weight values applied to the array, specified as a length-N
column vector or N-by-M matrix. The dimension N is the number
of subarrays in the array. The interpretation of M depends upon
whether the input argument FREQ is a scalar or row vector.
1-939
phased.ReplicatedSubarray.plotResponse
’AzimuthAngles’
Azimuth angles for plotting subarray response, specified as a row
vector. The AzimuthAngles parameter sets the display range and
resolution of azimuth angles for visualizing the radiation pattern.
This parameter is allowed only when the RespCut parameter is
set to 'Az' or '3D' and the Format parameter is set to 'Line' or
'Polar'. The values of azimuth angles should lie between –180°
and 180° and must be in nondecreasing order. When you set the
RespCut parameter to '3D', you can set the AzimuthAngles and
ElevationAngles parameters simultaneously.
Default: [-180:180]
’ElevationAngles’
Elevation angles for plotting subarray response, specified as a row
vector. The ElevationAngles parameter sets the display range
1-940
phased.ReplicatedSubarray.plotResponse
Default: [-90:90]
’UGrid’
U coordinate values for plotting subarray response, specified
as a row vector. The UGrid parameter sets the display range
and resolution of the U coordinates for visualizing the radiation
pattern in U/V space. This parameter is allowed only when the
Format parameter is set to 'UV' and the RespCut parameter is
set to 'U' or '3D'. The values of UGrid should be between –1 and
1 and should be specified in nondecreasing order. You can set the
UGrid and VGrid parameters simultaneously.
Default: [-1:0.01:1]
’VGrid’
V coordinate values for plotting subarray response, specified
as a row vector. The VGrid parameter sets the display range
and resolution of the V coordinates for visualizing the radiation
pattern in U/V space. This parameter is allowed only when the
Format parameter is set to 'UV' and the RespCut parameter is
set to '3D'. The values of VGrid should be between –1 and 1 and
should be specified in nondecreasing order. You can set the VGrid
and UGrid parameters simultaneously.
Default: [-1:0.01:1]
1-941
phased.ReplicatedSubarray.plotResponse
h = phased.ULA('NumElements',2,'ElementSpacing',0.5);
ha = phased.ReplicatedSubarray('Subarray',h,...
'Layout','Rectangular','GridSize',[1 2],...
'GridSpacing','Auto');
Plot the azimuth response of the array. Assume the operating frequency
is 1 GHz and the wave propagation speed is 3e8 m/s.
plotResponse(ha,1e9,3e8,'RespCut','Az','Format','Polar');
1-942
phased.ReplicatedSubarray.plotResponse
plotResponse(ha,1e9,3e8,'RespCut','Az','Format','Polar','Unit','dbi');
1-943
phased.ReplicatedSubarray.plotResponse
h = phased.ULA('NumElements',2,'ElementSpacing',0.5);
ha = phased.ReplicatedSubarray('Subarray',h,...
1-944
phased.ReplicatedSubarray.plotResponse
'Layout','Rectangular','GridSize',[1 2],...
'GridSpacing','Auto');
plotResponse(ha,1e9,3e8,'RespCut','Az','Format','Polar',...
'AzimuthAngles',[-30:0.1:30],'Unit','mag');
1-945
phased.ReplicatedSubarray.plotResponse
h = phased.ULA('NumElements',2,'ElementSpacing',0.2);
ha = phased.ReplicatedSubarray('Subarray',h,...
'Layout','Rectangular','GridSize',[1 5],...
'GridSpacing',0.4);
c = physconst('LightSpeed');
fc = 1e9;
wts1 = [0.2,0.2,0.2,0.2,0.2]';
wts2 = [0.1,0.23333,.33333,0.23333,0.1]';
plotResponse(ha,fc,c,'RespCut','Az','Format','Polar',...
'Weights',[wts1,wts2]);
1-946
phased.ReplicatedSubarray.plotResponse
1-947
phased.ReplicatedSubarray.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-948
phased.ReplicatedSubarray.step
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Input H
Arguments Phased array formed by replicated subarrays.
FREQ
Operating frequencies of array in hertz. FREQ is a row vector
of length L. Typical values are within the range specified by
a property of H.Subarray.Element. That property is named
FrequencyRange or FrequencyVector, depending on the type
of element in the array. The element has zero response at
frequencies outside that range.
ANG
1-949
phased.ReplicatedSubarray.step
Output RESP
Arguments Voltage responses of the subarrays of the phased array. The
output depends on whether the array supports polarization or not.
1-950
phased.ReplicatedSubarray.step
hsd = phased.ShortDipoleAntennaElement;
h = phased.ULA('Element',hsd,'NumElements',2,'ElementSpacing',0.5);
ha = phased.ReplicatedSubarray('Subarray',h,...
'Layout','Rectangular','GridSize',[1 2],...
'GridSpacing','Auto');
RESP = step(ha,1e9,[0;0],3e8)
RESP =
1-951
phased.ReplicatedSubarray.step
H: [2x1 double]
V: [2x1 double]
1-952
phased.ReplicatedSubarray.viewArray
Syntax viewArray(H)
viewArray(H,Name,Value)
hPlot = viewArray( ___ )
Input H
Arguments Array object.
’ShowIndex’
Vector specifying the element indices to show in the figure. Each
number in the vector must be an integer between 1 and the
number of elements. You can also specify the string 'All' to show
indices of all elements of the array or 'None' to suppress indices.
Default: 'None'
’ShowNormals’
1-953
phased.ReplicatedSubarray.viewArray
Default: false
’ShowTaper’
Set this value to true to specify whether to change the element
color brightness in proportion to the element taper magnitude.
When this value is set to false, all elements are drawn with the
same color.
Default: false
’ShowSubarray’
Vector specifying the indices of subarrays to highlight in the
figure. Each number in the vector must be an integer between
1 and the number of subarrays. You can also specify the string
'All' to highlight all subarrays of the array or 'None' to suppress
the subarray highlighting. The highlighting uses different colors
for different subarrays.
Default: 'All'
’Title’
String specifying the title of the plot.
Output hPlot
Arguments Handles of array elements in figure window.
1-954
phased.ReplicatedSubarray.viewArray
radius = 9;
az = [-180 -180 -180 -120 -120 -60 -60 0 0 60 60 120 120 180];
el = [-90 -30 30 -30 30 -30 30 -30 30 -30 30 -30 30 90];
numsubarrays = size(az,2);
[x,y,z] = sph2cart(degtorad(az),degtorad(el),...
radius*ones(1,numsubarrays));
ha = phased.ReplicatedSubarray('Subarray',hexa,...
'Layout','Custom',...
'SubarrayPosition',[x; y; z], ...
'SubarrayNormal',[az; el]);
viewArray(ha,'ShowSubarray',3:2:13,...
'Title','Hexagonal Subarrays on a Sphere');
view(0,90)
1-955
phased.ReplicatedSubarray.viewArray
1-956
phased.RootMUSICEstimator
Properties SensorArray
Handle to sensor array
Specify the sensor array as a handle. The sensor array must be a
phased.ULA object.
PropagationSpeed
Signal propagation speed
Specify the propagation speed of the signal, in meters per second,
as a positive scalar.
1-957
phased.RootMUSICEstimator
OperatingFrequency
System operating frequency
Specify the operating frequency of the system in hertz as a
positive scalar. The default value corresponds to 300 MHz.
Default: 3e8
ForwardBackwardAveraging
Perform forward-backward averaging
Set this property to true to use forward-backward averaging to
estimate the covariance matrix for sensor arrays with conjugate
symmetric array manifold.
Default: false
SpatialSmoothing
Spatial smoothing
Specify the number of averaging used by spatial smoothing to
estimate the covariance matrix as a nonnegative integer. Each
additional smoothing handles one extra coherent source, but
reduces the effective number of element by 1. The maximum
value of this property is M–2, where M is the number of sensors.
The default value indicates no spatial smoothing.
Default: 0
NumSignalsSource
Source of number of signals
Specify the source of the number of signals as one of 'Auto'
or 'Property'. If you set this property to 'Auto', the
1-958
phased.RootMUSICEstimator
Default: 'Auto'
NumSignalsMethod
Method to estimate number of signals
Specify the method to estimate the number of signals as one of
'AIC' or 'MDL'. 'AIC' uses the Akaike Information Criterion and
'MDL' uses Minimum Description Length Criterion. This property
applies when you set the NumSignalsSource property to 'Auto'.
Default: 'AIC'
NumSignals
Number of signals
Specify the number of signals as a positive integer scalar. This
property applies when you set the NumSignalsSource property
to 'Property'.
Default: 1
1-959
phased.RootMUSICEstimator
fs = 8000; t = (0:1/fs:1).';
x1 = cos(2*pi*t*300); x2 = cos(2*pi*t*400);
ha = phased.ULA('NumElements',10,'ElementSpacing',1);
ha.Element.FrequencyRange = [100e6 300e6];
fc = 150e6;
x = collectPlaneWave(ha,[x1 x2],[10 20;45 60]',fc);
rng default;
noise = 0.1/sqrt(2)*(randn(size(x))+1i*randn(size(x)));
hdoa = phased.RootMUSICEstimator('SensorArray',ha,...
'OperatingFrequency',fc,...
'NumSignalsSource','Property','NumSignals',2);
doas = step(hdoa,x+noise);
az = broadside2az(sort(doas),[20 60])
1-960
phased.RootMUSICEstimator.clone
Purpose Create root MUSIC DOA estimator object with same property values
Syntax C = clone(H)
1-961
phased.RootMUSICEstimator.getNumInputs
Syntax N = getNumInputs(H)
1-962
phased.RootMUSICEstimator.getNumOutputs
Syntax N = getNumOutputs(H)
1-963
phased.RootMUSICEstimator.isLocked
Syntax TF = isLocked(H)
1-964
phased.RootMUSICEstimator.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-965
phased.RootMUSICEstimator.step
Description ANG = step(H,X) estimates the DOAs from X using the DOA estimator
H. X is a matrix whose columns correspond to channels. ANG is a row
vector of the estimated broadside angles (in degrees).
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
fs = 8000; t = (0:1/fs:1).';
x1 = cos(2*pi*t*300); x2 = cos(2*pi*t*400);
ha = phased.ULA('NumElements',10,'ElementSpacing',1);
ha.Element.FrequencyRange = [100e6 300e6];
fc = 150e6;
x = collectPlaneWave(ha,[x1 x2],[10 20;45 60]',fc);
rng default;
noise = 0.1/sqrt(2)*(randn(size(x))+1i*randn(size(x)));
hdoa = phased.RootMUSICEstimator('SensorArray',ha,...
'OperatingFrequency',fc,...
'NumSignalsSource','Property','NumSignals',2);
doas = step(hdoa,x+noise);
az = broadside2az(sort(doas),[20 60])
1-966
phased.RootWSFEstimator
1 Define and set up your root WSF DOA estimator. See “Construction”
on page 1-967.
Properties SensorArray
Handle to sensor array
Specify the sensor array as a handle. The sensor array must be a
phased.ULA object.
PropagationSpeed
Signal propagation speed
Specify the propagation speed of the signal, in meters per second,
as a positive scalar.
1-967
phased.RootWSFEstimator
OperatingFrequency
System operating frequency
Specify the operating frequency of the system in hertz as a
positive scalar. The default value corresponds to 300 MHz.
Default: 3e8
NumSignalsSource
Source of number of signals
Specify the source of the number of signals as one of 'Auto'
or 'Property'. If you set this property to 'Auto', the
number of signals is estimated by the method specified by the
NumSignalsMethod property.
Default: 'Auto'
NumSignalsMethod
Method to estimate number of signals
Specify the method to estimate the number of signals as one of
'AIC' or 'MDL'. 'AIC' uses the Akaike Information Criterion
and 'MDL' uses the Minimum Description Length Criterion. This
property applies when you set the NumSignalsSource property
to 'Auto'.
Default: 'AIC'
NumSignals
Number of signals
Specify the number of signals as a positive integer scalar. This
property applies when you set the NumSignalsSource property
to 'Property'.
1-968
phased.RootWSFEstimator
Default: 1
Method
Iterative method
Specify the iterative method as one of 'IMODE' or 'IQML'.
Default: 'IMODE'
MaximumIterationCount
Maximum number of iterations
Specify the maximum number of iterations as a positive integer
scalar or 'Inf'. This property is tunable.
Default: 'Inf'
1-969
phased.RootWSFEstimator
fs = 8000; t = (0:1/fs:1).';
x1 = cos(2*pi*t*300); x2 = cos(2*pi*t*400);
ha = phased.ULA('NumElements',10,'ElementSpacing',1);
ha.Element.FrequencyRange = [100e6 300e6];
fc = 150e6;
x = collectPlaneWave(ha,[x1 x2],[10 20;45 60]',fc);
rng default;
noise = 0.1/sqrt(2)*(randn(size(x))+1i*randn(size(x)));
hdoa = phased.RootWSFEstimator('SensorArray',ha,...
'OperatingFrequency',fc,...
'NumSignalsSource','Property','NumSignals',2);
doas = step(hdoa,x+noise);
az = broadside2az(sort(doas),[20 60])
1-970
phased.RootWSFEstimator.clone
Purpose Create root WSF DOA estimator object with same property values
Syntax C = clone(H)
1-971
phased.RootWSFEstimator.getNumInputs
Syntax N = getNumInputs(H)
1-972
phased.RootWSFEstimator.getNumOutputs
Syntax N = getNumOutputs(H)
1-973
phased.RootWSFEstimator.isLocked
Syntax TF = isLocked(H)
1-974
phased.RootWSFEstimator.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-975
phased.RootWSFEstimator.step
Description ANG = step(H,X) estimates the DOAs from X using the DOA estimator
H. X is a matrix whose columns correspond to channels. ANG is a row
vector of the estimated broadside angles (in degrees).
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
fs = 8000; t = (0:1/fs:1).';
x1 = cos(2*pi*t*300); x2 = cos(2*pi*t*400);
ha = phased.ULA('NumElements',10,'ElementSpacing',1);
ha.Element.FrequencyRange = [100e6 300e6];
fc = 150e6;
x = collectPlaneWave(ha,[x1 x2],[10 20;45 60]',fc);
rng default;
noise = 0.1/sqrt(2)*(randn(size(x))+1i*randn(size(x)));
hdoa = phased.RootWSFEstimator('SensorArray',ha,...
'OperatingFrequency',fc,...
'NumSignalsSource','Property','NumSignals',2);
doas = step(hdoa,x+noise);
az = broadside2az(sort(doas),[20 60])
1-976
phased.STAPSMIBeamformer
Properties SensorArray
Sensor array
Sensor array specified as an array System object belonging to the
phased package. A sensor array can contain subarrays.
PropagationSpeed
Signal propagation speed
Specify the propagation speed of the signal, in meters per second,
as a positive scalar.
1-977
phased.STAPSMIBeamformer
OperatingFrequency
System operating frequency
Specify the operating frequency of the system in hertz as a
positive scalar. The default value corresponds to 300 MHz.
Default: 3e8
PRF
Pulse repetition frequency
Specify the pulse repetition frequency (PRF) of the received signal
in hertz as a scalar.
Default: 1
DirectionSource
Source of targeting direction
Specify whether the targeting direction for the STAP processor
comes from the Direction property of this object or from an
input argument in step. Values of this property are:
Default: 'Property'
Direction
Targeting direction
1-978
phased.STAPSMIBeamformer
Default: [0; 0]
DopplerSource
Source of targeting Doppler
Specify whether the targeting Doppler for the STAP processor
comes from the Doppler property of this object or from an input
argument in step. Values of this property are:
Default: 'Property'
Doppler
Targeting Doppler frequency
Specify the targeting Doppler of the STAP processor as a scalar.
This property applies when you set the DopplerSource property
to 'Property'.
Default: 0
WeightsOutputPort
Output processing weights
1-979
phased.STAPSMIBeamformer
Default: false
NumGuardCells
Number of guarding cells
Specify the number of guard cells used in the training as an even
integer. This property specifies the total number of cells on both
sides of the cell under test.
NumTrainingCells
Number of training cells
Specify the number of training cells used in the training as an
even integer. Whenever possible, the training cells are equally
divided before and after the cell under test.
1-980
phased.STAPSMIBeamformer
Examples Process the data cube using an SMI processor. The weights are
calculated for the 71st cell of a collected data cube pointing to the
direction of [45; –35] degrees and the Doppler of 12980 Hz.
1-981
phased.STAPSMIBeamformer
w kR1v
1-982
phased.STAPSMIBeamformer
where:
• k is a scalar
• R represents the space-time covariance matrix
• v indicates the space-time steering vector
1
XX H
K
1-983
phased.STAPSMIBeamformer
1-984
phased.STAPSMIBeamformer.clone
Purpose Create space-time adaptive SMI beamformer object with same property
values
Syntax C = clone(H)
1-985
phased.STAPSMIBeamformer.getNumInputs
Syntax N = getNumInputs(H)
1-986
phased.STAPSMIBeamformer.getNumOutputs
Syntax N = getNumOutputs(H)
1-987
phased.STAPSMIBeamformer.isLocked
Syntax TF = isLocked(H)
1-988
phased.STAPSMIBeamformer.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-989
phased.STAPSMIBeamformer.step
Syntax Y = step(H,X,CUTIDX)
Y = step(H,X,CUTIDX,ANG)
Y = step(H,X,CUTIDX,DOP)
[Y,W] = step( ___ )
1-990
phased.STAPSMIBeamformer.step
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Examples Process the data cube using an SMI processor. The weights are
calculated for the 71st cell of a collected data cube pointing to the
direction of [45; –35] degrees and the Doppler of 12980 Hz.
1-991
phased.ShortDipoleAntennaElement
Properties FrequencyRange
Antenna operating frequency range
Antenna operating frequency range specified as a 1-by-2 row
vector in the form of [LowerBound HigherBound]. This vector
defines the frequency range over which the antenna has a
response. The antenna element has no response outside the
specified frequency range.
Default: [0 1e20]
AxisDirection
Dipole axis direction
1-992
phased.ShortDipoleAntennaElement
Default: 'Z'
h1 = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100e6,600e6],'AxisDirection','Y');
fc = 250e6;
1-993
phased.ShortDipoleAntennaElement
figure;
plotResponse(h1,fc,'Format','Polar',...
'RespCut','3D','Polarization','H');
figure;
plotResponse(h1,fc,'Format','Polar',...
'RespCut','3D','Polarization','V');
figure;
plotResponse(h1,fc,'Format','Polar',...
'RespCut','3D','Polarization','C');
1-994
phased.ShortDipoleAntennaElement
1-995
phased.ShortDipoleAntennaElement
1-996
phased.ShortDipoleAntennaElement
1-997
phased.ShortDipoleAntennaElement
References
[1] Mott, H., Antennas for Radar and Communications, John Wiley &
Sons, 1992.
1-998
phased.ShortDipoleAntennaElement.clone
Syntax C = clone(H)
1-999
phased.ShortDipoleAntennaElement.getNumInputs
Syntax N = getNumInputs(H)
1-1000
phased.ShortDipoleAntennaElement.getNumOutputs
Syntax N = getNumOutputs(H)
1-1001
phased.ShortDipoleAntennaElement.isLocked
Syntax TF = isLocked(H)
1-1002
phased.ShortDipoleAntennaElement.isPolarizationCapable
h = phased.ShortDipoleAntennaElement;
isPolarizationCapable(h)
ans =
The returned value true (1) shows that this antenna element supports
polarization.
1-1003
phased.ShortDipoleAntennaElement.plotResponse
Syntax plotResponse(H,FREQ)
plotResponse(H,FREQ,Name,Value)
hPlot = plotResponse( ___ )
Input H
Arguments Element System object
FREQ
Operating frequency in Hertz specified as a scalar or 1–by-K
row vector. FREQ must lie within the range specified by the
FrequencyVector property of H. If you set the 'RespCut' property
of H to '3D', FREQ must be a scalar. When FREQ is a row vector,
plotResponse draws multiple frequency responses on the same
axes.
’CutAngle’
1-1004
phased.ShortDipoleAntennaElement.plotResponse
Default: 0
’Format’
Format of the plot, using one of 'Line', 'Polar', or 'UV'. If you
set Format to 'UV', FREQ must be a scalar.
Default: 'Line'
’NormalizeResponse’
Set this value to true to normalize the response pattern. Set this
value to false to plot the response pattern without normalizing
it. This parameter is not applicable when you set the Unit
parameter value to 'dbi'.
Default: true
’OverlayFreq’
Set this value to true to overlay pattern cuts in a 2-D line plot.
Set this value to false to plot pattern cuts against frequency in a
3-D waterfall plot. If this value is false, FREQ must be a vector
with at least two entries.
This parameter applies only when Format is not 'Polar' and
RespCut is not '3D'.
Default: true
’Polarization’
1-1005
phased.ShortDipoleAntennaElement.plotResponse
Default: 'None'
’RespCut’
Cut of the response. Valid values depend on Format, as follows:
1-1006
phased.ShortDipoleAntennaElement.plotResponse
Default: 'db'
’AzimuthAngles’
Azimuth angles for plotting element response, specified as a row
vector. The AzimuthAngles parameter sets the display range and
resolution of azimuth angles for visualizing the radiation pattern.
This parameter is allowed only when the RespCut parameter is
set to 'Az' or '3D' and the Format parameter is set to 'Line' or
'Polar'. The values of azimuth angles should lie between –180°
and 180° and must be in nondecreasing order. When you set the
RespCut parameter to '3D', you can set the AzimuthAngles and
ElevationAngles parameters simultaneously.
Default: [-180:180]
’ElevationAngles’
Elevation angles for plotting element response, specified as a row
vector. The ElevationAngles parameter sets the display range
and resolution of elevation angles for visualizing the radiation
pattern. This parameter is allowed only when the RespCut
parameter is set to 'El' or '3D' and the Format parameter
is set to 'Line' or 'Polar'. The values of elevation angles
should lie between –90° and 90° and must be in nondecreasing
order. When you set the RespCut parameter to '3D', you can
set the ElevationAngles and AzimuthAngles parameters
simultaneously.
1-1007
phased.ShortDipoleAntennaElement.plotResponse
Default: [-90:90]
’UGrid’
U coordinate values for plotting element response, specified as
a row vector. The UGrid parameter sets the display range and
resolution of the U coordinates for visualizing the radiation
pattern in U/V space. This parameter is allowed only when the
Format parameter is set to 'UV' and the RespCut parameter is
set to 'U' or '3D'. The values of UGrid should be between –1 and
1 and should be specified in nondecreasing order. You can set the
UGrid and VGrid parameters simultaneously.
Default: [-1:0.01:1]
’VGrid’
V coordinate values for plotting element response, specified
as a row vector. The VGrid parameter sets the display range
and resolution of the V coordinates for visualizing the radiation
pattern in U/V space. This parameter is allowed only when the
Format parameter is set to 'UV' and the RespCut parameter is
set to '3D'. The values of VGrid should be between –1 and 1 and
should be specified in nondecreasing order. You can set the VGrid
and UGrid parameters simultaneously.
Default: [-1:0.01:1]
sSD = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100 900]*1e6,'AxisDirection','Z');
1-1008
phased.ShortDipoleAntennaElement.plotResponse
fc = 200e6;
plotResponse(sSD,fc,'Format','Polar',...
'RespCut','3D','Polarization','V');
1-1009
phased.ShortDipoleAntennaElement.plotResponse
sSD = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100 900]*1e6,'AxisDirection','Z');
plotResponse(sSD,200e6,'Format','Polar',...
'RespCut','El','Polarization','V',...
'ElevationAngles',[-60:0.1:60],'Unit','mag');
1-1010
phased.ShortDipoleAntennaElement.plotResponse
1-1011
phased.ShortDipoleAntennaElement.plotResponse
sSD = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100 900]*1e6,'AxisDirection','Y');
plotResponse(sSD,500e6,'Format','Line',...
'RespCut','El','Unit','dbi');
1-1012
phased.ShortDipoleAntennaElement.plotResponse
1-1013
phased.ShortDipoleAntennaElement.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-1014
phased.ShortDipoleAntennaElement.step
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Input H
Arguments Antenna element object.
FREQ
Operating frequencies of antenna in hertz. FREQ is a row vector
of length L.
ANG
Directions in degrees. ANG can be either a 2-by-M matrix or a
row vector of length M.
If ANG is a 2-by-M matrix, each column of the matrix specifies the
direction in the form [azimuth; elevation]. The azimuth angle
1-1015
phased.ShortDipoleAntennaElement.step
Output RESP
Arguments Voltage response of antenna element returned as a MATLAB
struct with fields RESP.H and RESP.V. Both RESP.H and RESP.V
contain responses for the horizontal and vertical polarization
components of the antenna radiation pattern. Both RESP.H and
RESP.V are M-by-L matrices. In these matrices, M represents the
number of angles specified in ANG, and L represents the number
of frequencies specified in FREQ.
hsd = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100 900]*1e6,'AxisDirection','Y');
ang = [0 30;0 0];
fc = 250e6;
resp = step(hsd,fc,ang);
resp =
H: [2x1 double]
V: [2x1 double]
1-1016
phased.ShortDipoleAntennaElement.step
1-1017
phased.SteeringVector
Description The SteeringVector object calculates the steering vector for a sensor
array.
To compute the steering vector of the array for specified directions:
Properties SensorArray
Handle to sensor array used to calculate steering vector
Specify the sensor array as a handle. The sensor array must be
an array object in the phased package. The array can contain
subarrays.
PropagationSpeed
Signal propagation speed
Specify the propagation speed of the signal, in meters per second,
as a positive scalar.
1-1018
phased.SteeringVector
IncludeElementResponse
Include individual element response in the steering vector
If this property is true, the steering vector includes the individual
element responses.
If this property is false, the computation of the steering vector
assumes the elements are isotropic. The steering vector does not
include the individual element responses. Furthermore, if the
SensorArray property contains subarrays, the steering vector is
the array factor among the subarrays. If SensorArray does not
contain subarrays, the steering vector is the array factor among
the array elements.
Default: false
EnablePolarization
Enable polarization simulation
Set to this property to true, to enable the steering vector to
simulate polarization. Set this property to false to ignore
polarization. This property applies only when the array specified
in the SensorArray property is capable of simulating polarization
and you have set the IncludeElementResponse property to true.
Default: false
1-1019
phased.SteeringVector
hULA = phased.ULA('NumElements',4);
hsv = phased.SteeringVector('SensorArray',hULA);
Fc = 3e8;
ANG = [30; 20];
sv = step(hsv,Fc,ANG)
sv =
-0.6011 - 0.7992i
0.7394 - 0.6732i
0.7394 + 0.6732i
-0.6011 + 0.7992i
fc = 3e8;
ha = phased.ULA('NumElements',4);
hsv = phased.SteeringVector('SensorArray',ha);
1-1020
phased.SteeringVector
sv = step(hsv,fc,[30; 20]);
Plot the beam patterns for the uniform linear array when no steering
vector is applied (steered broadside) and when a steering vector is
applied.
c = hsv.PropagationSpeed;
subplot(211)
plotResponse(ha,fc,c,'RespCut','Az');
title('Without steering');
subplot(212)
plotResponse(ha,fc,c,'RespCut','Az','Weights',sv);
title('With steering');
1-1021
phased.SteeringVector
1-1022
phased.SteeringVector.clone
Syntax C = clone(H)
1-1023
phased.SteeringVector.getNumInputs
Syntax N = getNumInputs(H)
1-1024
phased.SteeringVector.getNumOutputs
Syntax N = getNumOutputs(H)
1-1025
phased.SteeringVector.isLocked
Syntax TF = isLocked(H)
1-1026
phased.SteeringVector.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-1027
phased.SteeringVector.step
Syntax SV = step(H,FREQ,ANG)
SV = step(H,FREQ,ANG,STEERANGLE)
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
1-1028
phased.SteeringVector.step
Input H
Arguments Steering vector object.
FREQ
Operating frequencies in hertz. FREQ is a row vector of length L.
ANG
Directions in degrees. ANG can be either a 2-by-M matrix or a
row vector of length M.
If ANG is a 2-by-M matrix, each column of the matrix specifies
the direction in space in the form [azimuth; elevation]. The
azimuth angle must be between –180 and 180 degrees, and the
elevation angle must be between –90 and 90 degrees.
If ANG is a row vector of length M, each element specifies a
direction’s azimuth angle. In this case, the corresponding
elevation angle is assumed to be 0.
STEERANGLE
Subarray steering angle in degrees. STEERANGLE can be a
length-2 column vector or a scalar.
If STEERANGLE is a length-2 vector, it has the form [azimuth;
elevation]. The azimuth angle must be between –180 and 180
degrees, and the elevation angle must be between –90 and 90
degrees.
If STEERANGLE is a scalar, it represents the azimuth angle. In
this case, the elevation angle is assumed to be 0.
Output SV
Arguments Steering vector. The form of the steering vector depends upon
whether the EnablePolarization property is set to true or
false.
1-1029
phased.SteeringVector.step
1-1030
phased.SteeringVector.step
hULA = phased.ULA('NumElements',2);
hsv = phased.SteeringVector('SensorArray',hULA);
Fc = 3e8;
ANG = [30; 20];
sv = step(hsv,Fc,ANG);
1-1031
phased.SteppedFMWaveform
Properties SampleRate
Sample rate
Specify the sample rate, in hertz, as a positive scalar. The quantity
(SampleRate ./ PRF) is a scalar or vector that must contain only
integers. The default value of this property corresponds to 1 MHz.
Default: 1e6
PulseWidth
Pulse width
Specify the length of each pulse (in seconds) as a positive scalar.
The value must satisfy PulseWidth <= 1./PRF.
Default: 50e-6
1-1032
phased.SteppedFMWaveform
PRF
Pulse repetition frequency
Specify the pulse repetition frequency (in hertz) as a scalar or a
row vector. The default value of this property corresponds to 10
kHz.
To implement a constant PRF, specify PRF as a positive scalar.
To implement a staggered PRF, specify PRF as a row vector with
positive elements. When PRF is a vector, the output pulses use
successive elements of the vector as the PRF. If the last element
of the vector is reached, the process continues cyclically with the
first element of the vector.
The value of this property must satisfy these constraints:
Default: 1e4
FrequencyStep
Linear frequency step size
Specify the linear frequency step size (in hertz) as a positive
scalar. The default value of this property corresponds to 20 kHz.
Default: 2e4
NumSteps
Specify the number of frequency steps as a positive integer. When
NumSteps is 1, the stepped FM waveform reduces to a rectangular
waveform.
Default: 5
1-1033
phased.SteppedFMWaveform
OutputFormat
Output signal format
Specify the format of the output signal as one of 'Pulses'
or 'Samples'. When you set the OutputFormat property to
'Pulses', the output of the step method is in the form of multiple
pulses. In this case, the number of pulses is the value of the
NumPulses property.
When you set the OutputFormat property to 'Samples', the
output of the step method is in the form of multiple samples. In
this case, the number of samples is the value of the NumSamples
property.
Default: 'Pulses'
NumSamples
Number of samples in output
Specify the number of samples in the output of the step method
as a positive integer. This property applies only when you set the
OutputFormat property to 'Samples'.
Default: 100
NumPulses
Number of pulses in output
Specify the number of pulses in the output of the step method as
a positive integer. This property applies only when you set the
OutputFormat property to 'Pulses'.
Default: 1
1-1034
phased.SteppedFMWaveform
Examples Create a stepped frequency pulse waveform object, and plot the third
pulse.
hw = phased.SteppedFMWaveform('NumSteps',3,'FrequencyStep',2e4);
1-1035
phased.SteppedFMWaveform
plot(hw,'PulseIdx',3);
1-1036
phased.SteppedFMWaveform
1-1037
phased.SteppedFMWaveform.bandwidth
Syntax BW = bandwidth(H)
Description BW = bandwidth(H) returns the bandwidth (in hertz) of the pulses for
the stepped FM pulse waveform H. If there are N frequency steps, the
bandwidth equals N times the value of the FrequencyStep property.
If there is no frequency stepping, the bandwidth equals the reciprocal
of the pulse width.
Input H
Arguments Stepped FM pulse waveform object.
Output BW
Arguments Bandwidth of the pulses, in hertz.
H = phased.SteppedFMWaveform;
bw = bandwidth(H)
1-1038
phased.SteppedFMWaveform.clone
Purpose Create stepped FM pulse waveform object with same property values
Syntax C = clone(H)
1-1039
phased.SteppedFMWaveform.getMatchedFilter
Examples Get the matched filter coefficients for a stepped FM pulse waveform.
hw = phased.SteppedFMWaveform(...
'NumSteps',3,'FrequencyStep',2e4,...
'OutputFormat','Pulses','NumPulses',3);
coeff = getMatchedFilter(hw);
1-1040
phased.SteppedFMWaveform.getNumInputs
Syntax N = getNumInputs(H)
1-1041
phased.SteppedFMWaveform.getNumOutputs
Syntax N = getNumOutputs(H)
1-1042
phased.SteppedFMWaveform.isLocked
Syntax TF = isLocked(H)
1-1043
phased.SteppedFMWaveform.plot
Syntax plot(Hwav)
plot(Hwav,Name,Value)
plot(Hwav,Name,Value,LineSpec)
h = plot( ___ )
Description plot(Hwav) plots the real part of the waveform specified by Hwav.
plot(Hwav,Name,Value) plots the waveform with additional options
specified by one or more Name,Value pair arguments.
plot(Hwav,Name,Value,LineSpec) specifies the same line color, line
style, or marker options as are available in the MATLAB plot function.
h = plot( ___ ) returns the line handle in the figure.
Input Hwav
Arguments Waveform object. This variable must be a scalar that represents a
single waveform object.
LineSpec
String that specifies the same line color, style, or marker options
as are available in the MATLAB plot function. If you specify a
PlotType value of 'complex', then LineSpec applies to both the
real and imaginary subplots.
Default: 'b'
’PlotType’
1-1044
phased.SteppedFMWaveform.plot
Specifies whether the function plots the real part, imaginary part,
or both parts of the waveform. Valid values are 'real', 'imag',
and 'complex'.
Default: 'real'
’PulseIdx’
Index of the pulse to plot. This value must be a scalar.
Default: 1
Output h
Arguments Handle to the line or lines in the figure. For a PlotType value of
'complex', h is a column vector. The first and second elements of
this vector are the handles to the lines in the real and imaginary
subplots, respectively.
hw = phased.SteppedFMWaveform;
plot(hw);
1-1045
phased.SteppedFMWaveform.plot
1-1046
phased.SteppedFMWaveform.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-1047
phased.SteppedFMWaveform.reset
Syntax reset(H)
1-1048
phased.SteppedFMWaveform.step
Syntax Y = step(H)
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Examples Create a stepped frequency pulse waveform object with a frequency step
of 20 kHz and three frequency steps.
hw = phased.SteppedFMWaveform(...
'NumSteps',3,'FrequencyStep',2e4,...
'OutputFormat','Pulses','NumPulses',1);
% Use the step method to obtain the pulses.
% Pulse 1
pulse1 = step(hw);
1-1049
phased.SteppedFMWaveform.step
1-1050
phased.StretchProcessor
Properties SampleRate
Sample rate
Specify the sample rate, in hertz, as a positive scalar. The quantity
(SampleRate ./ PRF) is a scalar or vector that must contain only
integers. The default value of this property corresponds to 1 MHz.
Default: 1e6
PulseWidth
Pulse width
1-1051
phased.StretchProcessor
Default: 50e-6
PRF
Pulse repetition frequency
Specify the pulse repetition frequency (in hertz) as a scalar or a
row vector. The default value of this property corresponds to 10
kHz.
To implement a constant PRF, specify PRF as a positive scalar.
To implement a staggered PRF, specify PRF as a row vector with
positive elements. When PRF is a vector, the output pulses use
successive elements of the vector as the PRF. If the last element
of the vector is reached, the process continues cyclically with the
first element of the vector.
The value of this property must satisfy these constraints:
Default: 1e4
SweepSlope
FM sweep slope
Specify the slope of the linear FM sweeping, in hertz per second,
as a scalar.
Default: 2e9
SweepInterval
Location of FM sweep interval
1-1052
phased.StretchProcessor
Default: 'Positive'
PropagationSpeed
Signal propagation speed
Specify the propagation speed of the signal, in meters per second,
as a positive scalar.
ReferenceRange
Reference range of stretch processing
Specify the center of ranges of interest, in meters, as a positive
scalar. The reference range must be within the unambiguous
range of one pulse. This property is tunable.
Default: 5000
RangeSpan
Span of ranges of interest
Specify the length of the interval for ranges of interest, in meters,
as a positive scalar. The range span is centered at the range value
specified in the ReferenceRange property.
Default: 500
1-1053
phased.StretchProcessor
hwav = phased.LinearFMWaveform;
x = step(hwav);
c = 3e8; r = 4950;
num_sample = r/(c/(2*hwav.SampleRate));
x = circshift(x,num_sample);
hs = getStretchProcessor(hwav,5000,200,c);
y = step(hs,x);
[Pxx,F] = periodogram(y,[],2048,hs.SampleRate,'centered');
plot(F/1000,10*log10(Pxx)); grid;
xlabel('Frequency (kHz)');
1-1054
phased.StretchProcessor
ylabel('Power/Frequency (dB/Hz)');
title('Periodogram Power Spectrum Density Estimate');
[~,rngidx] = findpeaks(pow2db(Pxx/max(Pxx)),...
'MinPeakHeight',-5);
rngfreq = F(rngidx);
re = stretchfreq2rng(rngfreq,hs.SweepSlope,...
1-1055
phased.StretchProcessor
hs.ReferenceRange,c);
1-1056
phased.StretchProcessor.clone
Syntax C = clone(H)
1-1057
phased.StretchProcessor.getNumInputs
Syntax N = getNumInputs(H)
1-1058
phased.StretchProcessor.getNumOutputs
Syntax N = getNumOutputs(H)
1-1059
phased.StretchProcessor.isLocked
Syntax TF = isLocked(H)
1-1060
phased.StretchProcessor.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-1061
phased.StretchProcessor.step
Syntax Y = step(H,X)
Input H
Arguments Stretch processor object.
X
Input signal. Each column represents one receiving pulse.
Output Y
Arguments Result of stretch processing. The dimensions of Y match the
dimensions of X.
hwav = phased.LinearFMWaveform;
x = step(hwav);
c = 3e8; r = 4950;
num_sample = r/(c/(2*hwav.SampleRate));
x = circshift(x,num_sample);
hs = getStretchProcessor(hwav,5000,200,c);
y = step(hs,x);
[Pxx,F] = periodogram(y,[],2048,hs.SampleRate,'centered');
1-1062
phased.StretchProcessor.step
plot(F/1000,10*log10(Pxx)); grid;
xlabel('Frequency (kHz)');
ylabel('Power/Frequency (dB/Hz)');
title('Periodogram Power Spectrum Density Estimate');
[~,rngidx] = findpeaks(pow2db(Pxx/max(Pxx)),...
'MinPeakHeight',-5);
1-1063
phased.StretchProcessor.step
rngfreq = F(rngidx);
re = stretchfreq2rng(rngfreq,hs.SweepSlope,...
hs.ReferenceRange,c);
1-1064
phased.SubbandPhaseShiftBeamformer
Properties SensorArray
Sensor array
Sensor array specified as an array System object belonging to the
phased package. A sensor array can contain subarrays.
PropagationSpeed
Signal propagation speed
Specify the propagation speed of the signal, in meters per second,
as a positive scalar.
1-1065
phased.SubbandPhaseShiftBeamformer
OperatingFrequency
System operating frequency
Specify the operating frequency of the beamformer in hertz as a
scalar. The default value of this property corresponds to 300 MHz.
Default: 3e8
SampleRate
Signal sampling rate
Specify the signal sampling rate (in hertz) as a positive scalar.
Default: 1e6
NumSubbands
Number of subbands
Specify the number of subbands used in the subband processing
as a positive integer.
Default: 64
DirectionSource
Source of beamforming direction
Specify whether the beamforming direction for the beamformer
comes from the Direction property of this object or from an
input argument in step. Values of this property are:
1-1066
phased.SubbandPhaseShiftBeamformer
Default: 'Property'
Direction
Beamforming directions
Specify the beamforming directions of the beamformer as a
two-row matrix. Each column of the matrix has the form
[AzimuthAngle; ElevationAngle] (in degrees). Each azimuth angle
must be between –180 and 180 degrees, and each elevation angle
must be between –90 and 90 degrees. This property applies when
you set the DirectionSource property to 'Property'.
Default: [0; 0]
WeightsOutputPort
Output beamforming weights
To obtain the weights used in the beamformer, set this property to
true and use the corresponding output argument when invoking
step. If you do not want to obtain the weights, set this property to
false.
Default: false
SubbandsOutputPort
Output subband center frequencies
To obtain the center frequencies of each subband, set this property
to true and use the corresponding output argument when
invoking step. If you do not want to obtain the center frequencies,
set this property to false.
Default: false
1-1067
phased.SubbandPhaseShiftBeamformer
% Signal simulation
ha = phased.ULA('NumElements',11,'ElementSpacing',0.3);
ha.Element.FrequencyRange = [20 20000];
fs = 1e3; carrierFreq = 2e3; t = (0:1/fs:2)';
x = chirp(t,0,2,fs);
c = 1500; % Wave propagation speed (m/s)
hc = phased.WidebandCollector('Sensor',ha,...
'PropagationSpeed',c,'SampleRate',fs,...
'ModulatedInput',true,'CarrierFrequency',carrierFreq);
incidentAngle = [10; 30];
x = step(hc,x,incidentAngle);
noise = 0.3*(randn(size(x)) + 1j*randn(size(x)));
rx = x+noise;
% Beamforming
1-1068
phased.SubbandPhaseShiftBeamformer
hbf = phased.SubbandPhaseShiftBeamformer('SensorArray',ha,...
'Direction',incidentAngle,...
'OperatingFrequency',carrierFreq,'PropagationSpeed',c,...
'SampleRate',fs,'SubbandsOutputPort',true,...
'WeightsOutputPort',true);
[y,w,subbandfreq] = step(hbf,rx);
% Plot signals
plot(t(1:300),real(rx(1:300,6)),'r:',t(1:300),real(y(1:300)));
xlabel('Time'); ylabel('Amplitude');
legend('Original','Beamformed');
1-1069
phased.SubbandPhaseShiftBeamformer
1-1070
phased.SubbandPhaseShiftBeamformer
Algorithms The subband phase shift beamformer separates the signal into several
subbands and applies narrowband phase shift beamforming to the
signal in each subband. The beamformed signals in all the subbands
are regrouped to form the output signal.
For further details, see [1].
1-1071
phased.SubbandPhaseShiftBeamformer
1-1072
phased.SubbandPhaseShiftBeamformer.clone
Purpose Create subband phase shift beamformer object with same property
values
Syntax C = clone(H)
1-1073
phased.SubbandPhaseShiftBeamformer.getNumInputs
Syntax N = getNumInputs(H)
1-1074
phased.SubbandPhaseShiftBeamformer.getNumOutputs
Syntax N = getNumOutputs(H)
1-1075
phased.SubbandPhaseShiftBeamformer.isLocked
Syntax TF = isLocked(H)
1-1076
phased.SubbandPhaseShiftBeamformer.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-1077
phased.SubbandPhaseShiftBeamformer.step
Syntax Y = step(H,X)
Y = step(H,X,ANG)
[Y,W] = step( ___ )
[Y,FREQ] = step( ___ )
[Y,W,FREQ] = step( ___ )
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
1-1078
phased.SubbandPhaseShiftBeamformer.step
Input H
Arguments Beamformer object.
X
Input signal, specified as an M-by-N matrix. If the sensor array
contains subarrays, N is the number of subarrays; otherwise, N is
the number of elements.
ANG
Beamforming directions, specified as a two-row matrix. Each
column has the form [AzimuthAngle; ElevationAngle], in degrees.
Each azimuth angle must be between –180 and 180 degrees, and
each elevation angle must be between –90 and 90 degrees.
Output Y
Arguments Beamformed output. Y is an M-by-L matrix, where M is the
number of rows of X and L is the number of beamforming
directions.
W
Beamforming weights. W has dimensions N-by-K-by-L. K is the
number of subbands in the NumSubbands property. L is the
number of beamforming directions. If the sensor array contains
subarrays, N is the number of subarrays; otherwise, N is the
number of elements. Each column of W specifies the narrowband
beamforming weights used in the corresponding subband for the
corresponding direction.
FREQ
Center frequencies of subbands. FREQ is a column vector of
length K, where K is the number of subbands in the NumSubbands
property.
1-1079
phased.SubbandPhaseShiftBeamformer.step
% Signal simulation
ha = phased.ULA('NumElements',11,'ElementSpacing',0.3);
ha.Element.FrequencyRange = [20 20000];
fs = 1e3; carrierFreq = 2e3; t = (0:1/fs:2)';
x = chirp(t,0,2,fs);
c = 1500; % Wave propagation speed (m/s)
hc = phased.WidebandCollector('Sensor',ha,...
'PropagationSpeed',c,'SampleRate',fs,...
'ModulatedInput',true,'CarrierFrequency',carrierFreq);
incidentAngle = [10; 30];
x = step(hc,x,incidentAngle);
noise = 0.3*(randn(size(x)) + 1j*randn(size(x)));
rx = x+noise;
% Beamforming
hbf = phased.SubbandPhaseShiftBeamformer('SensorArray',ha,...
'Direction',incidentAngle,...
'OperatingFrequency',carrierFreq,'PropagationSpeed',c,...
'SampleRate',fs,'SubbandsOutputPort',true,...
'WeightsOutputPort',true);
[y,w,subbandfreq] = step(hbf,rx);
Algorithms The subband phase shift beamformer separates the signal into several
subbands and applies narrowband phase shift beamforming to the
signal in each subband. The beamformed signals in all the subbands
are regrouped to form the output signal.
For further details, see [1].
1-1080
phased.SumDifferenceMonopulseTracker
1 Define and set up your sum and difference monopulse DOA estimator.
See “Construction” on page 1-1081.
Properties SensorArray
Handle to sensor array
Specify the sensor array as a handle. The sensor array must be a
phased.ULA object.
PropagationSpeed
Signal propagation speed
Specify the propagation speed of the signal, in meters per second,
as a positive scalar.
1-1081
phased.SumDifferenceMonopulseTracker
OperatingFrequency
System operating frequency
Specify the operating frequency of the system in hertz as a
positive scalar. The default value corresponds to 300 MHz.
Default: 3e8
ha = phased.ULA('NumElements',4);
hstv = phased.SteeringVector('SensorArray',ha);
hmp = phased.SumDifferenceMonopulseTracker('SensorArray',ha);
x = step(hstv,hmp.OperatingFrequency,60.1).';
est_dir = step(hmp,x,60);
1-1082
phased.SumDifferenceMonopulseTracker
1-1083
phased.SumDifferenceMonopulseTracker.clone
Purpose Create ULA monopulse tracker object with same property values
Syntax C = clone(H)
1-1084
phased.SumDifferenceMonopulseTracker.getNumInputs
Syntax N = getNumInputs(H)
1-1085
phased.SumDifferenceMonopulseTracker.getNumOutputs
Syntax N = getNumOutputs(H)
1-1086
phased.SumDifferenceMonopulseTracker.isLocked
Syntax TF = isLocked(H)
1-1087
phased.SumDifferenceMonopulseTracker.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-1088
phased.SumDifferenceMonopulseTracker.step
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Input H
Arguments Tracker object of type phased.SumDifferenceMonopulseTracker.
X
Input signal, specified as a row vector whose number of columns
corresponds to number of channels.
STANG
Initial guess of the direction, specified as a scalar that represents
the broadside angle in degrees. A typical initial guess is the
current steering angle. The value of STANG is between –90 and
90. The angle is defined in the array’s local coordinate system.
For details regarding the local coordinate system of the ULA, type
phased.ULA.coordinateSystemInfo.
Output ESTANG
Arguments Estimate of incoming direction, returned as a scalar that
represents the broadside angle in degrees. The value is between
1-1089
phased.SumDifferenceMonopulseTracker.step
–90 and 90. The angle is defined in the array’s local coordinate
system.
ha = phased.ULA('NumElements',4);
hstv = phased.SteeringVector('SensorArray',ha);
hmp = phased.SumDifferenceMonopulseTracker('SensorArray',ha);
x = step(hstv,hmp.OperatingFrequency,60.1).';
est_dir = step(hmp,x,60);
1-1090
phased.SumDifferenceMonopulseTracker2D
1 Define and set up your sum and difference monopulse DOA estimator.
See “Construction” on page 1-1091.
Properties SensorArray
Handle to sensor array
Specify the sensor array as a handle. The sensor array must be a
phased.URA object.
PropagationSpeed
Signal propagation speed
Specify the propagation speed of the signal, in meters per second,
as a positive scalar.
1-1091
phased.SumDifferenceMonopulseTracker2D
OperatingFrequency
System operating frequency
Specify the operating frequency of the system in hertz as a
positive scalar. The default value corresponds to 300 MHz.
Default: 3e8
ha = phased.URA('Size',4);
hstv = phased.SteeringVector('SensorArray',ha);
hmp = phased.SumDifferenceMonopulseTracker2D('SensorArray',ha);
x = step(hstv,hmp.OperatingFrequency,[60.1; 19.5]).';
est_dir = step(hmp,x,[60; 20]);
1-1092
phased.SumDifferenceMonopulseTracker2D
1-1093
phased.SumDifferenceMonopulseTracker2D.clone
Purpose Create URA monopulse tracker object with same property values
Syntax C = clone(H)
1-1094
phased.SumDifferenceMonopulseTracker2D.getNumInputs
Syntax N = getNumInputs(H)
1-1095
phased.SumDifferenceMonopulseTracker2D.getNumOutputs
Syntax N = getNumOutputs(H)
1-1096
phased.SumDifferenceMonopulseTracker2D.isLocked
Syntax TF = isLocked(H)
1-1097
phased.SumDifferenceMonopulseTracker2D.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-1098
phased.SumDifferenceMonopulseTracker2D.step
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Input H
Arguments Tracker object of type
phased.SumDifferenceMonopulseTracker2D.
X
Input signal, specified as a row vector whose number of columns
corresponds to number of channels.
STANG
Initial guess of the direction, specified as a 2-by-1 vector in the
form [AzimuthAngle; ElevationAngle] in degrees. A typical
initial guess is the current steering angle. Azimuth angles must
be between –180 and 180. Elevation angles must be between –90
and 90. Angles are measured in the local coordinate system of the
array. For details regarding the local coordinate system of the
URA, type phased.URA.coordinateSystemInfo.
1-1099
phased.SumDifferenceMonopulseTracker2D.step
Output ESTANG
Arguments Estimate of incoming direction, returned as a 2-by-1 vector in the
form [AzimuthAngle; ElevationAngle] in degrees. Azimuth
angles are between –180 and 180. Elevation angles are between
–90 and 90. Angles are measured in the local coordinate system of
the array.
ha = phased.URA('Size',4);
hstv = phased.SteeringVector('SensorArray',ha);
hmp = phased.SumDifferenceMonopulseTracker2D('SensorArray',ha);
x = step(hstv,hmp.OperatingFrequency,[60.1; 19.5]).';
est_dir = step(hmp,x,[60; 20]);
1-1100
phased.TimeDelayBeamformer
Properties SensorArray
Handle to sensor array
Specify the sensor array as a handle. The sensor array must be
an array object in the phased package. The array cannot contain
subarrays.
PropagationSpeed
Signal propagation speed
Specify the propagation speed of the signal, in meters per second,
as a positive scalar.
1-1101
phased.TimeDelayBeamformer
SampleRate
Signal sampling rate
Specify the signal sampling rate (in hertz) as a positive scalar.
Default: 1e6
DirectionSource
Source of beamforming direction
Specify whether the beamforming direction comes from the
Direction property of this object or from an input argument in
step. Values of this property are:
Default: 'Property'
Direction
Beamforming direction
Specify the beamforming direction of the beamformer as a column
vector of length 2. The direction is specified in the format of
[AzimuthAngle; ElevationAngle] (in degrees). The azimuth
angle should be between –180 and 180. The elevation angle
should be between –90 and 90. This property applies when you
set the DirectionSource property to 'Property'.
Default: [0; 0]
WeightsOutputPort
1-1102
phased.TimeDelayBeamformer
Default: false
% Signal simulation
ha = phased.ULA('NumElements',11,'ElementSpacing',0.04);
ha.Element.FrequencyRange = [20 20000];
fs = 8e3; t = 0:1/fs:0.3;
x = chirp(t,0,1,500);
c = 340; % Wave propagation speed (m/s)
hc = phased.WidebandCollector('Sensor',ha,...
'PropagationSpeed',c,'SampleRate',fs,'ModulatedInput',false);
incidentAngle = [-50;30];
x = step(hc,x.',incidentAngle);
1-1103
phased.TimeDelayBeamformer
noise = 0.2*randn(size(x));
rx = x+noise;
% Beamforming
hbf = phased.TimeDelayBeamformer('SensorArray',ha,...
'SampleRate',fs,'PropagationSpeed',c,...
'Direction',incidentAngle);
y = step(hbf,rx);
% Plot
plot(t,rx(:,6),'r:',t,y);
xlabel('Time'); ylabel('Amplitude');
legend('Original','Beamformed');
1-1104
phased.TimeDelayBeamformer
1-1105
phased.TimeDelayBeamformer
1-1106
phased.TimeDelayBeamformer.clone
Purpose Create time delay beamformer object with same property values
Syntax C = clone(H)
1-1107
phased.TimeDelayBeamformer.getNumInputs
Syntax N = getNumInputs(H)
1-1108
phased.TimeDelayBeamformer.getNumOutputs
Syntax N = getNumOutputs(H)
1-1109
phased.TimeDelayBeamformer.isLocked
Syntax TF = isLocked(H)
1-1110
phased.TimeDelayBeamformer.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-1111
phased.TimeDelayBeamformer.step
Syntax Y = step(H,X)
Y = step(H,X,ANG)
[Y,W] = step( ___ )
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
1-1112
phased.TimeDelayBeamformer.step
% Signal simulation
ha = phased.ULA('NumElements',11,'ElementSpacing',0.04);
ha.Element.FrequencyRange = [20 20000];
fs = 8e3; t = 0:1/fs:0.3;
x = chirp(t,0,1,500);
c = 340; % Wave propagation speed (m/s)
hc = phased.WidebandCollector('Sensor',ha,...
'PropagationSpeed',c,'SampleRate',fs,'ModulatedInput',false);
incidentAngle = [-50;30];
x = step(hc,x.',incidentAngle);
noise = 0.2*randn(size(x));
rx = x+noise;
% Beamforming
hbf = phased.TimeDelayBeamformer('SensorArray',ha,...
'SampleRate',fs,'PropagationSpeed',c,...
'Direction',incidentAngle);
y = step(hbf,rx);
1-1113
phased.TimeDelayLCMVBeamformer
Properties SensorArray
Handle to sensor array
Specify the sensor array as a handle. The sensor array must be
an array object in the phased package. The array cannot contain
subarrays.
PropagationSpeed
Signal propagation speed
1-1114
phased.TimeDelayLCMVBeamformer
SampleRate
Signal sampling rate
Specify the signal sampling rate (in hertz) as a positive scalar.
Default: 1e6
FilterLength
FIR filter length
Specify the length of the FIR filter behind each sensor element in
the array as a positive integer.
Default: 2
Constraint
Constraint matrix
Specify the constraint matrix used for time delay LCMV
beamformer as an M-by-K matrix. Each column of the
matrix is a constraint and M is the degrees of freedom of the
beamformer. For a time delay LCMV beamformer, H, M is given
by H.SensorArray*H.FilterLength.
Default: [1; 1]
DesiredResponse
Desired response vector
Specify the desired response used for time delay LCMV
beamformer as a column vector of length K, where K is the
number of constraints in the Constraint property. Each element
1-1115
phased.TimeDelayLCMVBeamformer
DiagonalLoadingFactor
Diagonal loading factor
Specify the diagonal loading factor as a positive scalar. Diagonal
loading is a technique used to achieve robust beamforming
performance, especially when the sample support is small. This
property is tunable.
Default: 0
TrainingInputPort
Add input to specify training data
To specify additional training data, set this property to true and
use the corresponding input argument when you invoke step.
To use the input signal as the training data, set this property to
false.
Default: false
DirectionSource
Source of beamforming direction
Specify whether the beamforming direction comes from the
Direction property of this object or from an input argument in
step. Values of this property are:
1-1116
phased.TimeDelayLCMVBeamformer
Default: 'Property'
Direction
Beamforming direction
Specify the beamforming direction of the beamformer as a column
vector of length 2. The direction is specified in the format of
[AzimuthAngle; ElevationAngle] (in degrees). The azimuth
angle should be between –180 and 180. The elevation angle
should be between –90 and 90. This property applies when you
set the DirectionSource property to 'Property'.
Default: [0; 0]
WeightsOutputPort
Output beamforming weights
To obtain the weights used in the beamformer, set this property to
true and use the corresponding output argument when invoking
step. If you do not want to obtain the weights, set this property to
false.
Default: false
1-1117
phased.TimeDelayLCMVBeamformer
% Signal simulation
ha = phased.ULA('NumElements',11,'ElementSpacing',0.04);
ha.Element.FrequencyRange = [20 20000];
fs = 8e3; t = 0:1/fs:0.3;
x = chirp(t,0,1,500);
c = 340; % Wave propagation speed (m/s)
hc = phased.WidebandCollector('Sensor',ha,...
'PropagationSpeed',c,'SampleRate',fs,'ModulatedInput',false);
incidentAngle = [-50; 30];
x = step(hc,x.',incidentAngle);
noise = 0.2*randn(size(x));
rx = x+noise;
% Beamforming
ha = phased.ULA('NumElements',11,'ElementSpacing',0.04);
1-1118
phased.TimeDelayLCMVBeamformer
hbf = phased.TimeDelayLCMVBeamformer('SensorArray',ha,...
'PropagationSpeed',c,'SampleRate',fs,'FilterLength',5,...
'Direction',incidentAngle);
hbf.Constraint = kron(eye(5),ones(11,1));
hbf.DesiredResponse = eye(5, 1);
y = step(hbf,rx);
% Plot
plot(t,rx(:,6),'r:',t,y);
xlabel('Time')
ylabel('Amplitude')
legend('Original','Beamformed');
1-1119
phased.TimeDelayLCMVBeamformer
1-1120
phased.TimeDelayLCMVBeamformer
References [1] Frost, O. “An Algorithm For Linearly Constrained Adaptive Array
Processing”, Proceedings of the IEEE. Vol. 60, Number 8, August, 1972,
pp. 926–935.
1-1121
phased.TimeDelayLCMVBeamformer.clone
Purpose Create time delay LCMV beamformer object with same property values
Syntax C = clone(H)
1-1122
phased.TimeDelayLCMVBeamformer.getNumInputs
Syntax N = getNumInputs(H)
1-1123
phased.TimeDelayLCMVBeamformer.getNumOutputs
Syntax N = getNumOutputs(H)
1-1124
phased.TimeDelayLCMVBeamformer.isLocked
Syntax TF = isLocked(H)
1-1125
phased.TimeDelayLCMVBeamformer.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-1126
phased.TimeDelayLCMVBeamformer.step
Syntax Y = step(H,X)
Y = step(H,X,XT)
Y = step(H,X,ANG)
[Y,W] = step( ___ )
1-1127
phased.TimeDelayLCMVBeamformer.step
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
% Signal simulation
ha = phased.ULA('NumElements',11,'ElementSpacing',0.04);
ha.Element.FrequencyRange = [20 20000];
fs = 8e3; t = 0:1/fs:0.3;
x = chirp(t,0,1,500);
c = 340; % Wave propagation speed (m/s)
hc = phased.WidebandCollector('Sensor',ha,...
'PropagationSpeed',c,'SampleRate',fs,'ModulatedInput',false);
incidentAngle = [-50; 30];
x = step(hc,x.',incidentAngle);
noise = 0.2*randn(size(x));
rx = x+noise;
% Beamforming
ha = phased.ULA('NumElements',11,'ElementSpacing',0.04);
hbf = phased.TimeDelayLCMVBeamformer('SensorArray',ha,...
'PropagationSpeed',c,'SampleRate',fs,'FilterLength',5,...
'Direction',incidentAngle);
hbf.Constraint = kron(eye(5),ones(11,1));
hbf.DesiredResponse = eye(5, 1);
y = step(hbf,rx);
1-1128
phased.TimeDelayLCMVBeamformer.step
1-1129
phased.TimeVaryingGain
2 Call step to apply the time varying gain according to the properties
of phased.TimeVaryingGain. The behavior of step is specific to each
object in the toolbox.
Properties RangeLoss
Loss at each input sample range
Specify the loss (in decibels) due to the range for each sample
in the input signal as a vector.
Default: 0
ReferenceLoss
Loss at reference range
Specify the loss (in decibels) at a given reference range as a scalar.
Default: 0
1-1130
phased.TimeVaryingGain
Examples Apply time varying gain to a signal to compensate for signal power
loss due to range.
% Plot signals
tref = find(rngloss==refloss);
stem([t t],[abs(x) abs(y)]);
hold on;
stem(tref,x(tref),'filled','r');
xlabel('Time (s)'); ylabel('Magnitude (V)');
grid on;
legend('Before time varying gain',...
'After time varying gain',...
'Reference range');
1-1131
phased.TimeVaryingGain
1-1132
phased.TimeVaryingGain.clone
Purpose Create time varying gain object with same property values
Syntax C = clone(H)
1-1133
phased.TimeVaryingGain.getNumInputs
Syntax N = getNumInputs(H)
1-1134
phased.TimeVaryingGain.getNumOutputs
Syntax N = getNumOutputs(H)
1-1135
phased.TimeVaryingGain.isLocked
Syntax TF = isLocked(H)
1-1136
phased.TimeVaryingGain.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-1137
phased.TimeVaryingGain.step
Syntax Y = step(H,X)
Description Y = step(H,X) applies time varying gains to the input signal X. The
process equalizes power levels across all samples to match a given
reference range. The compensated signal is returned in Y. X can be a
column vector, a matrix, or a cube. The gain is applied to each column
in X independently. The number of rows in X must match the length
of the loss vector specified in the RangeLoss property. Y has the same
dimensionality as X.
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Examples Apply time varying gain to a signal to compensate for signal power
loss due to range.
% Plot signals
tref = find(rngloss==refloss);
stem([t t],[abs(x) abs(y)]);
hold on;
stem(tref,x(tref),'filled','r');
1-1138
phased.TimeVaryingGain.step
1-1139
phased.Transmitter
Purpose Transmitter
Properties PeakPower
Peak power
Specify the transmit peak power (in watts) as a positive scalar.
Default: 5000
Gain
Transmit gain
Specify the transmit gain (in decibels) as a real scalar.
Default: 20
LossFactor
Loss factor
1-1140
phased.Transmitter
Default: 0
InUseOutputPort
Enable transmitter status output
To obtain the transmitter in-use status for each output sample, set
this property to true and use the corresponding output argument
when invoking step. In this case, 1’s indicate the transmitter is
on, and 0’s indicate the transmitter is off. If you do not want to
obtain the transmitter in-use status, set this property to false.
Default: false
CoherentOnTransmit
Preserve coherence among pulses
Specify whether to preserve coherence among transmitted pulses.
When you set this property to true, the transmitter does not
introduce any random phase to the output pulses. When you set
this property to false, the transmitter adds a random phase noise
to each transmitted pulse. The random phase noise is introduced
by multiplication of the pulse by ejϕwhere ϕ is a uniform random
variable on the interval [0,2π].
Default: true
PhaseNoiseOutputPort
Enable pulse phase noise output
To obtain the introduced transmitter random phase noise for each
output sample, set this property to true and use the corresponding
output argument when invoking step. You can use in the receiver
to simulate coherent on receive systems. If you do not want to
obtain the random phase noise, set this property to false. This
1-1141
phased.Transmitter
Default: false
SeedSource
Source of seed for random number generator
Default: 'Auto'
Seed
Seed for random number generator
Specify the seed for the random number generator as a scalar
integer between 0 and 232–1. This property applies when you set
the CoherentOnTransmit property to false and the SeedSource
property to 'Property'.
Default: 0
1-1142
phased.Transmitter
fs = 1e7;
hwav = phased.LinearFMWaveform('SampleRate',fs,...
'PulseWidth',1e-5,'SweepBandwidth',5e6);
x = step(hwav);
htx = phased.Transmitter('PeakPower',5e3);
y = step(htx,x);
1-1143
phased.Transmitter
1-1144
phased.Transmitter.clone
Syntax C = clone(H)
1-1145
phased.Transmitter.getNumInputs
Syntax N = getNumInputs(H)
1-1146
phased.Transmitter.getNumOutputs
Syntax N = getNumOutputs(H)
1-1147
phased.Transmitter.isLocked
Syntax TF = isLocked(H)
Description TF = isLocked(H) returns the locked status, TF, for the Transmitter
System object.
The isLocked method returns a logical value that indicates whether
input attributes and nontunable properties for the object are locked. The
object performs an internal initialization the first time the step method
is executed. This initialization locks nontunable properties and input
specifications, such as dimensions, complexity, and data type of the
input data. After locking, the isLocked method returns a true value.
1-1148
phased.Transmitter.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-1149
phased.Transmitter.reset
Syntax reset(H)
Description reset(H) resets the states of the Transmitter object, H. This method
resets the random number generator state if the SeedSource property
is applicable and has the value 'Property'.
1-1150
phased.Transmitter.step
Syntax Y = step(H,X)
[Y,STATUS] = step(H,X)
[Y,PHNOISE] = step(H,X)
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
1-1151
phased.Transmitter.step
fs = 1e7;
hwav = phased.LinearFMWaveform('SampleRate',fs,...
'PulseWidth',1e-5,'SweepBandwidth',5e6);
x = step(hwav);
htx = phased.Transmitter('PeakPower',5e3);
y = step(htx,x);
1-1152
phased.ULA
Properties Element
Element of array
Specify the element of the sensor array as a handle. The element
must be an element object in the phased package.
1-1153
phased.ULA
NumElements
Number of elements
An integer containing the number of elements in the array.
Default: 2
ElementSpacing
Element spacing
A scalar containing the spacing (in meters) between two adjacent
elements in the array.
Default: 0.5
Taper
Element tapering
Element tapering specified as a complex-valued scalar or a
complex-valued 1-by-N row vector. In this vector, N represents
the number of elements of the array. Tapers, also known as
weights, are applied to each sensor elements in the sensor array
and modify both the amplitude and phase of the received data. If
'Taper' is a scalar, the same weights are applied to each element.
If 'Taper' is a vector, each weight is applied to the corresponding
sensor element.
Default: 1
1-1154
phased.ULA
ha = phased.ULA('NumElements',4);
fc = 1e9;
ang = [0;0];
resp = step(ha,fc,ang);
c = physconst('LightSpeed');
plotResponse(ha,fc,c)
1-1155
phased.ULA
hmic = phased.OmnidirectionalMicrophoneElement(...
'FrequencyRange',[20 20e3]);
Nele = 10;
hula = phased.ULA('NumElements',Nele,...
1-1156
phased.ULA
'ElementSpacing',3e-3,...
'Element',hmic);
fc = 100;
ang = [0; 0];
resp = step(hula,fc,ang);
c = 340;
plotResponse(hula,fc,c,'RespCut','Az','Format','Polar');
1-1157
phased.ULA
Build the array and display its shape using the viewArray method.
h = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[100e6 1e9],'AxisDirection','Z');
ha = phased.ULA('NumElements',5,'Element',h,...
'Taper',[.5,.7,1,.7,.5]);
viewArray(ha,'ShowTaper',true,'ShowIndex','All')
isPolarizationCapable(ha)
ans =
1-1158
phased.ULA
fc = 150e6;
ang = [10];
1-1159
phased.ULA
resp = step(ha,fc,ang);
resp =
H: [5x2 double]
V: [5x2 double]
resp.V
-0.6124 -0.6124
-0.8573 -0.8573
-1.2247 -1.2247
-0.8573 -0.8573
-0.6124 -0.6124
c = physconst('LightSpeed');
plotResponse(ha,fc,c,'RespCut','Az','Format',...
'Polar','Polarization','V');
1-1160
phased.ULA
References [1] Brookner, E., ed. Radar Technology. Lexington, MA: LexBook, 1996.
1-1161
phased.ULA
1-1162
phased.ULA.clone
Syntax C = clone(H)
1-1163
phased.ULA.collectPlaneWave
Syntax Y = collectPlaneWave(H,X,ANG)
Y = collectPlaneWave(H,X,ANG,FREQ)
Y = collectPlaneWave(H,X,ANG,FREQ,C)
Input H
Arguments Array object.
X
Incoming signals, specified as an M-column matrix. Each column
of X represents an individual incoming signal.
ANG
Directions from which incoming signals arrive, in degrees. ANG
can be either a 2-by-M matrix or a row vector of length M.
If ANG is a 2-by-M matrix, each column specifies the direction of
arrival of the corresponding signal in X. Each column of ANG is in
the form [azimuth; elevation]. The azimuth angle must be
between –180 and 180 degrees, inclusive. The elevation angle
must be between –90 and 90 degrees, inclusive.
If ANG is a row vector of length M, each entry in ANG specifies the
azimuth angle. In this case, the corresponding elevation angle
is assumed to be 0.
FREQ
1-1164
phased.ULA.collectPlaneWave
Default: 3e8
C
Propagation speed of signal in meters per second.
Output Y
Arguments Received signals. Y is an N-column matrix, where N is the number
of elements in the array H. Each column of Y is the received signal
at the corresponding array element, with all incoming signals
combined.
1-1165
phased.ULA.getElementPosition
ha = phased.ULA;
pos = getElementPosition(ha)
1-1166
phased.ULA.getNumElements
Syntax N = getNumElements(H)
Examples Construct a default ULA, and obtain the number of elements in that
array.
ha = phased.ULA;
N = getNumElements(ha)
1-1167
phased.ULA.getNumInputs
Syntax N = getNumInputs(H)
1-1168
phased.ULA.getNumOutputs
Syntax N = getNumOutputs(H)
1-1169
phased.ULA.getTaper
Description wts = getTaper(h) returns the tapers, wts, applied to each element of
the phased uniform line array (ULA), h. Tapers are often referred to
as weights.
taper = taylorwin(5)';
ha = phased.ULA(5,'Taper',taper);
w = getTaper(ha)
w =
0.5181
1.2029
1.5581
1.2029
0.5181
1-1170
phased.ULA.isLocked
Syntax TF = isLocked(H)
Description TF = isLocked(H) returns the locked status, TF, for the ULA System
object.
The isLocked method returns a logical value that indicates whether
input attributes and nontunable properties for the object are locked. The
object performs an internal initialization the first time the step method
is executed. This initialization locks nontunable properties and input
specifications, such as dimensions, complexity, and data type of the
input data. After locking, the isLocked method returns a true value.
1-1171
phased.ULA.isPolarizationCapable
h = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[1e9 10e9]);
ha = phased.ULA('NumElements',3,'Element',h);
isPolarizationCapable(ha)
ans =
The returned value true (1) shows that this array supports
polarization.
1-1172
phased.ULA.plotResponse
Syntax plotResponse(H,FREQ,V)
plotResponse(H,FREQ,V,Name,Value)
hPlot = plotResponse( ___ )
Input H
Arguments Array object
FREQ
Operating frequency in Hertz specified as a scalar or 1-by-K row
vector. Values must lie within the range specified by a property of
H. That property is named FrequencyRange or FrequencyVector,
depending on the type of element in the array. The element has
no response at frequencies outside that range. If you set the
'RespCut' property of H to '3D', FREQ must be a scalar. When
FREQ is a row vector, plotResponse draws multiple frequency
responses on the same axes.
V
Propagation speed in meters per second.
1-1173
phased.ULA.plotResponse
value. Name must appear inside single quotes (' '). You can
specify several name and value pair arguments in any order as
Name1,Value1,...,NameN,ValueN.
’CutAngle’
Cut angle as a scalar. This argument is applicable only when
RespCut is 'Az' or 'El'. If RespCut is 'Az', CutAngle must
be between –90 and 90. If RespCut is 'El', CutAngle must be
between –180 and 180.
Default: 0
’Format’
Format of the plot, using one of 'Line', 'Polar', or 'UV'. If you
set Format to 'UV', FREQ must be a scalar.
Default: 'Line'
’NormalizeResponse’
Set this value to true to normalize the response pattern. Set this
value to false to plot the response pattern without normalizing
it. This parameter is not applicable when you set the Unit
parameter value to 'dbi'.
Default: true
’OverlayFreq’
Set this value to true to overlay pattern cuts in a 2-D line plot.
Set this value to false to plot pattern cuts against frequency in a
3-D waterfall plot. If this value is false, FREQ must be a vector
with at least two entries.
This parameter applies only when Format is not 'Polar' and
RespCut is not '3D'.
1-1174
phased.ULA.plotResponse
Default: true
’Polarization’
Specify the polarization options for plotting the array response
pattern. The allowable values are |'None' | 'Combined' | 'H'
| 'V' | where
Default: 'None'
’RespCut’
Cut of the response. Valid values depend on Format, as follows:
1-1175
phased.ULA.plotResponse
Default: 'db'
’Weights’
Weight values applied to the array, specified as a length-N
column vector or N-by-M matrix. The dimension N is the number
of elements in the array. The interpretation of M depends upon
whether the input argument FREQ is a scalar or row vector.
’AzimuthAngles’
1-1176
phased.ULA.plotResponse
Default: [-180:180]
’ElevationAngles’
Elevation angles for plotting array response, specified as a row
vector. The ElevationAngles parameter sets the display range
and resolution of elevation angles for visualizing the radiation
pattern. This parameter is allowed only when the RespCut
parameter is set to 'El' or '3D' and the Format parameter
is set to 'Line' or 'Polar'. The values of elevation angles
should lie between –90° and 90° and must be in nondecreasing
order. When yous set the RespCut parameter to '3D', you can
set the ElevationAngles and AzimuthAngles parameters
simultaneously.
Default: [-90:90]
’UGrid’
U coordinate values for plotting array response, specified as a
row vector. The UGrid parameter sets the display range and
resolution of the U coordinates for visualizing the radiation
pattern in U/V space. This parameter is allowed only when the
Format parameter is set to 'UV' and the RespCut parameter is
set to 'U' or '3D'. The values of UGrid should be between –1 and
1 and should be specified in nondecreasing order. You can set the
UGrid and VGrid parameters simultaneously.
1-1177
phased.ULA.plotResponse
Default: [-1:0.01:1]
’VGrid’
V coordinate values for plotting array response, specified as a
row vector. The VGrid parameter sets the display range and
resolution of the V coordinates for visualizing the radiation
pattern in U/V space. This parameter is allowed only when the
Format parameter is set to 'UV' and the RespCut parameter is
set to '3D'. The values of VGrid should be between –1 and 1 and
should be specified in nondecreasing order. You can set VGrid and
UGrid parameters simultaneously.
Default: [-1:0.01:1]
h = phased.ULA;
fc = [3e8 4e8];
c = physconst('LightSpeed');
plotResponse(h,fc,c)
1-1178
phased.ULA.plotResponse
ha = phased.ULA(4);
fc = 1e9; c = 3e8;
plotResponse(ha,fc,c,'RespCut','Az','Format','Polar');
1-1179
phased.ULA.plotResponse
1-1180
phased.ULA.plotResponse
s_omni = phased.OmnidirectionalMicrophoneElement(...
'FrequencyRange',[2000,8000],...
'BackBaffled',true);
s_ula = phased.ULA(11,'Element',s_omni,...
'ElementSpacing',0.04);
c = 343.0;
fc = 5000;
wts = taylorwin(11);
plotResponse(s_ula,fc,c,'RespCut','Az',...
'Format','Polar',...
'Weights',[ones(11,1),wts],...
'AzimuthAngles',[-45:.1:45]);
1-1181
phased.ULA.plotResponse
The plot shows that the tapered set of weights reduces the adjacent
sidelobes while broadening the main lobe.
1-1182
phased.ULA.plotResponse
fc = 1.5e9;
c = physconst('Lightspeed');
lambda = c/fc;
sCos = phased.CosineAntennaElement('FrequencyRange',...
[1e9 2e9],'CosinePower',[2.5,3.5]);
sULA = phased.ULA(11,0.5*lambda,'Element',sCos);
plotResponse(sULA,fc,c,'RespCut','Az','Unit','dbi');
1-1183
phased.ULA.plotResponse
1-1184
phased.ULA.plotResponse
1-1185
phased.ULA.plotGratingLobeDiagram
Syntax plotGratingLobeDiagram(H,FREQ)
plotGratingLobeDiagram(H,FREQ,ANGLE)
plotGratingLobeDiagram(H,FREQ,ANGLE,C)
plotGratingLobeDiagram(H,FREQ,ANGLE,C,F0)
hPlot = plotGratingLobeDiagram( ___ )
Input H
Arguments Antenna or microphone array, specified as a System object.
1-1186
phased.ULA.plotGratingLobeDiagram
FREQ
Signal frequency, specified as a scalar. Frequency units are hertz.
Values must lie within a range specified by the frequency property
of the array elements contained in H.Element. The frequency
property is named FrequencyRange or FrequencyVector,
depending on the element type.
ANGLE
Array steering angle, specified as either a 2-by-1 vector or a scalar.
If ANGLE is a vector, it takes the form [azimuth;elevation]. The
azimuth angle must lie in the range [-180 ,180 ]. The elevation
angle must lie in the range [-90 ,90 ]. All angle values are
specified in degrees. If the argument ANGLE is a scalar, it specifies
only the azimuth angle where the corresponding elevation angle
is 0°.
Default: [0;0]
C
Signal propagation speed, specified as a scalar. Units are meters
per second.
F0
Phase-shifter frequency of the array, specified as a scalar.
Frequency units are hertz When this argument is omitted, the
phase-shifter frequency is assumed to be the signal frequency,
FREQ.
Default: FREQ
1-1187
phased.ULA.plotGratingLobeDiagram
Assume the operating frequency of the array is 3 GHz and the spacing
between elements is 0.45 of the wavelength. All elements are isotropic
antenna elements. Steer the array in the direction 45 degrees in
azimuth and 0 degrees in elevation.
c = physconst('LightSpeed');
f = 3e9;
lambda = c/f;
sIso = phased.IsotropicAntennaElement;
sULA = phased.ULA('Element',sIso,'NumElements',4,...
'ElementSpacing',0.45*lambda);
plotGratingLobeDiagram(sULA,f,[45;0],c);
1-1188
phased.ULA.plotGratingLobeDiagram
The main lobe of the array is indicated by a filled black circle. The
grating lobes in the visible and nonvisible regions are indicated by
empty black circles. The visible region is defined by the direction cosine
limits between [-1,1] and is marked by the two vertical black lines.
Because the array spacing is less than one-half wavelength, there are
no grating lobes in the visible region of space. There are an infinite
number of grating lobes in the nonvisible regions, but only those in
the range [-3,3] are shown.
1-1189
phased.ULA.plotGratingLobeDiagram
Assume the operating frequency of the array is 3 GHz and the spacing
between elements is 0.65 of a wavelength. All elements are isotropic
antenna elements. Steer the array in the direction 45 degrees in
azimuth and 0 degrees in elevation.
c = physconst('LightSpeed');
f = 3e9;
lambda = c/f;
sIso = phased.IsotropicAntennaElement;
sULA = phased.ULA('Element',sIso,'NumElements',4,'ElementSpacing',0.65*la
plotGratingLobeDiagram(sULA,f,[45;0],c);
1-1190
phased.ULA.plotGratingLobeDiagram
The main lobe of the array is indicated by a filled black circle. The
grating lobes in the visible and nonvisible regions are indicated by
empty black circles. The visible region, marked by the two black vertical
lines, corresponds to arrival angles between -90 and 90 degrees. The
visible region is defined by the direction cosine limits .
Because the array spacing is greater than one-half wavelength, there is
now a grating lobe in the visible region of space. There are an infinite
number of grating lobes in the nonvisible regions, but only those for
which are shown.
1-1191
phased.ULA.plotGratingLobeDiagram
Plot the grating lobe diagram for a 4-element uniform linear array
having element spacing greater than one-half wavelength. Apply a
phase-shifter frequency that differs from the signal frequency. Grating
lobes are plotted in u-v coordinates.
Assume the signal frequency is 3 GHz and the spacing between
elements is 0.65 . All elements are isotropic antenna elements.
The phase-shifter frequency is set to 3.5 GHz. Steer the array in the
direction azimuth, elevation.
c = physconst('LightSpeed');
f = 3e9;
f0 = 3.5e9;
lambda = c/f;
sIso = phased.IsotropicAntennaElement;
sULA = phased.ULA('Element',sIso,'NumElements',4,...
'ElementSpacing',0.65*lambda );
plotGratingLobeDiagram(sULA,f,[45;0],c,f0);
1-1192
phased.ULA.plotGratingLobeDiagram
1-1193
phased.ULA.plotGratingLobeDiagram
grating lobe in the visible region of space. There are an infinite number
of grating lobes in the nonvisible regions, but only those for which
are shown.
The grating-lobe free region, shown in green, is the range of directions
of the main lobe for which there are no grating lobes in the visible
region. In this case, it lies inside the visible region.
1-1194
phased.ULA.plotGratingLobeDiagram
References
[1] Van Trees, H.L. Optimum Array Processing. New York:
Wiley-Interscience, 2002.
1-1195
phased.ULA.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-1196
phased.ULA.step
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Input H
Arguments Array object.
FREQ
Operating frequencies of array in hertz. FREQ is a row vector
of length L. Typical values are within the range specified by a
property of H.Element. That property is named FrequencyRange
or FrequencyVector, depending on the type of element in the
array. The element has zero response at frequencies outside that
range.
ANG
Directions in degrees. ANG can be either a 2-by-M matrix or a
row vector of length M.
If ANG is a 2-by-M matrix, each column of the matrix specifies the
direction in the form [azimuth; elevation]. The azimuth angle
1-1197
phased.ULA.step
Output RESP
Arguments Voltage responses of the phased array. The output depends on
whether the array supports polarization or not.
1-1198
phased.ULA.step
ha = phased.ULA('NumElements',4);
fc = 1e9;
ang = [0;0];
resp = step(ha,fc,ang);
c = physconst('LightSpeed');
plotResponse(ha,fc,c)
1-1199
phased.ULA.step
hmic = phased.OmnidirectionalMicrophoneElement(...
'FrequencyRange',[20 20e3]);
Nele = 10;
hula = phased.ULA('NumElements',Nele,...
1-1200
phased.ULA.step
'ElementSpacing',3e-3,...
'Element',hmic);
fc = 100;
ang = [0; 0];
resp = step(hula,fc,ang);
c = 340;
plotResponse(hula,fc,c,'RespCut','Az','Format','Polar');
1-1201
phased.ULA.viewArray
Syntax viewArray(H)
viewArray(H,Name,Value)
hPlot = viewArray( ___ )
Input H
Arguments Array object.
’ShowIndex’
Vector specifying the element indices to show in the figure. Each
number in the vector must be an integer between 1 and the
number of elements. You can also specify the string 'All' to show
indices of all elements of the array or 'None' to suppress indices.
Default: 'None'
’ShowNormals’
1-1202
phased.ULA.viewArray
Default: false
’ShowTaper’
Set this value to true to specify whether to change the element
color brightness in proportion to the element taper magnitude.
When this value is set to false, all elements are drawn with the
same color.
Default: false
’Title’
String specifying the title of the plot.
Output hPlot
Arguments Handle of array elements in figure window.
1-1203
phased.ULA.viewArray
1-1204
phased.URA
Properties Element
Phased array toolbox system object
Element specified as a Phased Array System Toolbox object. This
object can be an antenna or microphone element.
1-1205
phased.URA
Size
Size of array
A 1-by-2 integer vector or a single integer containing the size
of the array. If Size is a 1-by-2 vector, the vector has the form
[NumberOfRows, NumberOfColumns]. If Size is a scalar, the
array has the same number of elements in each row and column.
For a URA, array elements are indexed from top to bottom along
a column and continuing to the next columns from left to right.
In this illustration, a 'Size' value of [3,2] array has three rows
and two columns.
1 4
2 5
Y
3 6
Default: [2 2]
1-1206
phased.URA
ElementSpacing
Element spacing
A 1-by-2 vector or a scalar containing the element
spacing of the array, expressed in meters. If
ElementSpacing is a 1-by-2 vector, it is in the form of
[SpacingBetweenRows,SpacingBetweenColumns]. See “Spacing
Between Columns” on page 1-1208 and “Spacing Between Rows”
on page 1-1209. If ElementSpacing is a scalar, both spacings are
the same.
Lattice
Element lattice
Specify the element lattice as one of 'Rectangular' |
'Triangular'. When you set the Lattice property to
'Rectangular', all elements in the URA are aligned in both
row and column directions. When you set the Lattice property
to 'Triangular', the elements in even rows are shifted toward
the positive row axis direction by a distance of half the element
spacing along the row.
Default: 'Rectangular'
Taper
Element taper
Element taper specified as a scalar or M-by-N complex-valued
matrix. Tapers are applied to each element in the sensor
array. Tapers are often referred to as element weights. M is
the number of elements along the z-axis, and N is the number
of elements along y-axis. M and N correspond to the values of
[NumberofRows, NumberOfColumns] in the Size property. If
Taper is a scalar, identical weights are applied to each element.
1-1207
phased.URA
Default: 1
1-1208
phased.URA
1-1209
phased.URA
Sp
Spacing Between
Rows
1-1210
phased.URA
ha = phased.URA('Size',[3 2]);
fc = 1e9; ang = [0;0];
resp = step(ha,fc,ang);
disp(resp)
1
1
1
1
1
1
c = physconst('LightSpeed');
plotResponse(ha,fc,c,'RespCut','Az','Format','Polar');
1-1211
phased.URA
1-1212
phased.URA
Get the element y,z positions for each array. All the x coordinates are
zero.
pos_tri = getElementPosition(h_tri);
pos_rec = getElementPosition(h_rec);
pos_yz_tri = pos_tri(2:3,:);
pos_yz_rec = pos_rec(2:3,:);
figure;
set(gcf,'Position',[100 100 300 400])
subplot(2,1,1);
plot(pos_yz_tri(1,:), pos_yz_tri(2,:), '.')
axis([-1.5 1.5 -2 2])
xlabel('y'); ylabel('z')
title('Triangular Lattice')
subplot(2,1,2);
plot(pos_yz_rec(1,:), pos_yz_rec(2,:), '.')
axis([-1.5 1.5 -2 2])
xlabel('y'); ylabel('z')
title('Rectangular Lattice')
1-1213
phased.URA
1-1214
phased.URA
taper = taylorwin(5);
ha = phased.URA([5,2],'Taper',[taper,taper]);
w = getTaper(ha)
w =
0.5181
1.2029
1.5581
1.2029
0.5181
0.5181
1.2029
1.5581
1.2029
0.5181
References [1] Brookner, E., ed. Radar Technology. Lexington, MA: LexBook, 1996.
[2] Brookner, E., ed. Practical Phased Array Antenna Systems. Boston:
Artech House, 1991.
1-1215
phased.URA
1-1216
phased.URA.clone
Syntax C = clone(H)
1-1217
phased.URA.collectPlaneWave
Syntax Y = collectPlaneWave(H,X,ANG)
Y = collectPlaneWave(H,X,ANG,FREQ)
Y = collectPlaneWave(H,X,ANG,FREQ,C)
Input H
Arguments Array object.
X
Incoming signals, specified as an M-column matrix. Each column
of X represents an individual incoming signal.
ANG
Directions from which incoming signals arrive, in degrees. ANG
can be either a 2-by-M matrix or a row vector of length M.
If ANG is a 2-by-M matrix, each column specifies the direction of
arrival of the corresponding signal in X. Each column of ANG is in
the form [azimuth; elevation]. The azimuth angle must be
between –180 and 180 degrees, inclusive. The elevation angle
must be between –90 and 90 degrees, inclusive.
If ANG is a row vector of length M, each entry in ANG specifies the
azimuth angle. In this case, the corresponding elevation angle
is assumed to be 0.
FREQ
1-1218
phased.URA.collectPlaneWave
Default: 3e8
C
Propagation speed of signal in meters per second.
Output Y
Arguments Received signals. Y is an N-column matrix, where N is the number
of elements in the array H. Each column of Y is the received signal
at the corresponding array element, with all incoming signals
combined.
Examples Simulate the received signal at a 6-element URA. The array has a
rectangular lattice with two elements in the row direction and three
elements in the column direction.
The signals arrive from 10 degrees and 30 degrees azimuth. Both
signals have an elevation angle of 0 degrees. Assume the propagation
speed is the speed of light and the carrier frequency of the signal is
100 MHz.
1-1219
phased.URA.collectPlaneWave
1-1220
phased.URA.getElementPosition
Examples Construct a default URA with a rectangular lattice, and obtain the
element positions.
ha = phased.URA;
pos = getElementPosition(ha)
1-1221
phased.URA.getNumElements
Syntax N = getNumElements(H)
ha = phased.URA;
N = getNumElements(ha)
1-1222
phased.URA.getNumInputs
Syntax N = getNumInputs(H)
1-1223
phased.URA.getNumOutputs
Syntax N = getNumOutputs(H)
1-1224
phased.URA.getTaper
Description wts = getTaper(h) returns the tapers, wts, applied to each element
of the phased uniform rectangular array (URA), h. Tapers are often
referred to as weights.
taper = taylorwin(5);
ha = phased.URA([5,2],'Taper',[taper,taper]);
w = getTaper(ha)
viewArray(ha,'ShowTaper',true);
w =
0.5181
1.2029
1.5581
1.2029
0.5181
0.5181
1.2029
1-1225
phased.URA.getTaper
1.5581
1.2029
0.5181
1-1226
phased.URA.isLocked
Syntax TF = isLocked(H)
Description TF = isLocked(H) returns the locked status, TF, for the URA System
object.
The isLocked method returns a logical value that indicates whether
input attributes and nontunable properties for the object are locked. The
object performs an internal initialization the first time the step method
is executed. This initialization locks nontunable properties and input
specifications, such as dimensions, complexity, and data type of the
input data. After locking, the isLocked method returns a true value.
1-1227
phased.URA.isPolarizationCapable
h = phased.ShortDipoleAntennaElement(...
'FrequencyRange',[1e9 10e9]);
ha = phased.URA([3,2],'Element',h);
isPolarizationCapable(ha)
ans =
The returned value true (1) shows that this array supports
polarization.
1-1228
phased.URA.plotResponse
Syntax plotResponse(H,FREQ,V)
plotResponse(H,FREQ,V,Name,Value)
hPlot = plotResponse( ___ )
Input H
Arguments Array object
FREQ
Operating frequency in Hertz specified as a scalar or 1-by-K row
vector. Values must lie within the range specified by a property of
H. That property is named FrequencyRange or FrequencyVector,
depending on the type of element in the array. The element has
no response at frequencies outside that range. If you set the
'RespCut' property of H to '3D', FREQ must be a scalar. When
FREQ is a row vector, plotResponse draws multiple frequency
responses on the same axes.
V
Propagation speed in meters per second.
1-1229
phased.URA.plotResponse
value. Name must appear inside single quotes (' '). You can
specify several name and value pair arguments in any order as
Name1,Value1,...,NameN,ValueN.
’CutAngle’
Cut angle as a scalar. This argument is applicable only when
RespCut is 'Az' or 'El'. If RespCut is 'Az', CutAngle must
be between –90 and 90. If RespCut is 'El', CutAngle must be
between –180 and 180.
Default: 0
’Format’
Format of the plot, using one of 'Line', 'Polar', or 'UV'. If you
set Format to 'UV', FREQ must be a scalar.
Default: 'Line'
’NormalizeResponse’
Set this value to true to normalize the response pattern. Set this
value to false to plot the response pattern without normalizing
it. This parameter is not applicable when you set the Unit
parameter value to 'dbi'.
Default: true
’OverlayFreq’
Set this value to true to overlay pattern cuts in a 2-D line plot.
Set this value to false to plot pattern cuts against frequency in a
3-D waterfall plot. If this value is false, FREQ must be a vector
with at least two entries.
This parameter applies only when Format is not 'Polar' and
RespCut is not '3D'.
1-1230
phased.URA.plotResponse
Default: true
’Polarization’
Specify the polarization options for plotting the array response
pattern. The allowable values are |'None' | 'Combined' | 'H'
| 'V' | where
Default: 'None'
’RespCut’
Cut of the response. Valid values depend on Format, as follows:
1-1231
phased.URA.plotResponse
Default: 'db'
’Weights’
Weight values applied to the array, specified as a length-N
column vector or N-by-M matrix. The dimension N is the number
of elements in the array. The interpretation of M depends upon
whether the input argument FREQ is a scalar or row vector.
’AzimuthAngles’
1-1232
phased.URA.plotResponse
Default: [-180:180]
’ElevationAngles’
Elevation angles for plotting array response, specified as a row
vector. The ElevationAngles parameter sets the display range
and resolution of elevation angles for visualizing the radiation
pattern. This parameter is allowed only when the RespCut
parameter is set to 'El' or '3D' and the Format parameter
is set to 'Line' or 'Polar'. The values of elevation angles
should lie between –90° and 90° and must be in nondecreasing
order. When yous set the RespCut parameter to '3D', you can
set the ElevationAngles and AzimuthAngles parameters
simultaneously.
Default: [-90:90]
’UGrid’
U coordinate values for plotting array response, specified as a
row vector. The UGrid parameter sets the display range and
resolution of the U coordinates for visualizing the radiation
pattern in U/V space. This parameter is allowed only when the
Format parameter is set to 'UV' and the RespCut parameter is
set to 'U' or '3D'. The values of UGrid should be between –1 and
1 and should be specified in nondecreasing order. You can set the
UGrid and VGrid parameters simultaneously.
1-1233
phased.URA.plotResponse
Default: [-1:0.01:1]
’VGrid’
V coordinate values for plotting array response, specified as a
row vector. The VGrid parameter sets the display range and
resolution of the V coordinates for visualizing the radiation
pattern in U/V space. This parameter is allowed only when the
Format parameter is set to 'UV' and the RespCut parameter is
set to '3D'. The values of VGrid should be between –1 and 1 and
should be specified in nondecreasing order. You can set VGrid and
UGrid parameters simultaneously.
Default: [-1:0.01:1]
ha = phased.URA('Size',[3 2]);
fc = 1e9;
c = physconst('LightSpeed');
plotResponse(ha,fc,c,'RespCut','Az','Format','Polar');
1-1234
phased.URA.plotResponse
ha = phased.URA('Size',[3 2]);
c = physconst('lightspeed');
plotResponse(ha,1e9,c,'Format','UV');
1-1235
phased.URA.plotResponse
plotResponse(ha,1e9,c,'Format','UV','Unit','dbi');
1-1236
phased.URA.plotResponse
This example shows how to construct a 5-by-5 square URA and plot the
3-D response in space. However, restrict the range in space
using the UGrid and VGrid parameters.
ha = phased.URA([5,5]);
fc = 5e8;
c = physconst('LightSpeed');
plotResponse(ha,fc,c,'RespCut','3D','Format','UV',...
1-1237
phased.URA.plotResponse
'UGrid',[-0.25:.01:.25],'VGrid',[-0.25:.01:.25]);
This example shows how to construct a square 5-by-5 URA array having
elements spaced 0.3 meters apart. Apply both uniform weights and
tapered weights at a single frequency using the Weights parameter.
Choose the tapered weight values to be smallest at the edges and
increasing towards the center. Then, show that the tapered weight set
reduces the adjacent sidelobes while broadening the main lobe.
1-1238
phased.URA.plotResponse
ha = phased.URA('Size',[5 5],'ElementSpacing',[0.3,0.3]);
fc = 1e9;
c = physconst('LightSpeed');
wts1 = ones(5,5);
wts1 = wts1(:);
wts1 = wts1/sum(wts1);
wts2 = 0.3*ones(5,5);
wts2(2:4,2:4) = 0.7;
wts2(3,3) = 1;
wts2 = wts2(:);
wts2 = wts2/sum(wts2);
plotResponse(ha,fc,c,'RespCut','Az','Format','Polar','Weights',[wts1,w
1-1239
phased.URA.plotResponse
1-1240
phased.URA.plotGratingLobeDiagram
Syntax plotGratingLobeDiagram(H,FREQ)
plotGratingLobeDiagram(H,FREQ,ANGLE)
plotGratingLobeDiagram(H,FREQ,ANGLE,C)
plotGratingLobeDiagram(H,FREQ,ANGLE,C,F0)
hPlot = plotGratingLobeDiagram( ___ )
Input H
Arguments Antenna or microphone array, specified as a System object.
1-1241
phased.URA.plotGratingLobeDiagram
FREQ
Signal frequency, specified as a scalar. Frequency units are hertz.
Values must lie within a range specified by the frequency property
of the array elements contained in H.Element. The frequency
property is named FrequencyRange or FrequencyVector,
depending on the element type.
ANGLE
Array steering angle, specified as either a 2-by-1 vector or a scalar.
If ANGLE is a vector, it takes the form [azimuth;elevation]. The
azimuth angle must lie in the range [-180 ,180 ]. The elevation
angle must lie in the range [-90 ,90 ]. All angle values are
specified in degrees. If the argument ANGLE is a scalar, it specifies
only the azimuth angle where the corresponding elevation angle
is 0°.
Default: [0;0]
C
Signal propagation speed, specified as a scalar. Units are meters
per second.
F0
Phase-shifter frequency of the array, specified as a scalar.
Frequency units are hertz When this argument is omitted, the
phase-shifter frequency is assumed to be the signal frequency,
FREQ.
Default: FREQ
1-1242
phased.URA.plotGratingLobeDiagram
Assume the operating frequency of the array is 10 kHz. All elements are
omnidirectional microphone elements. Steer the array in the direction
20 degrees in azimuth and 30 degrees in elevation. The speed of sound
in air is 344.21 m/s at 21 deg C.
cair = 344.21;
f = 10000;
lambda = cair/f;
sMic = phased.OmnidirectionalMicrophoneElement(...
'FrequencyRange',[20 20000]);
sURA = phased.URA('Element',sMic,'Size',[11,9],...
'ElementSpacing',0.5*lambda*[1,1]);
plotGratingLobeDiagram(sURA,f,[20;30],cair);
1-1243
phased.URA.plotGratingLobeDiagram
The main lobe of the array is indicated by a filled black circle. The
grating lobes in visible and nonvisible regions are indicated by unfilled
black circles. The visible region is the region in u-v coordinates for
which . The visible region is shown as a unit circle
centered at the origin. Because the array spacing is less than one-half
wavelength, there are no grating lobes in the visible region of space.
There are an infinite number of grating lobes in the nonvisible regions,
but only those in the range [-3,3] are shown.
1-1244
phased.URA.plotGratingLobeDiagram
cair = 344.21;
f = 10000;
lambda = cair/f;
sMic = phased.OmnidirectionalMicrophoneElement(...
'FrequencyRange',[20 20000]);
sURA = phased.URA('Element',sMic,'Size',[11,9],...
'ElementSpacing',0.75*lambda*[1,1]);
plotGratingLobeDiagram(sURA,f,[20;30],cair);
1-1245
phased.URA.plotGratingLobeDiagram
The main lobe of the array is indicated by a filled black circle. The
grating lobes in visible and nonvisible regions are indicated by unfilled
black circles. The visible region is the region in u-v coordinates for
which . The visible region is shown as a unit circle centered
at the origin. Because the array spacing is greater than one-half
wavelength, there are grating lobes in the visible region of space. There
are an infinite number of grating lobes in the nonvisible regions, but
only those in the range [-3,3] are shown.
1-1246
phased.URA.plotGratingLobeDiagram
cair = 344.21;
f = 10000;
f0 = 12000;
lambda = cair/f;
sMic = phased.OmnidirectionalMicrophoneElement(...
'FrequencyRange',[20 20000]);
sURA = phased.URA('Element',sMic,'Size',[11,9],...
'ElementSpacing',0.75*lambda*[1,1]);
plotGratingLobeDiagram(sURA,f,[20;30],cair,f0);
1-1247
phased.URA.plotGratingLobeDiagram
1-1248
phased.URA.plotGratingLobeDiagram
1-1249
phased.URA.plotGratingLobeDiagram
References
[1] Van Trees, H.L. Optimum Array Processing. New York:
Wiley-Interscience, 2002.
1-1250
phased.URA.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-1251
phased.URA.step
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Input H
Arguments Array object.
FREQ
Operating frequencies of array in hertz. FREQ is a row vector
of length L. Typical values are within the range specified by a
property of H.Element. That property is named FrequencyRange
or FrequencyVector, depending on the type of element in the
array. The element has zero response at frequencies outside that
range.
ANG
Directions in degrees. ANG can be either a 2-by-M matrix or a
row vector of length M.
If ANG is a 2-by-M matrix, each column of the matrix specifies the
direction in the form [azimuth; elevation]. The azimuth angle
1-1252
phased.URA.step
Output RESP
Arguments Voltage responses of the phased array. The output depends on
whether the array supports polarization or not.
1-1253
phased.URA.step
h = phased.ShortDipoleAntennaElement;
ha = phased.URA('Element',h,'Size',[2 2]);
fc = 1e9; ang = [0;0];
resp = step(ha,fc,ang);
disp(resp.V);
-1.2247
-1.2247
-1.2247
-1.2247
1-1254
phased.URA.viewArray
Syntax viewArray(H)
viewArray(H,Name,Value)
hPlot = viewArray( ___ )
Input H
Arguments Array object.
’ShowIndex’
Vector specifying the element indices to show in the figure. Each
number in the vector must be an integer between 1 and the
number of elements. You can also specify the string 'All' to show
indices of all elements of the array or 'None' to suppress indices.
Default: 'None'
’ShowNormals’
1-1255
phased.URA.viewArray
Default: false
’ShowTaper’
Set this value to true to specify whether to change the element
color brightness in proportion to the element taper magnitude.
When this value is set to false, all elements are drawn with the
same color.
Default: false
’Title’
String specifying the title of the plot.
Output hPlot
Arguments Handle of array elements in figure window.
ha = phased.URA(4);
viewArray(ha,'ShowNormals',true,'ShowIndex','All');
1-1256
phased.URA.viewArray
1-1257
phased.WidebandCollector
Properties Sensor
Sensor element or sensor array
Sensor element or sensor array specified as a System object in
the Phased Array System Toolbox. A sensor array can contain
subarrays.
PropagationSpeed
Signal propagation speed
Specify the propagation speed of the signal, in meters per second,
as a positive scalar.
1-1258
phased.WidebandCollector
SampleRate
Sample rate
Specify the sample rate, in hertz, as a positive scalar. The default
value corresponds to 1 MHz.
Default: 1e6
ModulatedInput
Assume modulated input
Set this property to true to indicate the input signal is
demodulated at a carrier frequency.
Default: true
CarrierFrequency
Carrier frequency
Specify the carrier frequency (in hertz) as a positive scalar. The
default value of this property corresponds to 1 GHz. This property
applies when the ModulatedInput property is true.
Default: 1e9
WeightsInputPort
Enable weights input
To specify weights, set this property to true and use the
corresponding input argument when you invoke step. If you do
not want to specify weights, set this property to false.
Default: false
EnablePolarization
1-1259
phased.WidebandCollector
EnablePolarization
Set this property to true to simulate the collection of polarized
waves. Set this property to false to ignore polarization. This
property applies when the sensor specified in the Sensor property
is capable of simulating polarization.
Default: false
Wavefront
Type of incoming wavefront
Specify the type of incoming wavefront as one of 'Plane', or
'Unspecified':
Default: 'Plane'
1-1260
phased.WidebandCollector
ha = phased.IsotropicAntennaElement;
hc = phased.WidebandCollector('Sensor',ha);
x = [1;1];
incidentAngle = [10 30]';
y = step(hc,x,incidentAngle);
ha = phased.ULA('NumElements',5);
hc = phased.WidebandCollector('Sensor',ha);
x = [1;1];
incidentAngle = [10 30]';
y = step(hc,x,incidentAngle);
ha = phased.ULA('NumElements',3);
hc = phased.WidebandCollector('Sensor',ha,...
'Wavefront','Unspecified');
x = rand(10,3); % Each column is a signal for one element
incidentAngle = [10 0; 20 5; 45 2]'; % 3 angles for 3 signals
y = step(hc,x,incidentAngle);
1-1261
phased.WidebandCollector
3 Regroups the collected signals in all the subbands to form the output
signal.
1-1262
phased.WidebandCollector.clone
Syntax C = clone(H)
1-1263
phased.WidebandCollector.getNumInputs
Syntax N = getNumInputs(H)
1-1264
phased.WidebandCollector.getNumOutputs
Syntax N = getNumOutputs(H)
1-1265
phased.WidebandCollector.isLocked
Syntax TF = isLocked(H)
1-1266
phased.WidebandCollector.release
Syntax release(H)
Note You can use the release method on a System object in code
generated from MATLAB, but once you release its resources, you cannot
use that System object again.
1-1267
phased.WidebandCollector.step
Syntax Y = step(H,X,ANG)
Y = step(H,X,ANG,LAXES)
Y = step(H,X,ANG,WEIGHTS)
Y = step(H,X,ANG,STEERANGLE)
Y = step(H,X,ANG,LAXES,WEIGHTS,STEERANGLE)
1-1268
phased.WidebandCollector.step
Note The object performs an initialization the first time the step
method is executed. This initialization locks nontunable properties and
input specifications, such as dimensions, complexity, and data type
of the input data. If you change a nontunable property or an input
specification, the System object issues an error. To change nontunable
properties or inputs, you must first call the release method to unlock
the object.
Input H
Arguments Collector object.
X
Arriving signals. Each column of X represents a separate signal.
The specific interpretation of X depends on the Wavefront
property of H.
Wavefront Description
Property
Value
'Plane' Each column of X is a far field signal.
'Unspecified' Each column of X is the signal impinging
on the corresponding element. In this case,
the number of columns in X must equal the
number of collecting elements in the Sensor
property.
1-1269
phased.WidebandCollector.step
ANG
Incident directions of signals, specified as a two-row matrix.
Each column specifies the incident direction of the corresponding
column of X. Each column of ANG has the form [azimuth;
elevation], in degrees. The azimuth angle must be between –180
and 180 degrees, inclusive. The elevation angle must be between
–90 and 90 degrees, inclusive.
LAXES
Local coordinate system. LAXES is a 3-by-3 matrix whose columns
specify the local coordinate system’s orthonormal x, y, and z axes,
respectively. Each axis is specified in terms of [x;y;z] with
respect to the global coordinate system. This argument is only
used when the EnablePolarization property is set to true.
WEIGHTS
Vector of weights. WEIGHTS is a column vector of length M, where
M is the number of collecting elements.
Default: ones(M,1)
STEERANGLE
Subarray steering angle, specified as a length-2 column vector.
The vector has the form [azimuth; elevation], in degrees. The
azimuth angle must be between –180 and 180 degrees, inclusive.
The elevation angle must be between –90 and 90 degrees,
inclusive.
Output Y
Arguments Collected signals. Each column of Y contains the output of the
corresponding element. The output is the response to all the
1-1270
phased.WidebandCollector.step
ha = phased.IsotropicAntennaElement;
hc = phased.WidebandCollector('Sensor',ha);
x = [1;1];
incidentAngle = [10 30]';
y = step(hc,x,incidentAngle);
ha = phased.ULA('NumElements',5);
hc = phased.WidebandCollector('Sensor',ha);
x = [1;1];
incidentAngle = [10 30]';
y = step(hc,x,incidentAngle);
ha = phased.ULA('NumElements',3);
hc = phased.WidebandCollector('Sensor',ha,...
'Wavefront','Unspecified');
x = rand(10,3); % Each column is a signal for one element
incidentAngle = [10 0; 20 5; 45 2]'; % 3 angles for 3 signals
y = step(hc,x,incidentAngle);
1-1271
phased.WidebandCollector.step
3 Regroups the collected signals in all the subbands to form the output
signal.
1-1272
2
Functions-Alphabetical List
aictest
2-2
aictest
N = 10;
d = 0.5;
elementPos = (0:N-1)*d;
angles = [0 -25];
x = sensorsig(elementPos,300,angles,db2pow(-5));
Nsig = aictest(x)
Nsig =
N = 10;
d = 0.5;
elementPos = (0:N-1)*d;
2-3
aictest
angles = [0 10];
ncov = db2pow(-10);
scov = [1 .5]'*[1 .5];
x = sensorsig(elementPos,300,angles,ncov,scov);
Nsig = aictest(x)
Nsig =
This result shows that aictest function cannot determine the number
of signals correctly when the signals are correlated.
Nsig = aictest(x,'fb')
Nsig =
2-4
aictest
1 N
N d i d 1
i
Ld (d) K ( N d) ln
1
N
d
N
i
i d 1
plus an added penalty term. The value λi represent the smallest
(N–d) eigenvalues of the spatial covariance matrix. For each specific
estimator, the solution for d is given by
• AIC
1
dˆ AIC: FB argmin Ld (d) d(2 N d 1)
d 2
2-5
aictest
• MDL
1
dˆ MDL argmin Ld (d) (d(2 N d) 1) ln K
d 2
1
dˆ MDL FB argmin Ld (d) d(2 N d 1) ln K
d 4
References
[1] Van Trees, H.L. Optimum Array Processing. New York:
Wiley-Interscience, 2002.
2-6
albersheim
A = ln 0P.62
FA
and
P
B = ln 1− P
D
2-7
albersheim
Examples Compute the required single sample SNR for a detection probability of
0.9 as a function of the false-alarm probability.
2-8
albersheim
2-9
ambgfun
2-10
ambgfun
Input x
Arguments Pulse waveform. x is a row or column vector.
Fs
Sampling frequency in hertz.
PRF
Pulse repetition frequency in hertz.
2-11
ambgfun
2-12
ambgfun
Example: 'CutValue',10.0
Data Types
double
Output afmag
Arguments Normalized ambiguity function magnitudes. afmag is an M-by-N
matrix where M is the number of Doppler frequencies and N is the
number of time delays.
delay
Time delay vector. delay is an N-by-1 vector of time delays. The time
delay vector consists of N = 2*length(x)-1 linearly spaced samples in
the interval (-length(x)/Fs, length(x)/Fs). The spacing between
elements is the reciprocal of the sampling frequency.
doppler
Doppler frequency vector. doppler is an M-by-1 vector of Doppler
frequencies. The Doppler frequency vector consists of linearly
spaced samples in the frequency interval [-Fs/2,Fs/2). The
spacing between elements in the Doppler frequency vector is
Fs/2^nextpow2(2*length(x)-1).
1 ∞
| A(t, fd )|= | ∫ x(u) e j 2 fdu x* (u − t) du|
Ex −∞
where Ex is the norm of the signal, x(t), t is the time delay, and fd is a
Doppler shift. The asterisk (*) denotes the complex conjugate.
The ambiguity function is a function of two variables that describes the
effects of time delays and Doppler shifts on the output of a matched
filter.
2-13
ambgfun
hrect = phased.RectangularWaveform;
x = step(hrect);
PRF = 2e4;
[afmag,delay,doppler] = ambgfun(x,hrect.SampleRate,PRF);
contour(delay,doppler,afmag);
xlabel('Delay (seconds)'); ylabel('Doppler Shift (hertz)');
2-14
ambgfun
hrect = phased.RectangularWaveform('PRF',2e4);
hfm = phased.LinearFMWaveform('PRF',2e4);
2-15
ambgfun
xrect = step(hrect);
xfm = step(hfm);
[ambrect,delayrect] = ambgfun(xrect,hrect.SampleRate,...,
hrect.PRF,'Cut','Doppler');
[ambfm,delayfm] = ambgfun(xfm,hfm.SampleRate,...,
hfm.PRF,'Cut','Doppler');
figure;
subplot(211);
stem(delayrect,ambrect);
title('Autocorrelation of Rectangular Pulse');
subplot(212);
stem(delayfm,ambfm)
xlabel('Delay (seconds)');
title('Autocorrelation of Linear FM Pulse');
2-16
ambgfun
hrect = phased.RectangularWaveform('PRF',2e4);
hfm = phased.LinearFMWaveform('PRF',2e4);
2-17
ambgfun
xrect = step(hrect);
xfm = step(hfm);
fd = 5000;
[ambrect,delayrect] = ambgfun(xrect,hrect.SampleRate,...,
hrect.PRF,'Cut','Doppler','CutValue',fd);
[ambfm,delayfm] = ambgfun(xfm,hfm.SampleRate,...,
hfm.PRF,'Cut','Doppler','CutValue',fd);
figure;
subplot(211);
stem(delayrect*10^6,ambrect);
title('Autocorrelation of Rectangular Pulse at 5 kHz Doppler Shift');
subplot(212);
stem(delayfm*10^6,ambfm)
xlabel('Delay (\mu sec)');
title('Autocorrelation of Linear FM Pulse at 5 kHz Doppler Shift');
2-18
ambgfun
References [1] Levanon, N. and E. Mozeson. Radar Signals. Hoboken, NJ: John
Wiley & Sons, 2004.
2-19
ambgfun
2-20
aperture2gain
Syntax G = aperture2gain(A,lambda)
Input A
Arguments Antenna effective aperture in square meters. The effective aperture
describes how much energy is captured from an incident electromagnetic
plane wave. The argument describes the functional area of the
antenna and is not equivalent to the actual physical area. For a fixed
wavelength, the antenna gain is proportional to the effective aperture.
A can be a scalar or vector. If A is a vector, each element of A is the
effective aperture of a single antenna.
lambda
Wavelength of the incident electromagnetic wave. The wavelength of an
electromagnetic wave is the ratio of the wave propagation speed to the
frequency. For a fixed effective aperture, the antenna gain is inversely
proportional to the square of the wavelength. lambda must be a scalar.
Output G
Arguments Antenna gain in decibels. G is a scalar or a vector. If G is a vector,
each element of G is the gain corresponding to effective aperture of the
same element in A.
2-21
aperture2gain
4
G= Ae
2
where λ is the wavelength of the incident electromagnetic wave. The
gain expressed in decibels is:
10 log10 (G)
g = aperture2gain(3,0.1);
References [1] Skolnik, M. Introduction to Radar Systems, 3rd Ed. New York:
McGraw-Hill, 2001.
2-22
az2broadside
BSang = az2broadside(45,45);
az = (75:5:120)';
el = (45:5:90)';
BSang = az2broadside(az,el);
2-23
azel2phitheta
Data Types
double
2-24
azel2phitheta
This figure illustrates the azimuth angle and elevation angle for a
vector that appears as a green solid line. The coordinate system is
relative to the center of a uniform linear array, whose elements appear
as blue circles.
2-25
azel2phitheta
2-26
azel2phithetapat
pat_phitheta = azel2phithetapat(pat_azel,az,el,phi,theta)
uses vectors phi and theta to specify the grid at which to sample
pat_phitheta. To avoid interpolation errors, phi should cover the
range [0, 180], and theta should cover the range [0, 360].
az - Azimuth angles
2-27
azel2phithetapat
vector of length P
Azimuth angles at which pat_azel samples the pattern, specified as
a vector of length P. Each azimuth angle is in degrees, between –180
and 180.
Data Types
double
el - Elevation angles
vector of length Q
Elevation angles at which pat_azel samples the pattern, specified as
a vector of length Q. Each elevation angle is in degrees, between –90
and 90.
Data Types
double
2-28
azel2phithetapat
This figure illustrates the azimuth angle and elevation angle for a
vector that appears as a green solid line. The coordinate system is
2-29
azel2phithetapat
2-30
azel2phithetapat
az = -180:180;
el = -90:90;
pat_azel = mag2db(repmat(cosd(el)',1,numel(az)));
2-31
azel2phithetapat
pat_phitheta = azel2phithetapat(pat_azel,az,el);
az = -180:180;
el = -90:90;
pat_azel = repmat(cosd(el)',1,numel(az));
Convert the pattern to space. Use the returned and angles for
plotting.
[pat_phitheta,phi,theta] = azel2phithetapat(pat_azel,az,el);
H = surf(phi,theta,mag2db(pat_phitheta));
set(H,'LineStyle','none')
xlabel('phi (degrees)');
ylabel('theta (degrees)');
zlabel('Pattern');
2-32
azel2phithetapat
az = -180:180;
el = -90:90;
pat_azel = repmat(cosd(el)',1,numel(az));
2-33
azel2phithetapat
Define the set of and angles at which to sample the pattern. Then,
convert the pattern.
phi = 0:5:360;
theta = 0:5:180;
pat_phitheta = azel2phithetapat(pat_azel,az,el,phi,theta);
H = surf(phi,theta,mag2db(pat_phitheta));
set(H,'LineStyle','none')
xlabel('phi (degrees)');
ylabel('theta (degrees)');
zlabel('Pattern');
2-34
azel2phithetapat
2-35
azel2uv
Syntax UV = azel2uv(AzEl)
Data Types
double
2-36
azel2uv
This figure illustrates the azimuth angle and elevation angle for a
vector that appears as a green solid line. The coordinate system is
relative to the center of a uniform linear array, whose elements appear
as blue circles.
U/V Space
The u/v coordinates for the hemisphere x ≥ 0 are derived from the phi
and theta angles, as follows:
u = sin(θ) cos(φ)
v = sin(θ) sin(φ)
In these expressions, φ and θ are the phi and theta angles, respectively.
In terms of azimuth and elevation, the u and v coordinates are
2-37
azel2uv
u = cos(el) sin(az)
v = sin(el)
–1 ≤ u ≤ 1
–1 ≤ v ≤ 1
u 2 + v2 ≤ 1
Conversely, the phi and theta angles can be written in terms of u and v
tan(φ) = v/u
The azimuth and elevation angles can also be written in terms of u and v
sin(el) = v
2-38
azel2uv
UV = azel2uv([30; 0]);
2-39
azel2uvpat
2-40
azel2uvpat
az - Azimuth angles
vector of length P
Azimuth angles at which pat_azel samples the pattern, specified as
a vector of length P. Each azimuth angle is in degrees, between –90
and 90. Such azimuth angles are in the hemisphere for which u and v
are defined.
Data Types
double
el - Elevation angles
vector of length Q
Elevation angles at which pat_azel samples the pattern, specified as
a vector of length Q. Each elevation angle is in degrees, between –90
and 90.
Data Types
double
u - u coordinates
[-1:0.01:1] (default) | vector of length L
u coordinates at which pat_uv samples the pattern, specified as a vector
of length L. Each u coordinate is between –1 and 1.
Data Types
double
v - v coordinates
[-1:0.01:1] (default) | vector of length M
v coordinates at which pat_uv samples the pattern, specified as a vector
of length M. Each v coordinate is between –1 and 1.
Data Types
double
2-41
azel2uvpat
u - u coordinates
vector of length L
u coordinates at which pat_uv samples the pattern, returned as a
vector of length L.
v - v coordinates
vector of length M
v coordinates at which pat_uv samples the pattern, returned as a vector
of length M.
This figure illustrates the azimuth angle and elevation angle for a
vector that appears as a green solid line. The coordinate system is
2-42
azel2uvpat
U/V Space
The u and v coordinates are the direction cosines of a vector with
respect to the y-axis and z-axis, respectively.
The u/v coordinates for the hemisphere x ≥ 0 are derived from the phi
and theta angles by:
u = sin(θ) cos(φ)
v = sin(θ) sin(φ)
In these expressions, φ and θ are the phi and theta angles, respectively.
In terms of azimuth and elevation, the u and v coordinates are
u = cos(el) sin(az)
v = sin(el)
2-43
azel2uvpat
–1 ≤ u ≤ 1
–1 ≤ v ≤ 1
u 2 + v2 ≤ 1
Conversely, the phi and theta angles can be written in terms of u and v
tan(φ) = v/u
The azimuth and elevation angles can also be written in terms of u and v
sin(el) = v
2-44
azel2uvpat
az = -90:90;
el = -90:90;
pat_azel = mag2db(repmat(cosd(el)',1,numel(az)));
2-45
azel2uvpat
pat_uv = azel2uvpat(pat_azel,az,el);
az = -90:90;
el = -90:90;
pat_azel = repmat(cosd(el)',1,numel(az));
[pat_uv,u,v] = azel2uvpat(pat_azel,az,el);
H = surf(u,v,mag2db(pat_uv));
set(H,'LineStyle','none')
xlabel('u');
ylabel('v');
zlabel('Pattern');
2-46
azel2uvpat
az = -90:90;
el = -90:90;
pat_azel = repmat(cosd(el)',1,numel(az));
2-47
azel2uvpat
u = -1:0.05:1;
v = -1:0.05:1;
pat_uv = azel2uvpat(pat_azel,az,el,u,v);
H = surf(u,v,mag2db(pat_uv));
set(H,'LineStyle','none')
xlabel('u');
ylabel('v');
zlabel('Pattern');
2-48
azel2uvpat
2-49
azelaxes
Syntax A = azelaxes(az,el)
el - Elevation angle
scalar in range [–90,90]
Elevation angle specified as a scalar in the closed range [–90,90]. Angle
units are in degrees. To define the elevation of a point on the sphere,
construct a vector from the origin to the point. The elevation angle is
the angle from its orthogonal projection into the xy-plane to the vector
itself. As examples, zero elevation angle defines the equator of the
sphere and ±90° elevation define the north and south poles, respectively.
Example: 30
2-50
azelaxes
Data Types
double
(e R , e az , e el )
where each component represents a column vector.
A = azelaxes(45,45)
A =
2-51
azelaxes
1
eˆ R Rz (az) Ry ( el) 0
0
0
eˆ az Rz (az) Ry ( el) 1
0
0
eˆ el Rz (az) Ry ( el) 0
1
The following figure shows the relationship between the spherical basis
and the local Cartesian unit vectors.
2-52
azelaxes
êel êR
êaz
j
2-53
beat2range
Syntax r = beat2range(fb,slope)
r = beat2range(fb,slope,c)
2-54
beat2range
Output r - Range
Arguments M-by-1 column vector
Range, returned as an M-by-1 column vector in meters. Each row of r is
the range corresponding to the beat frequency in a row of fb.
slope = 30e6/(2e-3);
fb = 1e3;
r = beat2range(fb,slope);
2-55
beat2range
References
[1] Pace, Phillip. Detecting and Classifying Low Probability of Intercept
Radar. Artech House, Boston, 2009.
2-56
billingsleyicm
Syntax P = billingsleyicm(fd,fc,wspeed)
P = billingsleyicm(fd,fc,wspeed,c)
Input fd
Arguments Doppler frequencies in hertz. This value can be a scalar or a vector.
fc
Operating frequency of the system in hertz
wspeed
Wind speed in meters per second
c
Propagation speed in meters per second
Output P
Arguments Shape of the clutter Doppler spectrum due to intrinsic clutter motion.
The vector size of P is the same as that of fd.
2-57
billingsleyicm
Examples Calculate and plot the Doppler spectrum shape predicted by Billingsley’s
ICM model. Assume the PRF is 2 kHz, the operating frequency is
1 GHz, and the wind speed is 5 m/s.
2-58
billingsleyicm
References [1] Billingsley, J. Low Angle Radar Clutter. Norwich, NY: William
Andrew Publishing, 2002.
[2] Long, Maurice W. Radar Reflectivity of Land and Sea, 3rd Ed.
Boston: Artech House, 2001.
2-59
blakechart
Syntax blakechart(vcp,vcpangles)
blakechart(vcp,vcpangles,rmax,hmax)
blakechart( ___ ,'Name','Value')
2-60
blakechart
Data Types
double
2-61
blakechart
2-62
blakechart
freq = 100e6;
ant_height = 20;
rng_fs = 100;
[vcp, vcpangles] = radarvcd(freq,rng_fs,ant_height);
blakechart(vcp, vcpangles);
2-63
blakechart
freq = 100e6;
ant_height = 20;
2-64
blakechart
rng_fs = 100;
[vcp, vcpangles] = radarvcd(freq,rng_fs,ant_height);
rmax = 300;
hmax = 250;
blakechart(vcp,vcpangles,rmax,hmax);
2-65
blakechart
pat_angles = linspace(-90,90,361)';
pat_u = 1.39157/sind(90/2)*sind(pat_angles);
pat = sinc(pat_u/pi);
freq = 100e6;
ant_height = 10;
rng_fs = 100;
tilt_ang = 0;
surf_roughness = 1;
Set the maximum plotting range to 300 km and the maximum plotting
height to 250,000 m. Choose the range units as kilometers, 'km', and
the height units as meters, 'm'. Set the range and height axes scale
powers to 1/2.
rmax = 300;
hmax = 250e3;
blakechart(vcp, vcpangles, rmax, hmax, 'RangeUnit','km',...
'ScalePower',1/2,'HeightUnit','m');
2-66
blakechart
R
n(h) 1.0 N s 106 e exp h
2-67
blakechart
References
[1] Blake, L.V. Machine Plotting of Radar Vertical-Plane Coverage
Diagrams. Naval Research Laboratory Report 7098, 1970.
2-68
broadside2az
Syntax az = broadside2az(BSang,el)
| | | el | 90
az = broadside2az(45,20);
BSang = (45:5:90)';
el = (45:-5:0)';
az = broadside2az(BSang,el);
2-69
broadside2az
2-70
cart2sphvec
Syntax vs = cart2sphvec(vr,az,el)
az - Azimuth angle
scalar in range [–180,180]
Azimuth angle specified as a scalar in the closed range [–180,180].
Angle units are in degrees. To define the azimuth angle of a point on
a sphere, construct a vector from the origin to the point. The azimuth
angle is the angle in the xy-plane from the positive x-axis to the vector’s
orthogonal projection into the xy-plane. As examples, zero azimuth
angle and zero elevation angle specify a point on the x-axis while an
azimuth angle of 90° and an elevation angle of zero specify a point on
the y-axis.
Example: 45
2-71
cart2sphvec
Data Types
double
el - Elevation angle
scalar in range [–90,90]
Elevation angle specified as a scalar in the closed range [–90,90]. Angle
units are in degrees. To define the elevation of a point on the sphere,
construct a vector from the origin to the point. The elevation angle is
the angle from its orthogonal projection into the xy-plane to the vector
itself. As examples, zero elevation angle defines the equator of the
sphere and ±90° elevation define the north and south poles, respectively.
Example: 30
Data Types
double
vr = [0;0;1];
vs = cart2sphvec(vr,45,45)
vs =
0
0.7071
2-72
cart2sphvec
0.7071
2-73
cart2sphvec
êel êR
P êaz
O el
y
az
For any point on the sphere specified by az and el, the basis vectors
are given by:
eˆ az sin(az)i cos(az) j
eˆ el sin(el) cos(az)i sin(el) sin(az) j cos(el)k
eˆ R cos(el) cos(az)i cos(el) sin(az) j sin(el)k .
2-74
cart2sphvec
2-75
cbfweights
Syntax wt = cbfweights(pos,ang)
2-76
cbfweights
2-77
cbfweights
wt =
References
[1] Van Trees, H.L. Optimum Array Processing. New York, NY:
Wiley-Interscience, 2002.
2-78
circpol2pol
Syntax fv = circpol2pol(cfv)
2-79
circpol2pol
cfv = [1;1];
fv = circpol2pol(cfv)
fv =
1.4142
0
cfv = [0;1];
q = cfv(2)/cfv(1);
p = circpol2pol(q)
p =
0 - 1.0000i
References
[1] Mott, H., Antennas for Radar and Communications, John Wiley &
Sons, 1992.
2-80
circpol2pol
2-81
dechirp
Syntax y = dechirp(x,xref)
2-82
dechirp
Fs = 2e5; Tm = 0.001;
hwav = phased.FMCWWaveform('SampleRate',Fs,'SweepTime',Tm);
xref = step(hwav);
x = [zeros(10,1); xref(1:end-10)];
y = dechirp(x,xref);
[Pxx,F] = periodogram(x,[],1024,Fs,'centered');
plot(F/1000,10*log10(Pxx)); grid;
xlabel('Frequency (kHz)');
ylabel('Power/Frequency (dB/Hz)');
title('Periodogram Power Spectral Density Estimate Before Dechirping')
2-83
dechirp
[Pyy,F] = periodogram(y,[],1024,Fs,'centered');
plot(F/1000,10*log10(Pyy));
xlabel('Frequency (kHz)');
ylabel('Power/Frequency (dB/Hz)');
ylim([-100 -30]); grid
title('Periodogram Power Spectral Density Estimate After Dechirping');
2-84
dechirp
Algorithms For column vectors x and xref, the mix operation is defined as xref
.* conj(x).
If x has multiple columns, the mix operation applies the preceding
expression to each column of x independently.
The mix operation negates the Doppler shift embedded in x, because of
the order of xref and x.
2-85
dechirp
The mixing order affects the sign of the imaginary part of y. There is
no consistent convention in the literature about the mixing order. This
function and the beat2range function use the same convention. If your
program processes the output of dechirp in other ways, take the mixing
order into account.
References
[1] Pace, Phillip. Detecting and Classifying Low Probability of Intercept
Radar. Boston: Artech House, 2009.
2-86
delayseq
Input data
Arguments Vector or matrix of real or complex data.
DELAY
Amount by which to delay or advance the input. If you specify the
optional Fs argument, DELAY is in seconds; otherwise, DELAY is in
samples.
2-87
delayseq
Fs
Sampling frequency of the data in hertz. If you specify this argument,
the function assumes DELAY is in seconds.
Default: 1
Output shifted_data
Arguments Result of delaying or advancing the data. shifted_data has the same
number of rows as data, with appropriate truncations or zero padding.
Fs = 1e4;
t = 0:1/Fs:0.005;
data = cos(2*pi*1000*t)'; % data is a column vector
% Delay input by 0.5 milliseconds (5 samples)
shifted_data = delayseq(data,0.0005,Fs);
subplot(211);
plot(t.*1000,data); title('Input');
subplot(212);
plot(t.*1000,shifted_data); title('0.5-millisecond delay');
xlabel('milliseconds');
2-88
delayseq
Fs = 1e4;
t = 0:1/Fs:0.005;
data = cos(2*pi*1000*t)'; % data is a column vector
% Delay input by 0.75 milliseconds (7.5 samples)
shifted_data = delayseq(data,0.00075,Fs);
figure;
subplot(211);
plot(t.*1000,data); title('Input');
subplot(212);
plot(t.*1000,shifted_data);
title('0.75-millisecond (fractional) delay');
axis([0 5 -1.1 1.1]); xlabel('milliseconds');
2-89
delayseq
Note that the values of the shifted sequence differ from the input
because of the interpolation resulting from the fractional delay.
2-90
depressionang
Input H
Arguments Height of the sensor above the surface, in meters. This argument can
be a scalar or a vector. If both H and R are nonscalar, they must have
the same dimensions.
R
Distance in meters from the sensor to the surface target. This argument
can be a scalar or a vector. If both H and R are nonscalar, they must
have the same dimensions. R must be between H and the horizon range
determined by H.
MODEL
Earth model, as one of | 'Curved' | 'Flat' |.
Default: 'Curved'
2-91
depressionang
Re
Effective earth radius in meters. This argument requires a positive
scalar value.
Output depAng
Arguments Depression angle, in degrees, from the horizontal at the sensor altitude
toward surface targets R meters from the sensor. The dimensions of
depAng are the larger of size(H) and size(R).
Sensor
Depression
angle
H
R
Earth
Target
For the curved earth model with an effective earth radius of Re, the
depression angle is:
H 2 2 HR R2
sin 1 e
2 R( H Re )
2-92
depressionang
H
sin 1
R
Examples Calculate the depression angle for a ground clutter patch that is 1000 m
away from the sensor. The sensor is located on a platform that is 300 m
above the ground.
depang = depressionang(300,1000);
References [1] Long, Maurice W. Radar Reflectivity of Land and Sea, 3rd Ed.
Boston: Artech House, 2001.
2-93
dop2speed
Vs,r = Δf
where Vs,r denotes the radial velocity of the source relative to the
receiver, Δf, is the Doppler shift in hertz, and λ is the carrier frequency
wavelength in meters.
2-94
dopsteeringvec
Input dopplerfreq
Arguments The Doppler frequency in hertz. The normalized Doppler frequency is
the Doppler frequency divided by the pulse repetition frequency.
numpulses
The number of pulses. The time-domain Doppler steering vector consists
of numpulses samples taken at intervals of 1/PRF (slow-time samples).
PRF
Pulse repetition frequency in hertz. The time-domain Doppler steering
vector consists of numpulses samples taken at intervals of 1/PRF
(slow-time samples). The normalized Doppler frequency is the Doppler
frequency divided by the pulse repetition frequency.
Output DSTV
Arguments Temporal (time-domain) Doppler steering vector. DSTV is an N-by-1
column vector where N is the number of pulses, numpulses.
2-95
dopsteeringvec
j 2 fd Tp n
e
where n=0,1,2, ..., N-1 are slow-time samples (one sample from each
pulse), fd is the Doppler frequency, and Tp is the pulse repetition
interval. The product of the Doppler frequency and the pulse repetition
interval is the normalized Doppler frequency.
dstv = dopsteeringvec(200,10,1000);
2-96
effearthradius
Syntax Re = effearthradius
Re = effearthradius(RGradient)
Input RGradient
Arguments Refractivity gradient in units of 1/meter. This value must be a
nonpositive scalar.
Default: -39e-9
Output Re
Arguments Effective earth radius in meters.
1
1 r RGradient
2-97
effearthradius
The most commonly used scale factor is 4/3. This value corresponds to a
refractivity gradient of 39 109 m 1 .
References [1] Skolnik, M. Introduction to Radar Systems, 3rd Ed. New York:
McGraw-Hill, 2001.
2-98
espritdoa
2-99
espritdoa
Example: 3
Data Types
double
2-100
espritdoa
N = 10;
d = 0.5;
elementPos = (0:N-1)*d;
angles = [0 -25 30];
Nsig = 3;
R = sensorcov(elementPos,angles,db2pow(-5));
doa = espritdoa(R,Nsig)
doa =
N = 10;
2-101
espritdoa
d = 0.4;
elementPos = (0:N-1)*d;
angles = [0 -25 30];
Nsig = 3;
R = sensorcov(elementPos,angles,db2pow(-5));
doa = espritdoa(R,Nsig,'ElementSpacing',d)
doa =
References
[1] Van Trees, H.L. Optimum Array Processing. New York:
Wiley-Interscience, 2002.
2-102
fspl
Syntax L = fspl(R,lambda)
Description L = fspl(R,lambda) returns the free space path loss in decibels for a
waveform with wavelength lambda propagated over a distance of R
meters. The minimum value of L is 0, indicating no path loss.
Input R
Arguments Propagation distance in meters
lambda
Wavelength in meters. The wavelength in meters is the speed of
propagation divided by the frequency in hertz.
Output L
Arguments Path loss in decibels. L is a nonnegative number. The minimum value
of L is 0, indicating no path loss.
4 R
L = 20 log10 ( )
lambda = physconst('LightSpeed')/10e9;
R = 10e3;
L = fspl(R,lambda);
2-103
fspl
2-104
gain2aperture
Syntax A = gain2aperture(G,lambda)
Input G
Arguments Antenna gain in decibels. G is a scalar or a vector. If G is a vector, each
element of G is the gain in decibels of a single antenna.
lambda
Wavelength of the incident electromagnetic wave. The wavelength of an
electromagnetic wave is the ratio of the wave propagation speed to the
frequency. For a fixed effective aperture, the antenna gain is inversely
proportional to the square of the wavelength. lambda must be a scalar.
Output A
Arguments Antenna effective aperture in square meters. The effective aperture
describes how much energy is captured from an incident electromagnetic
plane wave. The argument describes the functional area of the
antenna and is not equivalent to the actual physical area. For a fixed
wavelength, the antenna gain is proportional to the effective aperture.
A can be a scalar or vector. If A is a vector, each element of A is the
effective aperture of the corresponding gain in G.
2-105
gain2aperture
2
Ae = 10G /10
4
a = gain2aperture(3,0.1);
References [1] Skolnik, M. Introduction to Radar Systems, 3rd Ed. New York:
McGraw-Hill, 2001.
2-106
global2localcoord
Input gCoord
Arguments Global coordinates in rectangular or spherical coordinate form. gCoord
is a 3-by-1 vector or 3-by-N matrix. Each column represents a global
coordinate.
If the coordinates are in rectangular form, the column represents
(X,Y,Z) in meters.
If the coordinates are in spherical form, the column represents (az,el,r).
az is the azimuth angle in degrees, el is the elevation angle in degrees,
and r is the radius in meters.
The origin of the global coordinate system is at [0; 0; 0]. That system’s
axes are the standard unit basis vectors in three-dimensional space, [1;
0; 0], [0; 1; 0], and [0; 0; 1].
OPTION
Type of coordinate transformation. Valid strings are in the next table.
2-107
global2localcoord
OPTION Transformation
'rr' Global rectangular to local
rectangular
'rs' Global rectangular to local
spherical
'sr' Global spherical to local
rectangular
'ss' Global spherical to local spherical
localOrigin
Origin of local coordinate system. localOrigin is a 3-by-1 column
vector containing the rectangular coordinate of the local coordinate
system origin with respect to the global coordinate system.
Default: [0; 0; 0]
localAxes
Axes of local coordinate system. localAxes is a 3-by-3 matrix with the
columns specifying the local X, Y, and Z axes in rectangular form with
respect to the global coordinate system.
Output lclCoord
Arguments Local coordinates in rectangular or spherical coordinate form.
2-108
global2localcoord
This figure illustrates the azimuth angle and elevation angle for a
vector that appears as a green solid line. The coordinate system is
relative to the center of a uniform linear array, whose elements appear
as blue circles.
2-109
global2localcoord
References [1] Foley, J. D., A. van Dam, S. K. Feiner, and J. F. Hughes. Computer
Graphics: Principles and Practice in C, 2nd Ed. Reading, MA:
Addison-Wesley, 1995.
2-110
grazingang
Input H
Arguments Height of the sensor above the surface, in meters. This argument can
be a scalar or a vector. If both H and R are nonscalar, they must have
the same dimensions.
R
Distance in meters from the sensor to the surface target. This argument
can be a scalar or a vector. If both H and R are nonscalar, they must
have the same dimensions. R must be between H and the horizon range
determined by H.
MODEL
Earth model, as one of | 'Curved' | 'Flat' |.
Default: 'Curved'
Re
2-111
grazingang
Output grazAng
Arguments Grazing angle, in degrees. The size of grazAng is the larger of size(H)
and size(R).
Sensor
H
R
Grazing
Earth angle
Target
For the curved earth model with an effective earth radius of Re, the
grazing angle is:
H 2 2 HR R2
sin 1 e
2 RR
e
2-112
grazingang
H
sin 1
R
Examples Determine the grazing angle of a ground target located 1000 m away
from the sensor. The sensor is mounted on a platform that is 300 m
above the ground.
grazAng = grazingang(300,1000);
References [1] Long, Maurice W. Radar Reflectivity of Land and Sea, 3rd Ed.
Boston: Artech House, 2001.
2-113
horizonrange
Syntax Rh = horizonrange(H)
Rh = horizonrange(H,Re)
Input H
Arguments Height of radar system above surface, in meters. This argument can be
a scalar or a vector.
Re
Effective earth radius in meters. This argument must be a positive
scalar.
Output Rh
Arguments Horizon range in meters of radar system at altitude H.
2-114
horizonrange
Radar
H Rh
Re
Earth
2 Re H H 2
where Re is the effective earth radius and H is the altitude of the radar
system.
Rh = horizonrange(30);
References [1] Long, Maurice W. Radar Reflectivity of Land and Sea, 3rd Ed.
Boston: Artech House, 2001.
2-115
lcmvweights
Syntax wt = lcmvweights(constr,resp,cov)
2-116
lcmvweights
2-117
lcmvweights
N = 10;
d = 0.5;
elementPos = (0:N-1)*d;
sv = steervec(elementPos,[-40 0 20]);
resp = [0 1 0]';
Sn = sensorcov(elementPos,[-60 60],db2pow(-10));
w = lcmvweights(sv,resp,Sn);
vv = steervec(elementPos,[-90:90]);
plot([-90:90],mag2db(abs(w'*vv)))
grid on
axis([-90,90,-50,10]);
xlabel('Azimuth Angle (degrees)');
ylabel('Normalized Power (dB)');
title('LCMV Array Pattern');
2-118
lcmvweights
2-119
lcmvweights
ckH w rk
This response could be specified as unity to allow the array to pass
through the signal from a certain direction. It could be zero to nullify the
response from that direction. All the constraints can be collected into a
single matrix, C, and all the response into a single column vector, R .
This allows the constraints to be represented together in matrix form
CH w R
The LCMV beamformer chooses weights to minimize the total output
power
P w H Sw
subject to the above constraints. S denotes the sensor spatial covariance
matrix. The solution to the power minimization is
1
w S 1C H CS 1C H R
2-120
lcmvweights
References
[1] Van Trees, H.L. Optimum Array Processing. New York, NY:
Wiley-Interscience, 2002.
2-121
local2globalcoord
Input lclCoord
Arguments Local coordinates in rectangular or spherical coordinate form.
lclCoord is a 3-by-1 vector or 3-by-N matrix. Each column represents
a local coordinate.
If the coordinates are in rectangular form, the column represents
(X,Y,Z) in meters.
If the coordinates are in spherical form, the column represents (az,el,r).
az is the azimuth angle in degrees, el is the elevation angle in degrees,
and r is the radius in meters.
OPTION
Type of coordinate transformation. Valid strings are in the next table.
2-122
local2globalcoord
OPTION Transformation
'rr' Local rectangular to global
rectangular
'rs' Local rectangular to global
spherical
'sr' Local spherical to global
rectangular
'ss' Local spherical to global spherical
localOrigin
Origin of local coordinate system. localOrigin is a 3-by-1 column
vector containing the rectangular coordinate of the local coordinate
system origin with respect to the global coordinate system.
Default: [0; 0; 0]
localAxes
Axes of local coordinate system. localAxes is a 3-by-3 matrix with the
columns specifying the local X, Y, and Z axes in rectangular form with
respect to the global coordinate system.
Output gCoord
Arguments Global coordinates in rectangular or spherical coordinate form. The
origin of the global coordinate system is at [0; 0; 0]. That system’s axes
are the standard unit basis vectors in three-dimensional space, [1; 0;
0], [0; 1; 0], and [0; 0; 1].
2-123
local2globalcoord
The azimuth angle is between –180 and 180 degrees. The elevation
angle is the angle from the vector’s orthogonal projection onto the xy
plane toward the positive z-axis, to the vector. The elevation angle is
between –90 and 90 degrees. These definitions assume the boresight
direction is the positive x-axis.
This figure illustrates the azimuth angle and elevation angle for a
vector that appears as a green solid line. The coordinate system is
relative to the center of a uniform linear array, whose elements appear
as blue circles.
2-124
local2globalcoord
References [1] Foley, J. D., A. van Dam, S. K. Feiner, and J. F. Hughes. Computer
Graphics: Principles and Practice in C, 2nd Ed. Reading, MA:
Addison-Wesley, 1995.
2-125
mdltest
2-126
mdltest
N = 10;
d = 0.5;
elementPos = (0:N-1)*d;
angles = [0 -25];
x = sensorsig(elementPos,300,angles,db2pow(-5));
Nsig = mdltest(x)
Nsig =
N = 10;
d = 0.5;
elementPos = (0:N-1)*d;
2-127
mdltest
angles = [0 10];
ncov = db2pow(-10);
scov = [1 .5]'*[1 .5];
x = sensorsig(elementPos,300,angles,ncov,scov);
Nsig = mdltest(x)
Nsig =
This result shows that aictest function cannot determine the number
of signals correctly when the signals are correlated.
Nsig = mdltest(x,'fb')
Nsig =
2-128
mdltest
1 N
N d i d 1
i
Ld (d) K ( N d) ln
1
N
d
N
i
i d 1
plus an added penalty term. The value λi represent the smallest
(N–d) eigenvalues of the spatial covariance matrix. For each specific
estimator, the solution for d is given by
• AIC
1
dˆ AIC: FB argmin Ld (d) d(2 N d 1)
d 2
2-129
mdltest
• MDL
1
dˆ MDL argmin Ld (d) (d(2 N d) 1) ln K
d 2
1
dˆ MDL FB argmin Ld (d) d(2 N d 1) ln K
d 4
References
[1] Van Trees, H.L. Optimum Array Processing. New York:
Wiley-Interscience, 2002.
2-130
mvdrweights
Syntax wt = mvdrweights(pos,ang,cov)
2-131
mvdrweights
2-132
mvdrweights
N = 10;
d = 0.5;
elementPos = (0:N-1)*d;
Sn = sensorcov(elementPos,[-60 60],db2pow(-10));
w = mvdrweights(elementPos,[30 45],Sn);
plotangl = -90:90;
vv = steervec(elementPos,plotangl);
plot(plotangl,mag2db(abs(w'*vv)))
grid on
xlabel('Azimuth Angle (degrees)');
ylabel('Normalized Power (dB)');
legend('30 deg','45 deg');
title('MVDR Array Pattern')
2-133
mvdrweights
The figure shows plots for each beamformer direction. One plot has the
expected maximum gain at 30 degrees and the other at 45 degrees. The
nulls at -60 and 60 degrees arise from the fundamental property of the
MVDR beamformer of suppressing power in all directions except for
the arrival direction.
2-134
mvdrweights
S 1|v 0
w
v 0 H S 1 v 0
where S is the spatial covariance matrix.
References
[1] Van Trees, H.L. Optimum Array Processing. New York, NY:
Wiley-Interscience, 2002.
2-135
noisepow
Input NBW
Arguments The noise bandwidth of the receiver in hertz. For a superheterodyne
receiver, the noise bandwidth is approximately equal to the bandwidth
of the intermediate frequency stages [1].
NF
Noise figure. The noise figure is a dimensionless quantity that indicates
how much a receiver deviates from an ideal receiver in terms of internal
noise. An ideal receiver only produces the expected thermal noise power
for a given noise bandwidth and temperature. A noise figure of 1
indicates that the noise power of a receiver equals the noise power of an
ideal receiver. Because an actual receiver cannot exhibit a noise power
value less than an ideal receiver, the noise figure is always greater
than or equal to one.
REFTEMP
Reference temperature in degrees kelvin. The temperature of the
receiver. Typical values range from 290–300 degrees kelvin.
Output NPOWER
Arguments Noise power in watts. The internal noise power contribution of the
receiver to the signal-to-noise ratio.
2-136
noisepow
npower = noisepow(10e3,1,300);
2-137
npwgnthresh
Input PFA
Arguments Probability of false alarm.
NPULS
Number of pulses used in the integration.
Default: 1
DTYPE
Detection type.
Specifies the type of pulse integration used in the NP decision rule.
Valid choices for DTYPE are 'coherent', 'noncoherent', and 'real'.
'coherent' uses magnitude and phase information of complex-valued
2-138
npwgnthresh
Default: 'noncoherent'
OUTSCALE
Output scale.
Specifies the scale of the output value. Valid choices for OUTSCALE
are'db' or 'linear'. When OUTSCALE is set to 'linear', the returned
threshold represents amplitude.
Default: 'db'
Output SNRTHRESH
Arguments Detection threshold expressed in signal-to-noise ratio in decibels or
linear if OUTSCALE is set to`linear'. The relationship between the
linear threshold and the threshold in dB is
2 N erfc 1 (2 Pfa )
The threshold can also be expressed as a signal-to-noise ratio in decibels:
2
2
10 log10 10 log10 2 N erfc 1 (2 Pfa )
2
2-139
npwgnthresh
In these equations:
• σ2 is the variance of the white Gaussian noise sequence
• N is the number of samples
• erfc—1 is the inverse of the complementary error function
• Pfa is the probability of false alarm
Note For probabilities of false alarm greater than or equal to 1/2, the
formula for detection threshold as SNR is invalid since erfc-1 is less
than or equal to zero for values of its argument greater than or equal
to one. In that case, use the linear output of the function invoked by
setting OUTSCALE to'linear'.
N erfc 1 (2 Pfa )
and expressed as a signal-to-noise ratio in decibels is:
2
2
10 log10 10 log10 N erfc 1 (2 Pfa )
2
2-140
npwgnthresh
Note For probabilities of false alarm greater than or equal to 1/2, the
formula for detection threshold as SNR is invalid since erfc-1 is less
than or equal to zero for values of its argument greater than or equal
to one. In that case, use the linear output of the function invoked by
setting OUTSCALE to'linear'.
P 1 ( N , 1 Pfa )
2
10 log10 10 log10 P 1 ( N , 1 Pfa )
2
Examples Calculate the SNR threshold that achieves a probability of false alarm
0.01 using a detection type of 'real' with a single pulse. Then, verify
that this threshold is producing a Pfa of approximately 0.01. Do so by
constructing 10000 white real Gaussian noise samples and counting
how many times the sample passes the threshold.
snrthreshold = npwgnthresh(0.01,1,'real');
npower = 1; Ntrial = 10000;
noise = sqrt(npower)*randn(1,Ntrial);
threshold = sqrt(npower*db2pow(snrthreshold));
calculated_Pfa = sum(noise>threshold)/Ntrial;
2-141
npwgnthresh
Plot the SNR threshold against the number of pulses, for real and
complex data. In each case, the SNR threshold achieves a probability of
false alarm of 0.001.
2-142
npwgnthresh
Plot the linear detection threshold against the number of pulses, for real
and complex data. In each case, the threshold achieves a probability of
false alarm of 0.001.
2-143
npwgnthresh
2-144
npwgnthresh
2-145
npwgnthresh
2-146
phitheta2azel
Data Types
double
2-147
phitheta2azel
2-148
phitheta2azel
This figure illustrates the azimuth angle and elevation angle for a
vector that appears as a green solid line. The coordinate system is
relative to the center of a uniform linear array, whose elements appear
as blue circles.
2-149
phitheta2azelpat
pat_azel = phitheta2azelpat(pat_phitheta,phi,theta,az,el)
uses vectors az and el to specify the grid at which to sample pat_azel.
To avoid interpolation errors, az should cover the range [–180, 180] and
el should cover the range [–90, 90].
2-150
phitheta2azelpat
Data Types
double
az - Azimuth angles
[-180:180] (default) | vector of length L
Azimuth angles at which pat_azel samples the pattern, specified as
a vector of length L. Each azimuth angle is in degrees, between –180
and 180.
Data Types
double
el - Elevation angles
[-90:90] (default) | vector of length M
Elevation angles at which pat_azel samples the pattern, specified as
a vector of length M. Each elevation angle is in degrees, between –90
and 90.
Data Types
double
2-151
phitheta2azelpat
az - Azimuth angles
vector of length L
Azimuth angles at which pat_azel samples the pattern, returned as a
vector of length L. Angles are expressed in degrees.
el - Elevation angles
vector of length M
Elevation angles at which pat_azel samples the pattern, returned as a
vector of length M. Angles are expressed in degrees.
2-152
phitheta2azelpat
2-153
phitheta2azelpat
This figure illustrates the azimuth angle and elevation angle for a
vector that appears as a green solid line. The coordinate system is
relative to the center of a uniform linear array, whose elements appear
as blue circles.
phi = 0:360;
theta = 0:180;
pat_phitheta = mag2db(repmat(cosd(theta)',1,numel(phi)));
2-154
phitheta2azelpat
pat_azel = phitheta2azelpat(pat_phitheta,phi,theta);
phi = 0:360;
theta = 0:180;
pat_phitheta = mag2db(repmat(cosd(theta)',1,numel(phi)));
[pat_azel,az,el] = phitheta2azelpat(pat_phitheta,phi,theta);
H = surf(az,el,pat_azel);
set(H,'LineStyle','none')
xlabel('Azimuth (degrees)');
ylabel('Elevation (degrees)');
zlabel('Pattern');
2-155
phitheta2azelpat
phi = 0:360;
2-156
phitheta2azelpat
theta = 0:180;
pat_phitheta = mag2db(repmat(cosd(theta)',1,numel(phi)));
Define the set of azimuth and elevation angles at which to sample the
pattern. Then, convert the pattern.
az = -180:5:180;
el = -90:5:90;
pat_azel = phitheta2azelpat(pat_phitheta,phi,theta,az,el);
H = surf(az,el,pat_azel);
set(H,'LineStyle','none')
xlabel('Azimuth (degrees)');
ylabel('Elevation (degrees)');
zlabel('Pattern');
2-157
phitheta2azelpat
2-158
phitheta2uv
Syntax UV = phitheta2uv(PhiTheta)
Data Types
double
2-159
phitheta2uv
U/V Space
The u/v coordinates for the hemisphere x ≥ 0 are derived from the phi
and theta angles, as follows:
u = sin(θ) cos(φ)
v = sin(θ) sin(φ)
In these expressions, φ and θ are the phi and theta angles, respectively.
In terms of azimuth and elevation, the u and v coordinates are
2-160
phitheta2uv
u = cos(el) sin(az)
v = sin(el)
–1 ≤ u ≤ 1
–1 ≤ v ≤ 1
u 2 + v2 ≤ 1
Conversely, the phi and theta angles can be written in terms of u and v
tan(φ) = v/u
The azimuth and elevation angles can also be written in terms of u and v
sin(el) = v
UV = phitheta2uv([30; 0]);
2-161
phitheta2uvpat
2-162
phitheta2uvpat
u - u coordinates
[-1:0.01:1] (default) | vector of length L
u coordinates at which pat_uv samples the pattern, specified as a vector
of length L. Each u coordinate is between –1 and 1.
Data Types
double
v - v coordinates
[-1:0.01:1] (default) | vector of length M
v coordinates at which pat_uv samples the pattern, specified as a vector
of length M. Each v coordinate is between –1 and 1.
Data Types
double
2-163
phitheta2uvpat
u - u coordinates
vector of length L
u coordinates at which pat_uv samples the pattern, returned as a
vector of length L.
v - v coordinates
vector of length M
v coordinates at which pat_uv samples the pattern, returned as a vector
of length M.
2-164
phitheta2uvpat
U/V Space
The u and v coordinates are the direction cosines of a vector with
respect to the y-axis and z-axis, respectively.
The u/v coordinates for the hemisphere x ≥ 0 are derived from the phi
and theta angles, as follows:
u = sin(θ) cos(φ)
v = sin(θ) sin(φ)
In these expressions, φ and θ are the phi and theta angles, respectively.
2-165
phitheta2uvpat
u = cos(el) sin(az)
v = sin(el)
–1 ≤ u ≤ 1
–1 ≤ v ≤ 1
u 2 + v2 ≤ 1
Conversely, the phi and theta angles can be written in terms of u and v
tan(φ) = v/u
The azimuth and elevation angles can also be written in terms of u and v
sin(el) = v
phi = 0:360;
theta = 0:90;
pat_phitheta = mag2db(repmat(cosd(theta)',1,numel(phi)));
2-166
phitheta2uvpat
pat_uv = phitheta2uvpat(pat_phitheta,phi,theta);
phi = 0:360;
theta = 0:90;
pat_phitheta = mag2db(repmat(cosd(theta)',1,numel(phi)));
[pat_uv,u,v] = phitheta2uvpat(pat_phitheta,phi,theta);
H = surf(u,v,pat_uv);
set(H,'LineStyle','none')
xlabel('u');
ylabel('v');
zlabel('Pattern');
2-167
phitheta2uvpat
phi = 0:360;
theta = 0:90;
pat_phitheta = mag2db(repmat(cosd(theta)',1,numel(phi)));
2-168
phitheta2uvpat
u = -1:0.05:1;
v = -1:0.05:1;
pat_uv = phitheta2uvpat(pat_phitheta,phi,theta,u,v);
H = surf(u,v,pat_uv);
set(H,'LineStyle','none')
xlabel('u');
ylabel('v');
zlabel('Pattern');
2-169
phitheta2uvpat
2-170
physconst
Input Name
Arguments String that indicates which physical constant the function returns. The
valid strings are not case sensitive.
Definitions The following table lists the supported constants and their values in
SI units.
2-171
physconst
T = 290;
k = physconst('Boltzmann');
Compute the noise power per unit bandwidth, split evenly between the
in-phase and quadrature channels.
Noise_power = 10*log10(k*T/2);
2-172
pol2circpol
2-173
pol2circpol
components. If fv is a row vector, then cfv is also a row vector and each
entry in cfv contains the circular polarization ratio, defined as Er/El.
fv = [2;2]
cfv = pol2circpol(fv)
cfv =
1.4142 - 1.4142i
1.4142 + 1.4142i
fv=[1+1i 1;-1+1i 1]
cfv = pol2circpol(fv)
cfv =
References
[1] Mott, H., Antennas for Radar and Communications, John Wiley &
Sons, 1992.
2-174
pol2circpol
2-175
polellip
polellip(fv)
2-176
polellip
2-177
polellip
fv = [2;1];
tau = polellip(fv)
tau =
2-178
polellip
26.5651
fv = [3*exp(-i*pi/2);1];
[tau,epsilon] = polellip(fv)
tau =
2.3389e-15
epsilon =
18.435
The tilt vanishes because of the 90° phase difference between the
horizontal and vertical components of the field.
Tilt Angle, Ellipticity and Axial Ratio for Elliptically Polarized
Field
Start with an elliptically polarized input field (the horizontal and
vertical components differ in magnitude and in phase). Choose the
phase difference to be 60°.
fv = [2*exp(-i*pi/3);1];
[tau,epsilon,ar] = polellip(fv)
tau =
16.8450
epsilon =
2-179
polellip
21.9269
ar =
-2.4842
The nonzero tilt occurs because of the 60° phase difference. The
negative value of ar signifies left elliptical polarization.
Tilt Angle, Ellipticity, Axial Ratio and Rotation Sense for
Elliptically Polarized Field
Start with an elliptically polarized input field (the horizontal and
vertical components differ in magnitude and in phase). Choose the
phase difference to be 60°.
fv = [2*exp(-i*pi/3);1];
[tau,epsilon,ar,rs] = polellip(fv)
tau =
16.8450
epsilon =
21.9269
ar =
-2.4842
rs =
'Left Elliptical'
The nonzero tilt occurs because of the 60° phase difference and the
rotation sense is 'Left Elliptical' indicating that the tip of the field
vector is moving clockwise when looking towards the source of the field.
2-180
polellip
Polarization Ellipse
Draw the figure of an elliptically polarized field. Begin with an
elliptically polarized input field (the horizontal and vertical components
differ in magnitude and in phase) and choose the phase difference to
be 60 degrees.
fv = [2*exp(-i*pi/3);1];
polellip(fv)
2-181
polellip
References
[1] Mott, H., Antennas for Radar and Communications, John Wiley &
Sons, 1992.
2-182
polloss
2-183
polloss
rho = polloss(fv_tr,fv_rcv,pos_rcv,axes_rcv,pos_tr,axes_tr)
specifies, in addition, the orthonormal axes, axes_tr. These axes
define the transmitter’s local coordinate system as a 3-by-3 matrix.
The first column gives the x-axis of the local system with respect to the
global coordinate system. The second and third columns give the y and
z axes, respectively. This syntax can use any of the input arguments
in the previous syntaxes.
2-184
polloss
Data Types
double
Complex Number Support: Yes
2-185
polloss
Data Types
double
fv_tr = [1;1];
fv_rcv = [1;0];
rho = polloss(fv_tr,fv_rcv);
2-186
polloss
rho =
3.0103
The loss is 3 dB as expected because only half the power of the field
matches to the receive antenna polarization.
No Polarization Loss Because of Receiver Motion
Begin with identical transmitter and receiver polarizations. Place the
receiver at a position 100 meters along the y-axis. The transmitter is at
the origin (its default position) and both local coordinate axes coincide
with the global coordinate system (by default). First, compute the
polarization loss. Then, move the receiver 100 meters along the x-axis,
and compute the polarization loss again.
fv_tr = [1;0];
fv_rcv = [1;0];
pos_rcv = [0;100;0];
rho(1) = polloss(fv_tr,fv_rcv,pos_rcv);
pos_rcv = [100;100;0];
rho(2) = polloss(fv_tr,fv_rcv,pos_rcv);
rho =
0 0
2-187
polloss
fv_tr = [1;0];
fv_rcv = [1;0];
pos_rcv = [0;100;0];
ax_rcv = azelaxes(0,0);
rho(1) = polloss(fv_tr,fv_rcv,pos_rcv,ax_rcv);
ax_rcv = roty(30)*ax_rcv;
rho(2) = polloss(fv_tr,fv_rcv,pos_rcv,ax_rcv);
rho =
0 1.2494
fv_tr = [1;0];
fv_rcv = [1;0];
pos_rcv = [0;100;0];
ax_rcv = azelaxes(0,0);
pos_tr = [0;0;0];
rho(1) = polloss(fv_tr,fv_rcv,pos_rcv,ax_rcv,pos_tr);
pos_tr = [100;100;0];
rho(2) = polloss(fv_tr,fv_rcv,pos_rcv,ax_rcv,pos_tr);
rho =
0 0
2-188
polloss
fv_tr = [1;0];
fv_rcv = [1;0];
The position of the transmitting antenna is at the origin and its local
axes align with the global coordinate system. The position of the
receiving antenna is 100 meters along the global -axis. However, its
local -axis points towards the transmitting antenna.
pos_tr = [0;0;0];
axes_tr = azelaxes(0,0);
pos_rcv = [100;0;0];
axes_rcv0 = rotz(180)*azelaxes(0,0);
angles = [0:1:359];
n = size(angles,2);
rho = zeros(1,n); % Initialize space
for k = 1:n
axes_rcv = rotx(angles(k))*axes_rcv0;
rho(k) = polloss(fv_tr,fv_rcv,pos_tr,axes_tr,...
pos_rcv,axes_rcv);
end
2-189
polloss
set(hax,'xtick',xticks);
grid;
title('Polarization loss versus receiving antenna rotation')
xlabel('Rotation angle (degrees)'); ylabel('Loss (dB)');
The angle-loss plot shows nulls (Inf dB) at 90 degrees and 270 degrees
where the polarizations are orthogonal.
2-190
polloss
E EH eˆ az EV eˆ el EmPi
P PH eˆ az PV eˆ el
2-191
polloss
z'
êel'
z el'
êel
êaz az
R x'
êaz'
el
az
The polarization loss is the projection (or dot product) of the normalized
transmitted field vector onto the normalized receiver polarization
vector. Notice that the loss occurs because of the mismatch in direction
of the two vectors not in their magnitudes. Because the vectors are
2-192
polloss
|Ei P|2
2
|Ei || P|2
References
[1] Mott, H. Antennas for Radar and Communications.John Wiley &
Sons, 1992.
2-193
polratio
Syntax p = polratio(fv)
2-194
polratio
fv = [2 ; 2];
p = polratio(fv)
p =
The resulting polarization ratio is real. The components also have equal
amplitudes so the polarization ratio is unity.
fv = [2 , i; i, 1];
p = polratio(fv)
p =
0 + 0.5000i 0 - 1.0000i
fv = [0 ; 2];
p = polratio(fv)
p =
Inf
2-195
polratio
References
[1] Mott, H., Antennas for Radar and Communications, John Wiley &
Sons, 1992.
2-196
polsignature
polsignature( ___ )
2-197
polsignature
2-198
polsignature
2-199
polsignature
rscmat = [-1,0;0,1];
resp = polsignature(rscmat);
el = [-45:45];
tilt = [-90:90];
imagesc(el,tilt,resp); ylabel('Tilt (degrees)');
xlabel('Ellipticity Angle (degrees)'), axis image
set(gca,'xtick',[-45:15:45],'ytick',[-90:15:90]);
title('Co-polarization signature of dihedral');
colorbar;
2-200
polsignature
2-201
polsignature
[-45:45], and tilt angles, [-90:90]. Then, draw the response matrix
as an image.
rscmat = [-1,0;0,1];
resp = polsignature(rscmat,'x');
el = [-45:45];
tilt = [-90:90];
imagesc(el,tilt,resp); ylabel('Tilt (degrees)');
xlabel('Ellipticity Angle (degrees)'), axis image
set(gca,'xtick',[-45:15:45],'ytick',[-90:15:90]);
title('Cross-polarization signature of dihedral');
colorbar;
2-202
polsignature
2-203
polsignature
rscmat = [-1,0;0,1];
el = [0];
respc = polsignature(rscmat,'c',el);
respx = polsignature(rscmat,'x',el);
tilt = [-90:90];
plot(tilt,respc,'b',tilt,respx,'r');
set(gca,'xlim',[-90,90],'xtick',[-90:15:90])
legend('Co-polarization','Cross-polarization');
title('Signatures for linear polarization');
xlabel('Tilt angle (degrees)');
ylabel('Signature');
2-204
polsignature
2-205
polsignature
rscmat = [-1,0;0,1];
el = [-45, 45];
tilt = 0;
respc = polsignature(rscmat,'c',el,tilt);
respx = polsignature(rscmat,'x',el,tilt);
respc =
1 1
respx =
1 1
The responses of the dihedral are the same for each polarization.
2-206
polsignature
2-207
polsignature
E( sc) S SVH EH
(inc) E(inc)
H HH S H
E( sc) SHV SVV E(inc) E(inc)
V V V
The scattering cross section matrix depends upon the angles that the
incident and scattered fields make with the object. When the incident
field is backscattered to the transmitting antenna, the scattering
matrix is symmetric.
Polarization Signature
Polarization signature for visualizing scattering cross-section matrix.
To understand how the scattered wave depends upon the polarization
of the incident wave, an examination of all possible scattered field
polarizations for each incident polarization is required. Because this
amount of data is difficult to visualize, you can look at two particular
scattered polarizations:
• Choose one polarization that has the same polarization as the
incident field (copolarization)
2-208
polsignature
* E
(inc)
P ( co) EH
(inc)
EV(inc) S H
E(inc)
V
where []* denotes complex conjugation. For the cross-polarization
signature, compute
* E
(inc)
(inc)
P ( cross) EH EV(inc) S H
E(inc)
V
The output of this function is the absolute value of each signature
normalized by its maximum value.
2-209
polsignature
References
[1] Mott, H. Antennas for Radar and Communications.John Wiley &
Sons, 1992.
2-210
pulsint
Syntax Y = pulsint(X)
Y = pulsint(X,METHOD)
Input X
Arguments Pulse input data. Each column of X is one pulse.
METHOD
Pulse integration method. METHOD is the method used to integrate the
pulses in the columns of X. Valid values of METHOD are 'coherent' and
'noncoherent'. The strings are not case sensitive.
Default: 'noncoherent'
Output Y
Arguments Integrated pulse. Y is an N-by-1 column vector where N is the number
of rows in the input X.
N
Yi X ij
j 1
2-211
pulsint
N
Yi |X ij |2
j 1
x = repmat(sin(2*pi*(0:99)'/100),1,10)+0.1*randn(100,10);
y = pulsint(x);
subplot(211), plot(abs(x(:,1)));
ylabel('Magnitude');
title('First Pulse');
subplot(212), plot(abs(y));
ylabel('Magnitude');
title('Integrated Pulse');
2-212
pulsint
2-213
radarEquationCalculator
Description The Radar Equation Calculator app is a tool for solving the basic
radar equation for monostatic or bistatic radar systems. The radar
equation relates target range, transmitted power and received signal
SNR. Using this app, you can solve for any one of these three quantities.
If you know the transmit power of your radar and the desired received
SNR, you can solve for the maximum target range. If you know the
target range and desired received SNR, you can compute how much
power you need to transmit. Finally, if you know the range and transmit
power, you can calculate the received SNR value.
After you choose the type of solution, set other parameters to build
a complete model. The principal parameters to specify are target
cross-section, wavelength, antenna gains, noise temperature, and
overall system losses.
2-214
radarEquationCalculator
2-215
radarEquationCalculator
2-216
radarEquationCalculator
2-217
radarEquationCalculator
2-218
radarEquationCalculator
2-219
radarEquationCalculator
2-220
radarEquationCalculator
2-221
radarEquationCalculator
2-222
radarEquationCalculator
2-223
radarEquationCalculator
2-224
radarEquationCalculator
2-225
radareqpow
Syntax Pt = radareqpow(lambda,tgtrng,SNR,Tau)
Pt = radareqpow(...,Name,Value)
Input lambda
Arguments Wavelength of radar operating frequency (in meters). The wavelength
is the ratio of the wave propagation speed to frequency. For
electromagnetic waves, the speed of propagation is the speed of light.
Denoting the speed of light by c and the frequency (in hertz) of the wave
by f, the equation for wavelength is:
c
=
f
tgtrng
Target range in meters. When the transmitter and receiver are
colocated (monostatic radar), tgtrng is a real-valued positive scalar.
When the transmitter and receiver are not colocated (bistatic radar),
tgtrng is a 1-by-2 row vector with real-valued positive elements. The
first element is the target range from the transmitter, and the second
element is the target range from the receiver.
SNR
The minimum output signal-to-noise ratio at the receiver in decibels.
2-226
radareqpow
Tau
Single pulse duration in seconds.
’Gain’
Transmitter and receiver gain in decibels (dB). When the transmitter
and receiver are colocated (monostatic radar), Gain is a real-valued
scalar. The transmit and receive gains are equal. When the transmitter
and receiver are not colocated (bistatic radar), Gain is a 1-by-2 row
vector with real-valued elements. The first element is the transmitter
gain and the second element is the receiver gain.
Default: 20
’Loss’
System loss in decibels (dB). Loss represents a general loss factor
that comprises losses incurred in the system components and in the
propagation to and from the target.
Default: 0
’RCS’
Radar cross section in square meters. The target RCS is nonfluctuating.
Default: 1
’Ts’
System noise temperature in kelvin. The system noise temperature is
the product of the system temperature and the noise figure.
2-227
radareqpow
Output Pt
Arguments Transmitter peak power in watts.
Pt Gt Gr 2
Pr =
(4 )3 Rt2 Rr2 L
2-228
radareqpow
assume the thermal noise in the receiver has a white noise power
spectral density (PSD) given by:
P ( f ) = kT
where k is the Boltzmann constant and T is the effective noise
temperature. The receiver acts as a filter to shape the white noise
PSD. Assume that the magnitude squared receiver frequency response
approximates a rectangular filter with bandwidth equal to the reciprocal
of the pulse duration, 1/τ. The total noise power at the output of the
receiver is:
kTFn
N=
where Fn is the receiver noise factor.
The product of the effective noise temperature and the receiver noise
factor is referred to as the system temperature and is denoted by Ts,
so that Ts=TFn .
Pr Pt Gt Gr 2
=
N (4 )3 kTs Rt2 Rr2 L
2-229
radareqpow
lambda = physconst('LightSpeed')/1e9;
tgtrng = 50e3;
tau = 1e-6;
SNR = 6;
Pt = radareqpow(lambda,tgtrng,SNR,tau);
lambda = physconst('LightSpeed')/10e9;
Pt = radareqpow(lambda,50e3,10,1e-6,'RCS',0.5,...
'Gain',30,'Ts',300,'Loss',3);
lambda = physconst('LightSpeed')/10e9;
SNR = 6;
tau = 10e-6;
TxRng = 50e3; RvRng = 75e3;
TxRvRng =[TxRng RvRng];
TxGain = 40; RvGain = 20;
Gain = [TxGain RvGain];
Pt = radareqpow(lambda,TxRvRng,SNR,tau,'Gain',Gain);
2-230
radareqpow
2-231
radareqrng
Input lambda
Arguments Wavelength of radar operating frequency (in meters). The wavelength
is the ratio of the wave propagation speed to frequency. For
electromagnetic waves, the speed of propagation is the speed of light.
Denoting the speed of light by c and the frequency (in hertz) of the wave
by f, the equation for wavelength is:
c
=
f
Pt
Transmitter peak power in watts.
SNR
The minimum output signal-to-noise ratio at the receiver in decibels.
Tau
Single pulse duration in seconds.
2-232
radareqrng
’Gain’
Transmitter and receiver gain in decibels (dB). When the transmitter
and receiver are colocated (monostatic radar), Gain is a real-valued
scalar. The transmit and receive gains are equal. When the transmitter
and receiver are not colocated (bistatic radar), Gain is a 1-by-2 row
vector with real-valued elements. The first element is the transmitter
gain, and the second element is the receiver gain.
Default: 20
’Loss’
System loss in decibels (dB). Loss represents a general loss factor
that comprises losses incurred in the system components and in the
propagation to and from the target.
Default: 0
’RCS’
Radar cross section in square meters. The target RCS is nonfluctuating.
Default: 1
’Ts’
System noise temperature in kelvins. The system noise temperature is
the product of the system temperature and the noise figure.
’unitstr’
The units of the estimated maximum theoretical range. unitstr is
one of the following strings:
• 'km' kilometers
2-233
radareqrng
• 'm' meters
• 'nmi' nautical miles (U.S.)
Default: 'm'
Output maxrng
Arguments The estimated theoretical maximum detectable range. The units of
maxrng depends on the value of unitstr. By default maxrng is in
meters. For bistatic radars, maxrng is the geometric mean of the range
from the transmitter to the target and the receiver to the target.
Pt Gt Gr 2
Pr =
(4 )3 Rt2 Rr2 L
2-234
radareqrng
P ( f ) = kT
where k is the Boltzmann constant and T is the effective noise
temperature. The receiver acts as a filter to shape the white noise
PSD. Assume that the magnitude squared receiver frequency response
approximates a rectangular filter with bandwidth equal to the reciprocal
of the pulse duration, 1/τ. The total noise power at the output of the
receiver is:
kTFn
N=
where Fn is the receiver noise factor.
The product of the effective noise temperature and the receiver noise
factor is referred to as the system temperature. This value is denoted by
Ts, so that Ts=TFn .
Pr Pt Gt Gr 2
=
N (4 )3 kTs Rt2 Rr2 L
2-235
radareqrng
NPt Gt Gr 2
R=( )1 / 4
3
Pr (4 ) kTs L
NPt Gt Gr 2
Rt Rr = ( )1 / 4
Pr (4 )3 kTs L
lambda = physconst('LightSpeed')/10e9;
SNR = 6;
tau = 10e-6;
Pt = 1e6;
maxrng = radareqrng(lambda,SNR,Pt,tau);
2-236
radareqrng
RCS is 0.1 square meters. Assume the output SNR of the receiver is 6
dB. The transmitter-receiver gain is 40 dB. Assume a loss factor of 3 dB.
lambda = physconst('LightSpeed')/10e9;
SNR = 6;
tau = 10e-6;
Pt = 1e6;
RCS = 0.1;
Gain = 40;
Loss = 3;
maxrng2 = radareqrng(lambda,SNR,Pt,tau,'Gain',Gain,...
'RCS',RCS,'Loss',Loss);
2-237
radareqsnr
Input lambda
Arguments Wavelength of radar operating frequency in meters. The wavelength
is the ratio of the wave propagation speed to frequency. For
electromagnetic waves, the speed of propagation is the speed of light.
Denoting the speed of light by c and the frequency in hertz of the wave
by f, the equation for wavelength is:
c
=
f
tgtrng
Target range in meters. When the transmitter and receiver are
colocated (monostatic radar), tgtrng is a real-valued positive scalar.
When the transmitter and receiver are not colocated (bistatic radar),
tgtrng is a 1-by-2 row vector with real-valued positive elements. The
first element is the target range from the transmitter, and the second
element is the target range from the receiver.
Pt
Transmitter peak power in watts.
2-238
radareqsnr
tau
Single pulse duration in seconds.
’Gain’
Transmitter and receiver gain in decibels (dB). When the transmitter
and receiver are colocated (monostatic radar), Gain is a real-valued
scalar. The transmit and receive gains are equal. When the transmitter
and receiver are not colocated (bistatic radar), Gain is a 1-by-2 row
vector with real-valued elements. The first element is the transmitter
gain, and the second element is the receiver gain.
Default: 20
’Loss’
System loss in decibels (dB). Loss represents a general loss factor
that comprises losses incurred in the system components and in the
propagation to and from the target.
Default: 0
’RCS’
Target radar cross section in square meters. The target RCS is
nonfluctuating.
Default: 1
’Ts’
2-239
radareqsnr
Output SNR
Arguments The estimated output signal-to-noise ratio at the receiver in decibels.
SNR is 10log10(Pr/N). The ratio Pr/N is defined in “Receiver Output SNR”
on page 2-241.
Pt Gt Gr 2
Pr =
(4 )3 Rt2 Rr2 L
2-240
radareqsnr
Terms expressed in decibels such as the loss and gain factors enter
the equation in the form 10x/10 where x denotes the variable value in
decibels. For example, the default loss factor of 0 dB results in a loss
term equal to one in the equation (100/10).
Receiver Output Noise Power
The equation for the power at the input to the receiver represents
the signal term in the signal-to-noise ratio. To model the noise term,
assume the thermal noise in the receiver has a white noise power
spectral density (PSD) given by:
P ( f ) = kT
where k is the Boltzmann constant and T is the effective noise
temperature. The receiver acts as a filter to shape the white noise
PSD. Assume that the magnitude squared receiver frequency response
approximates a rectangular filter with bandwidth equal to the reciprocal
of the pulse duration, 1/τ. The total noise power at the output of the
receiver is:
kTFn
N=
where Fn is the receiver noise factor.
The product of the effective noise temperature and the receiver noise
factor is referred to as the system temperature and is denoted by Ts,
so that Ts=TFn .
Receiver Output SNR
The receiver output SNR is:
Pr Pt Gt Gr 2
=
N (4 )3 kTs Rt2 Rr2 L
2-241
radareqsnr
Examples Estimate the output SNR for a target with an RCS of 1 square meter at
a range of 50 kilometers. The system is a monostatic radar operating at
1 gigahertz with a peak transmit power of 1 megawatt and pulse width
of 0.2 microseconds. The transmitter and receiver gain is 20 decibels
and the system temperature is 290 kelvin.
lambda = physconst('LightSpeed')/1e9;
tgtrng = 50e3;
Pt = 1e6;
tau = 0.2e-6;
snr = radareqsnr(lambda,tgtrng,Pt,tau);
Estimate the output SNR for a target with an RCS of 0.5 square meters
at 100 kilometers. The system is a monostatic radar operating at 10
gigahertz with a peak transmit power of 1 megawatt and pulse width of
1 microsecond. The transmitter and receiver gain is 40 decibels. The
system temperature is 300 kelvin and the loss factor is 3 decibels.
lambda = physconst('LightSpeed')/10e9;
snr = radareqsnr(lambda,100e3,1e6,1e-6,'RCS',0.5,...
'Gain',40,'Ts',300,'Loss',3);
Estimate the output SNR for a target with an RCS of 1 square meter.
The radar is bistatic. The target is located 50 kilometers from the
transmitter and 75 kilometers from the receiver. The radar operating
frequency is 10 gigahertz. The transmitter has a peak transmit
power of 1 megawatt with a gain of 40 decibels. The pulse width is 1
microsecond. The receiver gain is 20 decibels.
lambda = physconst('LightSpeed')/10e9;
tau = 1e-6;
Pt = 1e6;
txrvRng =[50e3 75e3];
2-242
radareqsnr
2-243
radarvcd
radarvcd( ___ )
2-244
radarvcd
Example: 100e6
Data Types
double
2-245
radarvcd
2-246
radarvcd
Data Types
double
2-247
radarvcd
2-248
radarvcd
freq = 100e6;
ant_height = 10;
rng_fs = 200;
[vcp,vcpangles] = radarvcd(freq,rng_fs,ant_height);
freq = 100e6;
ant_height = 10;
rng_fs = 200;
radarvcd(freq,rng_fs,ant_height);
2-249
radarvcd
pat_angles = linspace(-90,90,361)';
pat_u = 1.39157/sind(45/2)*sind(pat_angles);
pat = sinc(pat_u/pi);
2-250
radarvcd
freq = 100e6;
ant_height = 10;
rng_fs = 200;
tilt_ang = 0;
[vcp,vcpangles] = radarvcd(freq,rng_fs,ant_height,...
'RangeUnit','km','HeightUnit','m',...
'AntennaPattern',pat,...
'PatternAngles',pat_angles,...
'TiltAngle',tilt_ang,'SurfaceRoughness',1);
pat_angles = linspace(-90,90,361)';
pat_u = 1.39157/sind(90/2)*sind(pat_angles);
pat = sinc(pat_u/pi);
Specify a radar that transmits at 100 MHz. The free-space range is 200
km, the antenna height is 10 meters, the antenna tilt angle is zero
degrees, and the surface roughness is one meter.
freq = 100e6;
ant_height = 10;
rng_fs = 200;
tilt_ang = 0;
surf_roughness = 1;
radarvcd(freq,rng_fs,ant_height,...
'RangeUnit','km','HeightUnit','m',...
'AntennaPattern',pat,...
'PatternAngles',pat_angles,...
'TiltAngle',tilt_ang,...
2-251
radarvcd
'SurfaceRoughness',surf_roughness);
2-252
radarvcd
References
[1] Blake, L.V. Machine Plotting of Radar Vertical-Plane Coverage
Diagrams. Naval Research Laboratory Report 7098, 1970.
2-253
radarWaveformAnalyzer
Description The Radar Waveform Analyzer app is a tool for exploring the
properties of various kinds of signals often used in radar and
sonar systems. The app lets you determine the basic performance
characteristics of the following waveforms:
• Rectangular
• Linear FM
• Stepped FM
• Phase-coded
• FMCW
Each waveform has a set of parameters that are unique to its kind. After
you select a signal, the signal parameters menu changes so you can
quickly modify the signal. Parameters you can set include the duration,
pulse-repetition frequency, number of pulse, bandwidth and sample
rate. Changing the propagation speed lets you display properties of
sound waves in air and water, or electromagnetic waves. After you
enter all the information for a signal of interest, the app displays basic
characteristics such as range resolution, Doppler resolution, maximum
and minimum range and maximum Doppler.
The Radar Waveform Analyzer app lets you produce a variety of
plots and images. These are plots of the waveform’s
• Real and imaginary components
• Magnitude and phase
• Spectrum
• Spectrogram
• Representations of the ambiguity function
- Contour
- Surface
- Delay cut
2-254
radarWaveformAnalyzer
- Doppler cut
• Autocorrelation function
2-255
radarWaveformAnalyzer
2-256
radarWaveformAnalyzer
Next, you can view the signal spectrum. To do so, select spectrum from
the View drop-down menu.
2-257
radarWaveformAnalyzer
2-258
radarWaveformAnalyzer
2-259
radarWaveformAnalyzer
Do this by setting the Waveform Type to Linear FM. This pulse has
a variable frequency which can either increase or decrease as a linear
function of time. Choose the Sweep Direction as Up, and the Sweep
Bandwidth as 1 MHz. You can see that keeping the same pulse
width as before improves the range resolution to 150 m, as shown in
the following figure.
2-260
radarWaveformAnalyzer
2-261
radarWaveformAnalyzer
2-262
radialspeed
Input Pos
Arguments Positions of platforms, specified as a 3-by-N matrix. Each column
specifies a position in the form [x; y; z], in meters.
V
Velocities of platforms, specified as a 3-by-N matrix. Each column
specifies a velocity in the form [x; y; z], in meters per second.
RefPos
Position of reference platform, specified as a 3-by-1 vector. The vector
has the form [x; y; z], in meters.
Default: [0; 0; 0]
RefV
Velocity of reference platform, specified as a 3-by-1 vector. The vector
has the form [x; y; z], in meters per second.
2-263
radialspeed
Default: [0; 0; 0]
Output Rspeed
Arguments Radial speed in meters per second, as an N-by-1 vector. Each number in
the vector represents the radial speed of the corresponding platform.
Positive numbers indicate that the platform is approaching the
reference platform. Negative numbers indicate that the platform is
moving away from the reference platform.
2-264
range2beat
Syntax fb = range2beat(r,slope)
fb = range2beat(r,slope,c)
Input r - Range
Arguments array of nonnegative numbers
Range, specified as an array of nonnegative numbers in meters.
Data Types
double
2-265
range2beat
slope = 300e6/1e-3;
r = 18e3;
fb = range2beat(r,slope);
References
[1] Pace, Phillip. Detecting and Classifying Low Probability of Intercept
Radar. Artech House, Boston, 2009.
2-266
range2beat
2-267
range2bw
Syntax bw = range2bw(r)
bw = range2bw(r,c)
2-268
range2bw
r = 10;
tau = 1/range2bw(r);
References
[1] Skolnik, M. Introduction to Radar Systems, 3rd Ed. New York:
McGraw-Hill, 2001.
2-269
range2time
Syntax t = range2time(r)
t = range2time(r,c)
2-270
range2time
r = 15e3;
prf = 1/range2time(r);
References
[1] Skolnik, M. Introduction to Radar Systems, 3rd Ed. New York:
McGraw-Hill, 2001.
2-271
rangeangle
Input POS
Arguments Input position in meters. POS is 3-by-N matrix of rectangular
coordinates in the form [x;y;z]. Each column in POS represents the
coordinates of one position.
REFPOS
Reference position. REFPOS is a 3-by-1 vector of rectangular coordinates
in the form [x;y;z]. REFPOS serves as the origin of the local coordinate
system. Ranges and angles to the columns of POS are measured with
respect to REFPOS.
Default: [0;0;0]
REFAXES
Local coordinate system axes. REFAXES is a 3-by-3 matrix whose
columns define the axes the of the local coordinate system with origin at
REFPOS. Each column in REFAXES specifies the direction of an axis for
the local coordinate system in rectangular coordinates [x; y; z].
2-272
rangeangle
Output tgtrng
Arguments Range in meters. tgtrng is an 1-by-N vector of ranges from the origin
to the corresponding columns in POS.
tgtang
Azimuth and elevation angles in degrees. tgtang is a 2-by-N matrix
whose columns are the angles in the form [azimuth;elevation] for the
corresponding positions specified in POS.
TargetLoc = [1e3;2e3;50];
[tgtrng,tgtang] = rangeangle(TargetLoc);
TargetLoc = [1e3;2e3;50];
[tgtrng,tgtang] = rangeangle(TargetLoc,[100; 100; 10]);
TargetLoc = [1e3;2e3;50];
refaxes =[1/sqrt(2) 1/sqrt(2) 0; 1/sqrt(2) -1/sqrt(2) 0; 0 0 1];
[tgtrng,tgtang] = rangeangle(TargetLoc,[100; 100; 10],refaxes);
2-273
rdcoupling
Syntax dr = rdcoupling(fd,slope)
dr = rdcoupling(fd,slope,c)
2-274
rdcoupling
slope = 30e6/2e-3;
fb = 1e3;
fd = 100;
r = beat2range(fb,slope) - rdcoupling(fd,slope);
References
[1] Barton, David K. Radar System Analysis and Modeling. Boston:
Artech House, 2005.
2-275
rdcoupling
2-276
rocpfa
Input Pfa
Arguments False-alarm probabilities in a row or column vector.
’MaxSNR’
Maximum SNR to include in the ROC calculation.
Default: 20
’MinSNR’
2-277
rocpfa
Default: 0
’NumPoints’
Number of SNR values to use when calculating the ROC curves. The
actual values are equally spaced between MinSNR and MaxSNR.
Default: 101
’NumPulses’
Number of pulses to integrate when calculating the ROC curves. A
value of 1 indicates no pulse integration.
Default: 1
’SignalType’
String that specifies the type of received signal or, equivalently,
the probability density functions (PDF) used to compute the
ROC. Valid values are: 'Real', 'NonfluctuatingCoherent',
'NonfluctuatingNoncoherent', 'Swerling1', 'Swerling2',
'Swerling3', and 'Swerling4'. The strings are not case sensitive.
The 'NonfluctuatingCoherent' signal type assumes that the noise in
the received signal is a complex-valued, Gaussian random variable.
This variable has independent zero-mean real and imaginary parts each
with variance σ2/2 under the null hypothesis. In the case of a single
pulse in a coherent receiver with complex white Gaussian noise, the
probability of detection, PD, for a given false-alarm probability, PFA is:
1
PD = erfc(erfc −1 (2 PFA ) − )
2
where erfc and erfc-1 are the complementary error function and that
function’s inverse, and χ is the SNR not expressed in decibels.
For details about the other supported signal types, see [1].
2-278
rocpfa
Default: 'NonfluctuatingCoherent'
Output Pd
Arguments Detection probabilities corresponding to the false-alarm probabilities.
For each false-alarm probability in Pfa, Pd contains one column of
detection probabilities.
SNR
Signal-to-noise ratios in a column vector. By default, the SNR values
are 101 equally spaced values between 0 and 20. To change the range of
SNR values, use the optional MinSNR or MaxSNR input argument. To
change the number of SNR values, use the optional NumPoints input
argument.
Examples Plot ROC curves for false-alarm probabilities of 1e–8, 1e–6, and 1e–3,
assuming coherent integration of a single pulse.
2-279
rocpfa
2-280
rocsnr
Input SNRdB
Arguments Signal-to-noise ratios in decibels, in a row or column vector.
’MaxPfa’
Maximum false-alarm probability to include in the ROC calculation.
Default: 1
’MinPfa’
2-281
rocsnr
Default: 1e-10
’NumPoints’
Number of false-alarm probabilities to use when calculating the ROC
curves. The actual probability values are logarithmically equally spaced
between MinPfa and MaxPfa.
Default: 101
’NumPulses’
Number of pulses to integrate when calculating the ROC curves. A
value of 1 indicates no pulse integration.
Default: 1
’SignalType’
String that specifies the type of received signal or, equivalently,
the probability density functions (PDF) used to compute the
ROC. Valid values are: 'Real', 'NonfluctuatingCoherent',
'NonfluctuatingNoncoherent', 'Swerling1', 'Swerling2',
'Swerling3', and 'Swerling4'.
The 'NonfluctuatingCoherent' signal type assumes that the noise in
the received signal is a complex-valued, Gaussian random variable.
This variable has independent zero-mean real and imaginary parts each
with variance σ2/2 under the null hypothesis. In the case of a single
pulse in a coherent receiver with complex white Gaussian noise, the
probability of detection, PD, for a given false-alarm probability, PFA is:
1
PD = erfc(erfc −1 (2 PFA ) − )
2
where erfc and erfc-1 are the complementary error function and that
function’s inverse, and χ is the SNR not expressed in decibels.
2-282
rocsnr
For details about the other supported signal types, see [1].
Default: 'NonfluctuatingCoherent'
Output Pd
Arguments Detection probabilities corresponding to the false-alarm probabilities.
For each SNR in SNRdB, Pd contains one column of detection
probabilities.
Pfa
False-alarm probabilities in a column vector. By default, the
false-alarm probabilities are 101 logarithmically equally spaced values
between 1e–10 and 1. To change the range of probabilities, use the
optional MinPfa or MaxPfa input argument. To change the number of
probabilities, use the optional NumPoints input argument.
2-283
rocsnr
2-284
rootmusicdoa
2-285
rootmusicdoa
Data Types
double
N = 10;
2-286
rootmusicdoa
d = 0.5;
elementPos = (0:N-1)*d;
angles = [0 -25 30];
Nsig = 3;
R = sensorcov(elementPos,angles,db2pow(-5));
doa = rootmusicdoa(R,Nsig)
doa =
N = 10;
d = 0.4;
elementPos = (0:N-1)*d;
angles = [0 -25 30];
Nsig = 3;
R = sensorcov(elementPos,angles,db2pow(-5));
doa = rootmusicdoa(R,Nsig,'ElementSpacing',d)
doa =
2-287
rootmusicdoa
References
[1] Van Trees, H.L. Optimum Array Processing. New York:
Wiley-Interscience, 2002.
2-288
rotx
Syntax R = rotx(ang)
Example: 30.0
Data Types
double
1 0 0
Rx ( ) 0 cos sin
0 sin cos
for a rotation angle α.
2-289
rotx
R = rotx(30)
R =
1 0 0
0 0.86603 -0.5
0 0.5 0.86603
x = [2;-2;4];
y = R*x
y =
2
-3.7321
2.4641
2-290
rotx
1 0 0
Rx ( ) 0 cos sin
0 sin cos
cos 0 sin
Ry ( ) 0 1 0
sin 0 cos
cos sin 0
Rz ( ) sin cos 0
0 0 1
The following three figures show what positive rotations look like for
each rotation axis:
2-291
rotx
2-292
rotx
2-293
rotx
2-294
rotx
1 0 0
Rx1 ( ) Rx ( ) 0 cos sin Rx ( )
0 sin cos
This example illustrates a basic property: the inverse rotation matrix
equals the transpose of the original. Rotation matrices satisfy A’A =
1, and consequently det(A) = 1. Under rotations, vector lengths are
preserved as well as the angles between vectors.
We can think of rotations in another way. Consider the original set of
basis vectors, i, j, k , and rotate them all using the rotation matrix A.
This produces a new set of basis vectors i , j, k related to the original
by:
i Ai
j Aj
k Ak
The new basis vectors can be written as linear combinations of the old
ones and involve the transpose:
i i
j A j
k k
2-295
rotx
vx vx vx
vy A vy A vy
1
v v v
z z z
Thus the change in components of a vector when the coordinate system
rotates involves the transpose of the rotation matrix. The next figure
illustrates how a vector stays fixed as the coordinate system rotates
around the x-axis. The figure after shows how this can be interpreted
as a rotation of the vector in the opposite direction.
2-296
rotx
2-297
rotx
2-298
rotx
References
[1] Goldstein, H., C. Poole and J. Safko,Classical Mechanics, 3rd
Edition, San Francisco: Addison Wesley, 2002, pp. 142–144.
2-299
roty
Syntax R = roty(ang)
Example: 30.0
Data Types
double
cos 0 sin
Ry ( ) 0 1 0
sin 0 cos
for a rotation angle β.
2-300
roty
R = roty(45)
R =
0.7071 0 0.7071
0 1.0000 0
-0.7071 0 0.7071
v = [1;-2;4];
y = R*v
y =
3.5355
-2.0000
2.1213
2-301
roty
1 0 0
Rx ( ) 0 cos sin
0 sin cos
cos 0 sin
Ry ( ) 0 1 0
sin 0 cos
cos sin 0
Rz ( ) sin cos 0
0 0 1
The following three figures show what positive rotations look like for
each rotation axis:
2-302
roty
2-303
roty
2-304
roty
2-305
roty
1 0 0
Rx1 ( ) Rx ( ) 0 cos sin Rx ( )
0 sin cos
This example illustrates a basic property: the inverse rotation matrix
equals the transpose of the original. Rotation matrices satisfy A’A =
1, and consequently det(A) = 1. Under rotations, vector lengths are
preserved as well as the angles between vectors.
We can think of rotations in another way. Consider the original set of
basis vectors, i, j, k , and rotate them all using the rotation matrix A.
This produces a new set of basis vectors i , j, k related to the original
by:
i Ai
j Aj
k Ak
The new basis vectors can be written as linear combinations of the old
ones and involve the transpose:
i i
j A j
k k
2-306
roty
vx vx vx
vy A vy A vy
1
v v v
z z z
Thus the change in components of a vector when the coordinate system
rotates involves the transpose of the rotation matrix. The next figure
illustrates how a vector stays fixed as the coordinate system rotates
around the x-axis. The figure after shows how this can be interpreted
as a rotation of the vector in the opposite direction.
2-307
roty
2-308
roty
2-309
roty
References
[1] Goldstein, H., C. Poole and J. Safko, Classical Mechanics, 3rd
Edition, San Francisco: Addison Wesley, 2002, pp. 142–144.
2-310
rotz
Syntax R = rotz(ang)
Example: 45.0
Data Types
double
cos sin 0
Rz ( ) sin cos 0
0 0 1
for a rotation angle γ.
2-311
rotz
R = rotz(45)
R =
0.7071 -0.7071 0
0.7071 0.7071 0
0 0 1.0000
v = [1;-2;4];
y = R*v
y =
2.1213
-0.7071
4.0000
2-312
rotz
1 0 0
Rx ( ) 0 cos sin
0 sin cos
cos 0 sin
Ry ( ) 0 1 0
sin 0 cos
cos sin 0
Rz ( ) sin cos 0
0 0 1
The following three figures show what positive rotations look like for
each rotation axis:
2-313
rotz
2-314
rotz
2-315
rotz
2-316
rotz
1 0 0
Rx1 ( ) Rx ( ) 0 cos sin Rx ( )
0 sin cos
This example illustrates a basic property: the inverse rotation matrix
equals the transpose of the original. Rotation matrices satisfy A’A =
1, and consequently det(A) = 1. Under rotations, vector lengths are
preserved as well as the angles between vectors.
We can think of rotations in another way. Consider the original set of
basis vectors, i, j, k , and rotate them all using the rotation matrix A.
This produces a new set of basis vectors i , j, k related to the original
by:
i Ai
j Aj
k Ak
The new basis vectors can be written as linear combinations of the old
ones and involve the transpose:
i i
j A j
k k
2-317
rotz
vx vx vx
vy A vy A vy
1
v v v
z z z
Thus the change in components of a vector when the coordinate system
rotates involves the transpose of the rotation matrix. The next figure
illustrates how a vector stays fixed as the coordinate system rotates
around the x-axis. The figure after shows how this can be interpreted
as a rotation of the vector in the opposite direction.
2-318
rotz
2-319
rotz
2-320
rotz
References
[1] Goldstein, H., C. Poole and J. Safko, Classical Mechanics, 3rd
Edition, San Francisco: Addison Wesley, 2002, pp. 142–144.
2-321
sensorArrayAnalyzer
Description You use the Sensor Array Analyzer app to construct and analyze
common sensor array configurations. These configurations range from
1-D to 3-D arrays of antennas and microphones. You can use this app to
generate the directivity of the following arrays.
Isotropic Antenna
Cosine Antenna
Omnidirectional Microphone
Cardioid Microphone
Custom Antenna
The Sensor Array Analyzer app lets you produce a variety of plots
and images. These are types of plots available.
2-322
sensorArrayAnalyzer
Plot type
Array Geometry
2D Array Directivity
3D Array Directivity
Grating Lobes Available for the Uniform Linear
Array, the Uniform Rectangular
Array, the Uniform Hexagonal
Array, and the Circular Planar
Array.
2-323
sensorArrayAnalyzer
2-324
sensorArrayAnalyzer
2-325
sensorArrayAnalyzer
2-326
sensorArrayAnalyzer
2-327
sensorArrayAnalyzer
2-328
sensorArrayAnalyzer
2-329
sensorArrayAnalyzer
2-330
sensorArrayAnalyzer
2-331
sensorArrayAnalyzer
2-332
sensorArrayAnalyzer
directivity. Without tapering, the array directivity for this URA is 17.2
dB. With tapering, the array directivity loses 1 dB to yield 16.0 dB.
2-333
sensorArrayAnalyzer
2-334
sensorArrayAnalyzer
The next figure shows what happens when the pointing direction lies
outside the green region. In this case, one grating lobe moves into the
physical region.
2-335
sensorArrayAnalyzer
2-336
sensorArrayAnalyzer
2-337
sensorArrayAnalyzer
2-338
sensorArrayAnalyzer
2-339
sensorArrayAnalyzer
pos = [0,0,0;0,1,0.5;0,0,0.866];
nrm = [0,0,0;20,20,20];
tpr = [1,1,1];
2-340
sensorArrayAnalyzer
2-341
sensorcov
2-342
sensorcov
2-343
sensorcov
watts) along its diagonal and has off-diagonal values of zero. Using a
non-negative real-valued vector results in a noise spatial covariance
that has diagonal values corresponding to the entries in ncov and
has off-diagonal entries of zero. The diagonal entries represent the
independent white noise power values (in watts) in each sensor. If ncov
is N-by-N matrix, this value represents the full noise spatial covariance
matrix between all sensor elements.
Example: [1,1,4,6]
Data Types
double
Complex Number Support: Yes
2-344
sensorcov
N = 3; % Elements in array
d = 0.5; % sensor spacing half wavelength
elementPos = (0:N-1)*d;
xcov = sensorcov(elementPos,[30 60]);
xcov =
The diagonal terms represent the sum of the two signal powers.
Covariance Matrix for Two Independent Signals with 10 dB
SNR
Create a spatial covariance matrix for a 3-element,
half-wavelength-spaced line array. Assume there are two
incoming unit-power signals and there is a noise value of –10 dB. By
default, scov is the identity matrix.
N = 3; % Elements in array
d = 0.5; % sensor spacing half wavelength
elementPos = (0:N-1)*d;
xcov = sensorcov(elementPos,[30 35],db2pow(-10));
xcov =
2-345
sensorcov
The diagonal terms represent the two signal powers plus noise power
at each sensor.
N = 3; % Elements in array
d = 0.5; % sensor spacing half wavelength
elementPos = (0:N-1)*d;
scov = [1, 0.8; 0.8, 1];
xcov = sensorcov(elementPos,[30 35],db2pow(-10),scov);
xcov =
References
[1] Van Trees, H.L. Optimum Array Processing. New York, NY:
Wiley-Interscience, 2002.
2-346
sensorcov
2-347
sensorsig
Syntax x = sensorsig(pos,ns,ang)
x = sensorsig(pos,ns,ang,ncov)
x = sensorsig(pos,ns,ang,ncov,scov)
[x,rt] = sensorsig( ___ )
[x,rt,r] = sensorsig( ___ )
2-348
sensorsig
2-349
sensorsig
Data Types
double
2-350
sensorsig
2-351
sensorsig
This figure illustrates the azimuth angle and elevation angle for a
vector that appears as a green solid line. The coordinate system is
relative to the center of a uniform linear array, whose elements appear
as blue circles.
2-352
sensorsig
fc = 3e8;
c = 3e8;
lambda = c/fc;
ha = phased.ULA(8,lambda/2);
x = sensorsig(getElementPosition(ha)/lambda,...
100,[30 60],db2pow(-10));
hdoa = phased.BeamscanEstimator('SensorArray',ha,...
'PropagationSpeed',c,'OperatingFrequency',fc,...
'DOAOutputPort',true,'NumSignals',2);
[~,ang_est] = step(hdoa,x);
plotSpectrum(hdoa);
2-353
sensorsig
fc = 3e8;
2-354
sensorsig
c = 3e8;
lambda = c/fc;
ha = phased.ULA(8,lambda/2);
hdoa = phased.BeamscanEstimator('SensorArray',ha,...
'PropagationSpeed',c,'OperatingFrequency',fc,...
'DOAOutputPort',true,'NumSignals',2);
[~,ang_est] = step(hdoa,x);
plotSpectrum(hdoa);
2-355
sensorsig
The plot shows a high peak at 30 degrees and a lower peak at 60 degrees.
Create a signal covariance matrix in which the first and third of three
signals are correlated with each other.
scov = [1 0 0.6;...
2-356
sensorsig
0 2 0 ;...
0.6 0 1 ];
pos = (0:7)*0.5;
ns = 100;
ang = [30 40 60];
ncov = db2pow(-10);
x = sensorsig(pos,ns,ang,ncov,scov);
Theoretical and Empirical Covariance of Received Signal
Simulate receiving a signal at a URA. Compare the signal’s theoretical
covariance, rt, with its sample covariance, r.
Define the noise power independently for each of the four array
elements. Each entry in ncov is the noise power of an array element.
This element’s position is the corresponding column in pos. Assume the
noise is uncorrelated across elements.
Simulate 100 snapshots of the received signal at the array, and store
the theoretical and empirical covariance matrices. Assume that one
incoming signal originates from 30 degrees azimuth and 10 degrees
elevation. A second incoming signal originates from 50 degrees azimuth
and 0 degrees elevation. The signals have a power of 1 W and are not
correlated with each other.
ns = 100;
2-357
sensorsig
abs(rt)
abs(r)
ans =
ans =
2-358
sensorsig
Define the noise covariance matrix. The value in the (k, j) position
in the ncov matrix is the covariance between the kth and jth array
elements listed in pos.
ns = 100;
ang = 60;
[x,rt,r] = sensorsig(pos,ns,ang,ncov);
View the theoretical and sample covariance matrices for the received
signal.
rt,r
rt =
r =
2-359
shnidman
2-360
shnidman
Examples Find and compare the required single-pulse SNR for Swerling cases I
and III.
2-361
shnidman
SNR_Sw1(j) = shnidman(Pd,Pfa(j),1,1);
% Swerling case III-Dominant scatterer
SNR_Sw3(j) = shnidman(Pd,Pfa(j),1,3);
end
semilogx(Pfa,SNR_Sw1,'k','linewidth',2);
hold on;
semilogx(Pfa,SNR_Sw3,'b','linewidth',2);
axis([1e-6 1e-3 5 25]);
xlabel('False-Alarm Probability');
ylabel('SNR');
title('Required Single-Pulse SNR for P_d=0.9');
legend('Swerling Case I','Swerling Case III',...
'Location','SouthWest');
2-362
shnidman
2-363
speed2dop
Definitions The following equation defines the Doppler shift in hertz based on the
radial velocity of the source relative to the receiver and the carrier
wavelength:
Vs,r
Δf =
where Vs,r is the radial velocity of the source relative to the receiver in
meters per second and λ is the wavelength in meters.
Examples Calculate the Doppler shift in hertz for a given carrier wavelength and
source speed.
2-364
sph2cartvec
Syntax vr = sph2cartvec(vs,az,el)
az - Azimuth angle
scalar in range [–180,180]
Azimuth angle specified as a scalar in the closed range [–180,180].
Angle units are in degrees. To define the azimuth angle of a point on
a sphere, construct a vector from the origin to the point. The azimuth
angle is the angle in the xy-plane from the positive x-axis to the vector’s
orthogonal projection into the xy-plane. As examples, zero azimuth
angle and zero elevation angle specify a point on the x-axis while an
azimuth angle of 90° and an elevation angle of zero specify a point on
the y-axis.
2-365
sph2cartvec
Example: 45
Data Types
double
el - Elevation angle
scalar in range [–90,90]
Elevation angle specified as a scalar in the closed range [–90,90]. Angle
units are in degrees. To define the elevation of a point on the sphere,
construct a vector from the origin to the point. The elevation angle is
the angle from its orthogonal projection into the xy-plane to the vector
itself. As examples, zero elevation angle defines the equator of the
sphere and ±90° elevation define the north and south poles, respectively.
Example: 30
Data Types
double
vs = [1;0;0];
vr = sph2cartvec(vs,45,45)
vr =
-0.7071
0.7071
2-366
sph2cartvec
2-367
sph2cartvec
êel êR
P êaz
O el
y
az
For any point on the sphere specified by az and el, the basis vectors
are given by:
eˆ az sin(az)i cos(az) j
eˆ el sin(el) cos(az)i sin(el) sin(az) j cos(el)k
eˆ R cos(el) cos(az)i cos(el) sin(az) j sin(el)k .
2-368
sph2cartvec
2-369
spsmooth
2-370
spsmooth
Data Types
double
Set up the array and signals. Then, generate the spatial covariance
matrix for the array from the signals and noise.
N = 10;
d = 0.5;
elementPos = (0:N-1)*d;
angles = [0 -25];
ac = [1 1/5];
scov = ac'*ac;
R = sensorcov(elementPos,angles,db2pow(-5),scov);
Solve for the arrival angles using the original covariance matrix.
Nsig = 2;
doa = rootmusicdoa(R,Nsig)
doa =
2-371
spsmooth
0.3062 48.6810
The solved-for arrival angles are clearly wrong – they do not agree with
the known angles of arrival used to create the covariance matrix.
Next, solve for the arrival angles using the smoothed covariance matrix.
Nsig = 2;
L = 2;
RSM = spsmooth(R,L);
doasm = rootmusicdoa(RSM,Nsig)
doasm =
-25.0000 -0.0000
References
[1] Van Trees, H.L. Optimum Array Processing. New York, NY:
Wiley-Interscience, 2002.
2-372
steervec
Syntax sv = steervec(pos,ang)
2-373
steervec
2-374
steervec
sv =
1.0000 + 0.0000i
0.0887 + 0.9961i
-0.9843 + 0.1767i
-0.2633 - 0.9647i
0.9376 - 0.3478i
References
[1] Van Trees, H.L. Optimum Array Processing. New York, NY:
Wiley-Interscience, 2002.
2-375
stokes
Syntax G = stokes(fv)
stokes(fv)
2-376
stokes
cfv = [2;0];
fv = circpol2pol(cfv);
G=stokes(fv)
G =
4.0000
0
0
4.0000
Poincare Sphere
Display points on the Poincare sphere for a left circularly-polarized field
and a 45 degree linear polarized field.
2-377
stokes
stokes(fv);
G =
1.0000 2.0000
0 0
0 2.0000
1.0000 0
2-378
stokes
The point at the north pole represents the left circularly-polarized field.
The point on the equator represents the 45 degree linear polarized field.
References
[1] Mott, H., Antennas for Radar and Communications, John Wiley &
Sons, 1992.
2-379
stokes
2-380
stretchfreq2rng
Syntax R = stretchfreq2rng(FREQ,SLOPE,REFRNG)
R = stretchfreq2rng(FREQ,SLOPE,REFRNG,V)
Input FREQ
Arguments Frequency offset in hertz, specified as a scalar or vector.
SLOPE
Sweeping slope of the linear FM waveform, in hertz per second,
specified as a nonzero scalar.
REFRNG
Reference range, in meters, specified as a scalar.
V
Propagation speed, in meters per second, specified as a positive scalar.
Output R
Arguments Range in meters. R has the same dimensions as FREQ .
2-381
stretchfreq2rng
r = stretchfreq2rng(2e3,2e9,5000);
2-382
surfacegamma
Syntax G = surfacegamma(TerrainType)
G = surfacegamma(TerrainType,FREQ)
surfacegamma
Input TerrainType
Arguments String that describes type of terrain. Valid values are:
• 'sea state 3'
• 'sea state 5'
• 'woods'
• 'metropolitan'
• 'rugged mountain'
• 'farmland'
• 'wooded hill'
• 'flatland'
FREQ
Operating frequency of radar system in hertz. This value can be a
scalar or vector.
Default: 10e9
2-383
surfacegamma
Output G
Arguments Value of in decibels, for constant clutter model.
Definitions Gamma
A frequently used model for clutter simulation is the constant
gamma model. This model uses a parameter, , to describe clutter
characteristics of different types of terrain. Values of are derived
from measurements.
Examples Determine the value for a wooded area, and then simulate the clutter
return from the area. Assume the radar system uses a single cosine
pattern antenna element and an operating frequency of 300 MHz.
fc = 300e6;
g = surfacegamma('woods',fc);
hclutter = phased.ConstantGammaClutter('Gamma',g,...
'Sensor',phased.CosineAntennaElement,...
'OperatingFrequency',fc);
x = step(hclutter);
r = (0:numel(x)-1) / (2*hclutter.SampleRate) * ...
hclutter.PropagationSpeed;
plot(r,abs(x));
xlabel('Range (m)'); ylabel('Clutter Magnitude (V)');
title('Clutter Return vs. Range');
2-384
surfacegamma
Algorithms The values for the terrain types 'sea state 3', 'sea state 5',
'woods', 'metropolitan', and 'rugged mountain' are from [2].
The values for the terrain types 'farmland', 'wooded hill', and
'flatland' are from [3].
2-385
surfacegamma
f
0 5 log
f0
References [1] Barton, David. “Land Clutter Models for Radar Design and
Analysis,” Proceedings of the IEEE. Vol. 73, Number 2, February, 1985,
pp. 198–204.
[2] Long, Maurice W. Radar Reflectivity of Land and Sea, 3rd Ed.
Boston: Artech House, 2001.
[3] Nathanson, Fred E., J. Patrick Reilly, and Marvin N. Cohen. Radar
Design Principles, 2nd Ed. Mendham, NJ: SciTech Publishing, 1999.
2-386
surfclutterrcs
Tips • You can calculate the clutter-to-noise ratio using the output of this
function as the RCS input argument value in radareqsnr.
Input NRCS
Arguments Normalized radar cross section of clutter patch in units of square
meters/square meters.
R
Range of clutter patch from radar system, in meters.
az
Azimuth beamwidth of radar system corresponding to clutter patch,
in degrees.
el
Elevation beamwidth of radar system corresponding to clutter patch,
in degrees.
2-387
surfclutterrcs
graz
Grazing angle of clutter patch relative to radar system, in degrees.
tau
Pulse width of transmitted signal, in seconds.
c
Propagation speed, in meters per second.
Output RCS
Arguments Radar cross section of clutter patch.
Examples Calculate the RCS of a clutter patch and estimate the clutter-to-noise
ratio at the receiver. Assume that the patch has an NRCS of 1 m2/m2
and is 1000 m 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 µs. The radar is operated at a
wavelength of 1 cm with a peak power of 5 kw.
2-388
systemp
Input NF
Arguments Noise figure in decibels. The noise figure is the ratio of the actual output
noise power in a receiver to the noise power output of an ideal receiver.
REFTEMP
Reference temperature in kelvin, specified as a nonnegative scalar. The
output of an ideal receiver has a white noise power spectral density
that is approximately the Boltzmann constant times the reference
temperature in kelvin.
Default: 290
Output STEMP
Arguments Effective system-noise temperature in kelvin. The effective system-noise
temperature is REFTEMP*10^(NF/10).
stemp = systemp(5,300);
2-389
systemp
2-390
time2range
Syntax r = time2range(t)
r = time2range(t,c)
2-391
time2range
t = 2e-3;
r = time2range(t);
References
[1] Skolnik, M. Introduction to Radar Systems, 3rd Ed. New York:
McGraw-Hill, 2001.
2-392
unigrid
Grid = unigrid(0,0.1,1);
% Note that Grid(1)=0 and Grid(end)=1
Grid = unigrid(0,0.1,1,'[)');
% Grid(1)=0 and Grid(end)=0.9
2-393
uv2azel
u = sin(θ) cos(φ)
v = sin(θ) sin(φ)
In these expressions, φ and θ are the phi and theta angles, respectively.
In terms of azimuth and elevation, the u and v coordinates are
2-394
uv2azel
u = cos(el) sin(az)
v = sin(el)
–1 ≤ u ≤ 1
–1 ≤ v ≤ 1
u 2 + v2 ≤ 1
Conversely, the phi and theta angles can be written in terms of u and v
tan(φ) = v/u
The azimuth and elevation angles can also be written in terms of u and v
sin(el) = v
2-395
uv2azel
2-396
uv2azel
This figure illustrates the azimuth angle and elevation angle for a
vector that appears as a green solid line. The coordinate system is
relative to the center of a uniform linear array, whose elements appear
as blue circles.
2-397
uv2azelpat
u - u coordinates
vector of length P
2-398
uv2azelpat
v - v coordinates
vector of length Q
v coordinates at which pat_uv samples the pattern, specified as a vector
of length Q. Each coordinate is between –1 and 1.
Data Types
double
az - Azimuth angles
[-90:90] (default) | vector of length L
Azimuth angles at which pat_azel samples the pattern, specified as
a vector of length L. Each azimuth angle is in degrees, between –90
and 90. Such azimuth angles are in the hemisphere for which u and v
are defined.
Data Types
double
el - Elevation angles
[-90:90] (default) | vector of length M
Elevation angles at which pat_azel samples the pattern, specified as
a vector of length M. Each elevation angle is in degrees, between –90
and 90.
Data Types
double
2-399
uv2azelpat
az - Azimuth angles
vector of length L
Azimuth angles at which pat_azel samples the pattern, returned as a
vector of length L. Angles are expressed in degrees.
el - Elevation angles
vector of length M
Elevation angles at which pat_azel samples the pattern, returned as a
vector of length M. Angles are expressed in degrees.
u = sin(θ) cos(φ)
v = sin(θ) sin(φ)
In these expressions, φ and θ are the phi and theta angles, respectively.
In terms of azimuth and elevation, the u and v coordinates are
u = cos(el) sin(az)
v = sin(el)
–1 ≤ u ≤ 1
2-400
uv2azelpat
–1 ≤ v ≤ 1
u 2 + v2 ≤ 1
Conversely, the phi and theta angles can be written in terms of u and v
tan(φ) = v/u
The azimuth and elevation angles can also be written in terms of u and v
sin(el) = v
2-401
uv2azelpat
2-402
uv2azelpat
This figure illustrates the azimuth angle and elevation angle for a
vector that appears as a green solid line. The coordinate system is
relative to the center of a uniform linear array, whose elements appear
as blue circles.
Define the pattern in terms of u and v. For values outside the unit
circle, u and v are undefined and the pattern value is 0.
u = -1:0.01:1;
v = -1:0.01:1;
[u_grid,v_grid] = meshgrid(u,v);
2-403
uv2azelpat
pat_azel = uv2azelpat(pat_uv,u,v);
Define the pattern in terms of and . For values outside the unit
circle, and are undefined and the pattern value is 0.
u = -1:0.01:1;
v = -1:0.01:1;
[u_grid,v_grid] = meshgrid(u,v);
pat_uv = sqrt(1 - u_grid.^2 - v_grid.^2);
pat_uv(hypot(u_grid,v_grid) >= 1) = 0;
[pat_azel,az,el] = uv2azelpat(pat_uv,u,v);
H = surf(az,el,pat_azel);
set(H,'LineStyle','none')
xlabel('Azimuth (degrees)');
ylabel('Elevation (degrees)');
zlabel('Pattern');
2-404
uv2azelpat
Define the pattern in terms of and . For values outside the unit
circle, and are undefined and the pattern value is 0.
u = -1:0.01:1;
2-405
uv2azelpat
v = -1:0.01:1;
[u_grid,v_grid] = meshgrid(u,v);
pat_uv = sqrt(1 - u_grid.^2 - v_grid.^2);
pat_uv(hypot(u_grid,v_grid) >= 1) = 0;
Define the set of azimuth and elevation angles at which to sample the
pattern. Then convert the pattern.
az = -90:5:90;
el = -90:5:90;
pat_azel = uv2azelpat(pat_uv,u,v,az,el);
H = surf(az,el,pat_azel);
set(H,'LineStyle','none')
xlabel('Azimuth (degrees)');
ylabel('Elevation (degrees)');
zlabel('Pattern');
2-406
uv2azelpat
2-407
uv2phitheta
u = sin(θ) cos(φ)
v = sin(θ) sin(φ)
In these expressions, φ and θ are the phi and theta angles, respectively.
In terms of azimuth and elevation, the u and v coordinates are
2-408
uv2phitheta
u = cos(el) sin(az)
v = sin(el)
–1 ≤ u ≤ 1
–1 ≤ v ≤ 1
u 2 + v2 ≤ 1
Conversely, the phi and theta angles can be written in terms of u and v
tan(φ) = v/u
The azimuth and elevation angles can also be written in terms of u and v
sin(el) = v
2-409
uv2phitheta
2-410
uv2phithetapat
u - u coordinates
vector of length P
2-411
uv2phithetapat
v - v coordinates
vector of length Q
v coordinates at which pat_uv samples the pattern, specified as a vector
of length Q. Each coordinate is between –1 and 1.
Data Types
double
2-412
uv2phithetapat
u = sin(θ) cos(φ)
v = sin(θ) sin(φ)
In these expressions, φ and θ are the phi and theta angles, respectively.
In terms of azimuth and elevation, the u and v coordinates are
u = cos(el) sin(az)
v = sin(el)
–1 ≤ u ≤ 1
–1 ≤ v ≤ 1
u 2 + v2 ≤ 1
2-413
uv2phithetapat
Conversely, the phi and theta angles can be written in terms of u and v
tan(φ) = v/u
The azimuth and elevation angles can also be written in terms of u and v
sin(el) = v
2-414
uv2phithetapat
Define the pattern in terms of u and v. For values outside the unit
circle, u and v are undefined, and the pattern value is 0.
u = -1:0.01:1;
v = -1:0.01:1;
[u_grid,v_grid] = meshgrid(u,v);
pat_uv = sqrt(1 - u_grid.^2 - v_grid.^2);
pat_uv(hypot(u_grid,v_grid) >= 1) = 0;
[pat_phitheta,phi,theta] = uv2phithetapat(pat_uv,u,v);
Define the pattern in terms of and . For values outside the unit
circle, and are undefined, and the pattern value is 0.
u = -1:0.01:1;
v = -1:0.01:1;
[u_grid,v_grid] = meshgrid(u,v);
2-415
uv2phithetapat
Convert the pattern to space. Store the and angles for use
in plotting.
[pat_phitheta,phi,theta] = uv2phithetapat(pat_uv,u,v);
H = surf(phi,theta,pat_phitheta);
set(H,'LineStyle','none')
xlabel('Phi (degrees)');
ylabel('Theta (degrees)');
zlabel('Pattern');
2-416
uv2phithetapat
Define the pattern in terms of and . For values outside the unit
circle, and are undefined, and the pattern value is 0.
u = -1:0.01:1;
v = -1:0.01:1;
2-417
uv2phithetapat
[u_grid,v_grid] = meshgrid(u,v);
pat_uv = sqrt(1 - u_grid.^2 - v_grid.^2);
pat_uv(hypot(u_grid,v_grid) >= 1) = 0;
Define the set of and angles at which to sample the pattern. Then,
convert the pattern.
phi = 0:5:360;
theta = 0:5:90;
pat_phitheta = uv2phithetapat(pat_uv,u,v,phi,theta);
H = surf(phi,theta,pat_phitheta);
set(H,'LineStyle','none')
xlabel('Phi (degrees)');
ylabel('Theta (degrees)');
zlabel('Pattern');
2-418
uv2phithetapat
2-419
val2ind
Examples Find index for 0.001 in uniform grid with 1 MHz sampling rate.
Fs = 1e6;
Ind = val2ind(0.001,1/Fs);
% Ind is 1001 because the 1st grid element is zero
Fs = 1e3;
% Construct row vector of values
Values =[0.0095 0.0125 0.0225];
% Values not divisible by 1/Fs
% with nonzero remainder
Ind = val2ind(Values,1/Fs);
% Returns Ind =[11 14 24]
2-420