EngeePhase.RangeDopplerResponse
Range Doppler response.
Library |
EngeePhased |
Block |
Description
The EngeePhase.RangeDopplerResponse system object models the Doppler range map of the input signal. Or, equivalently, the range data using either a matched filter or an FFT.
The input to EngeePhase.RangeDopplerResponse is an array of data. The organisation of the data array follows the Phased Array System Toolbox standard. The first dimension of the array represents fast samples or ranges of received signals. The second dimension represents multiple channels such as antenna elements or beams. The third dimension, slow time, represents pulses. If the data contains only one channel or pulse, the data array may contain fewer than three dimensions. Range processing operates along the first dimension of the array. Doppler processing runs along the last dimension.
The output of the EngeePhase.RangeDopplerResponse system object is also a data array with the same number of dimensions as the input. The first dimension contains range processed data, but its length may be different from the first dimension of the input data. The last dimension contains Doppler-processed data. Its length may be different from the last measurement of the input data.
To calculate the range-Doppler response, follow the steps below:
-
Create an EngeePhase.RangeDopplerResponse object and set its properties.
-
Call the object with arguments as if it were a function.
Syntax
Creation
-
object = EngeePhase.RangeDopplerResponse
creates a Doppler range map of the input signal with by default property values. Example:response=EngeePhase.RangeDopplerResponse
-
object = EngeePhase.RangeDopplerResponse(Name=Value)
creates a Doppler range map of the input signal with each specified property Name (name) set to the specified Value (value). You can specify additional arguments as a name-value pair in any order (Name1
=Value1
,…,NameN
=ValueN
). Example:response=EngeePhase.RangeDopplerResponse ()
Using.
-
[resp,rnggrid,dopgrid] = object(x)
calculates the Doppler range characteristic of the input signal, argument x. This is the complex Doppler response of the range.rnggrid
anddopgrid
provide the range samples and Doppler samples, respectively, at which the Doppler response of the range is evaluated. This syntax is available when the RangeMethod property is set toFFT
and the DechirpInput property is set tofalse
. This syntax is most often used with LFM signals. -
[resp,rnggrid,dopgrid] = object(x,xref)
uses an external reference as a reference signal to decode the x input signal. This syntax is available if the RangeMethod property is set toFFT
and the DechirpInput property is set totrue
. This syntax is most often used with LFM signals, where the reference signal is usually the transmitted signal. -
[resp,rnggrid,dopgrid] = object(x,coeff)
usescoeff
as the coefficients of the matched filter. This syntax is available by setting the RangeMethod property toMatched filter
. This syntax is most often used for pulsed signals where the matched filter is the inverse of the time of the transmitted signal. -
[resp,rnggrid,dopgrid] = object(_,prf)
usesprf
as the pulse repetition rate. This syntax is available by setting the Pdfsource property toInput port
. This syntax is most often used for pulse signals where the matched filter is the inverse in time of the transmitted signal.
Properties
RangeMethod -.
range method
Matched filter (by default)
| FFT
Details
Specify the range processing method as Matched filter
or FFT
.
|
The algorithm applies a matched filter to the incoming signal. This approach is characteristic of pulsed signals where the matched filter is the temporal inverse of the transmitted signal. |
|
The algorithm performs range processing by applying an FFT to the input signal. This approach is typically used with LFM and linear FM pulse signals. |
By default: Matched filter
.
Data types: char
| string
PropagationSpeed
propagation speed
physconst(LightSpeed) (by default)
| a real positive scalar
Details
Specify the propagation velocity, in m/s, as a positive scalar.
You can specify this property with single or double precision.
By default: physconst(LightSpeed)
.
Data types: single
| Float64
SampleRate -
sampling rate
1e6 (by default)
| positive scalar
Details
Specify the sampling rate, in hertz, as a positive scalar.
This property can be specified with single or double precision.
The value by default corresponds to 1 MHz.
By default: 1e6
.
Data types: `single
| Float64
SweepSlope
FM sweep slope
1e9 (by default)
| scalar
Details
Specify the slope of the linear FM sweep, in Hz/s, as a scalar.
The input signal data x must correspond to sweeps with the slope specified by the SweepSlope property.
This property can be set with single or double precision.
Dependencies
To enable this property, set the RangeMethod property to FFT
.
By default: 1e9
.
Data types: `single
| Float64
DechirpInput -
quadrature demodulation of the input signal
false (by default)
| true
Details
Set the DechirpInput property to true
so that the EngeePhase.RangeDopplerResponse system object performs quadrature demodulation (de-chirp) of the input LFM signal.
When de-chirp is specified, the reference LFM signal is multiplied with the complex-conjugate LFM signal.
Set the DechirpInput property to false
to indicate that the input signal has already undergone the de-chirp operation and de-chirp is not required.
Dependencies
To enable this property, set the RangeMethod property to FFT
.
By default: false
.
Data types: char
| string
RangeFFTLengthSource -.
source of FFT length used in range processing
Auto (By default)
| Property
.
Details
The source of the FFT length used for range processing is specified as Auto
or Property
. This property determines how the object calculates the FFT length used for range processing.
The values of this property are:
|
The FFT length is equal to the number of lines of the input signal. |
|
The |
Dependencies
To enable this property, set the RangeMethod property to FFT
.
By default: Auto
.
Data types: char
RangeFFTLength -
FFT length during range processing
1024 (by default)
| `positive integer `
Details
Specify the FFT length of the range area as a positive integer.
This property can be set as single or double precision.
Dependencies
To enable this property, set the RangeMethod property to FFT
and the RangeFFTLengthSource property to Property
.
By default: 1024
.
Data types: Float64
| single
RangeWindow -
range weighting window
None (By default)
| Hamming
| Chebyshev
| Hann
| Kaiser
| Taylor
| Custom
Details
Specify the window used to process the range using one of the values None
, Hamming
, Chebyshev
, Hann
, Kaiser
, Taylor
or Custom
.
If you set the RangeWindow property to Taylor
, the generated Taylor window will have four almost constant petals adjacent to the main petal.
Dependencies
To enable this property, set the RangeMethod property to FFT
.
By default: None
.
Data types: char
RangeSidelobeAttenuation -.
side lobe attenuation level for range processing
30 (By default)
| positive scalar
Details
Specify the level of attenuation of the side lobes of the Kaiser, Chebyshev or Taylor window when processing ranges as a positive scalar in decibels.
This property can be specified with single or double precision.
Dependencies
To enable this property, set the RangeMethod property to FFT
and the RangeWindow property to Kaiser
, Chebyshev
or Taylor
.
By default: 30
.
Data types: Float64
| single
CustomRangeWindow -.
user-defined window for range processing
@hamming (by default)
| handle function
| array of cells
Details
Specify a user-defined window for range handling, specified as a handle function or a cell array.
Dependencies
To enable this property, set the RangeMethod property to FFT
and the RangeWindow property to Custom
.
-
If CustomRangeWindow is an anonymous function (handle function), the specified function takes the window length as input and generates the corresponding window coefficients.
-
If CustomRangeWindow is an array of cells, then the first cell must be a function handle. The specified function takes the length of the window as the first input argument, and other additional input arguments if necessary. The function then generates the appropriate window coefficients. The remaining entries in the cell array are additional input arguments to the function, if any.
-
By default:*
@hamming
.
Data types: function_handle
ReferenceRangeCentered -.
reference range in the centre of the range grid
true (by default)
| false
Details
-
If you set the ReferenceRangeCentered property to
true
, the reference range can be set in the centre of the range grid. -
If you set the ReferenceRangeCentered property to
false
, the reference range is set to the beginning of the range grid.
Dependencies
To enable this property, set the RangeMethod property to FFT
.
By default: true
.
Data types: logical
.
ReferenceRange -
range of range grid references
0.0 (by default)
| non-negative scalar
Details
The reference range of the range grid, specified as a non-negative scalar.
-
If you set the RangeMethod property to
Matched filter
, the reference range is set to the beginning of the range grid. -
If you set the RangeMethod property to
FFT
, the reference range is defined by the ReferenceRangeCentered property.-
If you set the ReferenceRangeCentered property to
true
, the reference range is set to the centre of the range grid. *If you set the *ReferenceRangeCentered property tofalse
, the reference range is set to the beginning of the range grid.
-
The units of measurement are m.
*Example: 1000.0
.
By default: 0.0
Data types: Float64
| single
PRFSource -
pulse repetition frequency source
Auto (by default)
| Property
| Input port
Details
Pulse repetition rate source specified as:
-
Auto
- you assume that the pulse repetition frequency (PRF) is the inverse of the input signal duration of thestep!
method. Then PRF is equal to the sampling rate of the signal divided by the number of lines in the input signal. -
Property
- Specify the pulse repetition frequency using the PRF property. -
Input port
- specify the PRF using the input argument of thestep!
method. UseProperty
orInput port
values when the pulse repetition rate cannot be determined from the signal duration, as in the case of range data.
By default: Auto
.
-
Data type:*
char
.
PRF -
input signal pulse repetition rate
10e3 (by default)
| positive scalar
Details
The input signal pulse repetition rate specified as a positive scalar. PRF must be less than or equal to the sampling rate divided by the number of lines of the input signal in the step!
method.
If the signal length is variable, use the maximum possible number of lines of the input signal instead.
This property can be set with single or double precision.
Dependencies
To enable this property, set the PRFSource property to Property
.
By default: 10e3
.
Data types: Float64
| single
DopplerFFTLengthSource -.
Doppler FFT length source
Auto (By default)
| Property
.
Details
Specify how the system object determines the FFT length for Doppler processing.
The values of this property are:
|
The FFT length is equal to the number of lines of the input signal. |
|
The DopplerFFTLength property of this object determines the FFT length. |
Dependencies
To enable this property, set the RangeMethod property to FFT
.
By default: Auto
.
-
Data type:*
char
DopplerFFTLength -.
FFT length for Doppler processing
1024 (by default)
| `positive integer `
Details
The FFT length for Doppler processing is set as a positive integer.
This property can be set with single or double precision.
Dependencies
To enable this property, set the RangeMethod property to FFT
and the DopplerFFTLengthSource property to Property
.
By default: 1024
.
Data types: Float64
| single
DopplerWindow -
window for Doppler weighing
None (By default)
| Hamming
| Chebyshev
| Hann
| Kaiser
| Taylor
| Custom
Details
Specify the window used for Doppler processing as None
, Hamming
, Chebyshev
, Hann
, Kaiser
, Taylor
or Custom
.
If you set the DopplerWindow property to Taylor
, the generated Taylor window will have four nearly constant side petals adjacent to the main petal.
Dependencies
To enable this property, set the RangeMethod property to FFT
.
By default: None
.
-
Data type:*
char
|string
DopplerSidelobeAttenuation -.
side lobe attenuation level for Doppler processing
30 (By default)
| positive scalar
Details
Specify the attenuation level of the side lobes of the Kaiser, Chebyshev or Taylor window for Doppler processing as a positive scalar, in dB.
This property can be specified with single or double precision.
Dependencies
To enable this property, set the RangeMethod property to FFT
and the DopplerWindow property to Kaiser
, Chebyshev
or Taylor
.
By default: 30
.
Data types: Float64
| single
CustomDopplerWindow -.
user-defined window for Doppler processing
@hamming (by default)
| handle function
Details
Specify a user-defined window for Doppler processing using a handle function or a cell array.
-
If CustomDopplerWindow is a handle function, the specified function takes the window length as input and generates the appropriate window coefficients.
-
If CustomDopplerWindow is an array of cells, the first cell must be a function handle. The specified function takes the length of the window as the first input argument, and other additional input arguments if necessary. The function then generates the appropriate window coefficients. The remaining entries in the cell array are additional input arguments to the function, if any.
Dependencies
To enable this property, set the RangeMethod property to FFT
and the DopplerWindow property to Custom
.
By default: @hamming
.
Data types: function_handle
| cell
DopplerOutput — Doppler domain output
Frequency (By default)
| Speed
Details
Specify the Doppler domain output as Frequency
or Speed
.
The Doppler domain output is the DOP_GRID argument to step!
.
|
DOP_GRID is the Doppler shift, in Hz. |
|
DOP_GRID is the radial velocity corresponding to the Doppler shift, in m/s. |
-
By default:*
Frequency
.
Data type: char
| string
OperatingFrequency -
carrier frequency
3e8 (by default)
| positive scalar
Details
Specify the carrier frequency, in Hz, as a scalar.
The value of this property corresponds to 300 MHz by default.
This property can be set with single or double precision.
Dependencies
To enable this property, set the DopplerOutput property to Speed
.
By default: 3e8
.
Data types: Float64
| single
MaximumNumInputSamplesSource — source of maximum number of samples
Auto (By default)
| Property
| Property
Details
The source of the maximum number of samples of the input signal specified as Auto
or Property
.
-
If you set the MaximumNumInputSamplesSource property to
Auto
, the object automatically allocates enough memory to buffer the first input signal. -
If you set the MaximumNumInputSamplesSource property to
Property
, you must specify the maximum number of samples in the input signal using the MaximumNumInputSamples property. Any input signal whose length exceeds this value will be truncated.
By default: Auto
.
-
Data type:*
char
MaximumNumInputSamples -.
maximum number of input samples
100 (by default)
| positive integer
Details
The maximum number of samples in the input signal, specified as a positive integer. This property limits the size of the input signal. Any input signal whose length exceeds this value is truncated.
The input signal is the first argument of the step!
method. The number of signals is the number of lines in the input signal.
This property can be specified with single or double precision.
Dependencies
To enable this property, set the RangeMethod property to Matched filter
and the MaximumNumInputSamplesSource property to Property
.
-
By default:*
100
.
Data types: Float64
| single
Arguments
Input
x -
input data
complex matrix K on L
| complex array K on N on L
Details
Input data given as a K by L complex matrix or a K by N by L array, where
-
K is the number of fast samples;
-
N is the number of channels, such as beams or antenna elements. When N is equal to one, only one data channel is present;
-
L is the number of pulses to be processed by the matched filter and the number of sweeps to be processed by the FFT.
The specific requirements depend on the syntax:
-
In
object(x)
syntax, each column of x represents a de-sampled signal from a single frequency sweep. The function assumes that all sweeps in x are consecutive. -
In
object(x,xref)
syntax, each column of x represents a signal from a single frequency sweep. The function assumes that all sweeps in x are consecutive and undecoded. -
In
object(x,coeff)
syntax, each column of the matrix x represents the signal from a single pulse. The function assumes that all pulses in x are sequential.
In the case of an LFM wave with a triangular sweep, the sweep alternates between positive and negative slopes. However, the EngeePhased.RangeDopplerResponse system object is designed to handle consecutive sweeps with the same slope. To apply EngeePhased.RangeDopplerResponse to a system with a triangular sweep, use one of the following approaches:
-
Specify a positive value for the SweepSlope property, with x corresponding to upward motion only. After obtaining the Doppler or velocity values, divide them by 2.
-
Specify a negative value for the SweepSlope property, with x corresponding to downward motion only. After obtaining the Doppler or velocity values, divide them by 2.
You can specify this argument with single or double precision.
xref -
reference signal
`vector column
Details
A reference signal given as a column vector with the same number of rows as x.
You can specify this argument with single or double precision.
coeff -
matched filter coefficients
`vector-column
Details
Filter coefficients given as a column vector.
You can specify this argument with single or double precision.
prf -
pulse repetition rate
`positive scalar
Details
Pulse repetition rate specified as a positive scalar.
prf must be less than or equal to the sampling rate specified in the SampleRate property divided by the length of the first measurement of the input signal, x. You can specify this argument with single or double precision.
Dependencies
To enable this argument, set the PRFSource property to Input port
.
Output
resp -
range-Doppler response
complex matrix M on P
| complex array M on N on P
Details
The range-Doppler response x, returned as a complex matrix M on P or an array M by N on P. The values of P and M are syntax dependent. N has the same value as for the input argument x.
Syntax |
Values of M and P |
|
|
|
M is the coefficient of the length of the first measurement x divided by the value of the DecimationFactor property.
|
|
M is the number of rows of x.
|
rnggrid -
range values
real vector-column of length M
Details
Range signals on which the range of the Doppler response is estimated. rnggrid - vector-column of length M.
dopgrid
Doppler readings
`real vector-column of length P'
Details
Doppler or velocity samples on which the range-Doppler response is estimated. dopgrid is a column vector of length P. Whether dopgrid contains Doppler or velocity samples depends on the DopplerOutput property in H.
Algorithms
Answer Algorithm
The EngeePhased.RangeDopplerResponse object generates a response as follows:
-
Processes the input signal in the fast time dimension using either a matched filter or a decode/FFT operation.
-
Processes the input signal in the pulse measurement using an FFT. The decimation algorithm uses a 30th order FIR filter generated by
fir1(30,1/R)
, whereR
is the value of the DecimationFactor property.
*Data Accuracy.
This system object supports single and double precision for input data, properties and arguments. If the input data x has single precision, then the output data will also have single precision. If the input data x has double precision, the output data will have double precision. The accuracy of the output data is independent of the accuracy of the properties and other arguments.