Engee documentation

EngeePhase.RangeDopplerResponse

Range Doppler response.

Library

EngeePhased

Block

Range Doppler Response

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:

  1. Create an EngeePhase.RangeDopplerResponse object and set its properties.

  2. 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 and dopgrid 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 to FFT and the DechirpInput property is set to false. 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 to FFT and the DechirpInput property is set to true. This syntax is most often used with LFM signals, where the reference signal is usually the transmitted signal.

  • [resp,rnggrid,dopgrid] = object(x,coeff) uses coeff as the coefficients of the matched filter. This syntax is available by setting the RangeMethod property to Matched 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) uses prf as the pulse repetition rate. This syntax is available by setting the Pdfsource property to Input 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.

Matched filter

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.

FFT

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:

Auto

The FFT length is equal to the number of lines of the input signal.

Property

The RangeFFTLength property of this object defines the length of the FFT.

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 to false, 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 the step! 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 the step! method. Use Property or Input 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:

Auto

The FFT length is equal to the number of lines of the input signal.

Property

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!.

Frequency

DOP_GRID is the Doppler shift, in Hz.

Speed

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

object(x).

  • If the RangeFFTLength property is set to Auto, M = K is the length of the first dimension of x. Otherwise, M is equal to the value of the RangeFFTLength property.

  • If the DopplerFFTLength property is set to Auto, P = L is the length of the last measurement x. Otherwise, P is equal to the value of the DopplerFFTLength property.

object(x,xref)

M is the coefficient of the length of the first measurement x divided by the value of the DecimationFactor property.

  • If the DopplerFFTLength property is set to Auto, P = L, the length of the last measurement x. Otherwise, P is equal to the value of the DopplerFFTLength property.

object(x,coeff).

M is the number of rows of x.

  • If the DopplerFFTLength property is set to Auto, P = L is the length of the last measurement of x. Otherwise, P is equal to the value of the DopplerFFTLength property.

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.

Methods

Common for all system objects

step!

Starts the system object’s operating algorithm

release!

Permission to change the value of a system object property

reset!

Reset the internal states of the system object

Algorithms

Answer Algorithm

The EngeePhased.RangeDopplerResponse object generates a response as follows:

  1. Processes the input signal in the fast time dimension using either a matched filter or a decode/FFT operation.

  2. 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), where R 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.