Engee documentation

EngeePhased.RangeDopplerResponse

The Doppler range response.

Library

EngeePhased

Block

Range Doppler Response

Description

System object EngeePhased.RangeDopplerResponse simulates a map of the Doppler range of the input signal. Or, equivalently, range data using either a matched filter or an FFT.

The entrance for EngeePhased.RangeDopplerResponse is an array of data. The organization of the data array corresponds to the antenna array object. The first dimension of the array is high-speed samples or ranges of received signals. The second dimension represents several 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 less than three dimensions. Range processing works along the first dimension of the array. Doppler processing works along the last dimension.

The output signal of the system object EngeePhased.RangeDopplerResponse It also represents an array of data with the same number of dimensions as the input. The first dimension contains data processed by range, but its length may differ from the first measurement of the input data. The last measurement contains Doppler processing data. Its length may differ from the last measurement of the input data.

To calculate the long-range Doppler response, follow these steps:

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

  2. Call the object with arguments as if it were a function.

Syntax

Creation

  • object = EngeePhased.RangeDopplerResponse creates a map of the Doppler range of the input signal with the default values of the properties.

    Example:

    response=EngeePhased.RangeDopplerResponse
  • object = EngeePhased.RangeDopplerResponse(Name=Value) creates a map of the Doppler range of the input signal with each specified Name property set to the specified Value. You can specify additional arguments as a name-value pair in any order (Name1=Value1,…​,NameN=ValueN).

    Example:

    response=EngeePhased.RangeDopplerResponse ()

Using

  • [resp,rnggrid,dopgrid] = object(x) calculates the Doppler characteristic of the input range, argument x. This is a complex Doppler characteristic of the range. rnggrid and dopgrid They represent range samples and Doppler samples, respectively, at which the Doppler characteristic of the range is estimated. This syntax is available if the RangeMethod property is set to FFT, and for the DechirpInput property , the value false. This syntax is most often used with FM signals.

  • [resp,rnggrid,dopgrid] = object(x,xref) uses an external reference as a reference signal to decrypt the input signal x. This syntax is available if the RangeMethod property is set to FFT, and for the DechirpInput property , the value true. This syntax is most often used with FM signals, where the reference signal is usually the transmitted signal.

  • [resp,rnggrid,dopgrid] = object(x,coeff) uses coeff as coefficients of the matched filter. This syntax is available if you set the RangeMethod property to Matched filter. This syntax is most often used for pulse signals, where the matched filter is the time inverse of the transmitted signal.

  • [resp,rnggrid,dopgrid] = object(_,prf) uses prf as the pulse repetition rate. This syntax is available if you set the Pdfsource property to Input port. This syntax is most often used for pulse signals, where the matched filter is the time reverse of the transmitted signal.

Features

RangeMethod — range processing 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 typical for pulse signals, when the matched filter is a temporary feedback characteristic of the transmitted signal.

FFT

The algorithm performs range processing by applying an FFT to the input signal. This approach is commonly used with FM and linear FM pulse signals.

By default: Matched filter

Data types: char, string

PropagationSpeed — signal propagation speed

+ physconst(LightSpeed) (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 (default) | positive scalar

Details

Specify the sampling frequency, in hertz, as a positive scalar.

This property can be set with single or double precision.

The default value is 1 MHz.

By default: 1e6

Data types: single, Float64

SweepSlope — The tilt of the FM scan

+ 1e9 (default) | scalar

Details

Specify the slope of the linear FM scan, in Hz/s, as a scalar.

The input data x must correspond to the scans with the specified SweepSlope slope 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 system object EngeePhased.RangeDopplerResponse performed quadrature demodulation (de-chirp) of the input FM signal.

When setting the de-chirp, 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 passed the de-chirp and de-chirp operation is not required.

Dependencies

To enable this property, set the RangeMethod property to FFT.

By default: false

Data types: char, string

RangeFFTLengthSource — the source of the FFT length used in range processing

+ Auto (default) | Property

Details

The source of the FFT length used to process the range is set as "Auto" or "Property". This property determines how the object calculates the length of the FFT used in range processing.

The values of this property are:

Auto

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

Property

Property RangeFFTLength this object determines the length of the FFT.

Dependencies

To enable this property, set the RangeMethod property to FFT.

By default: Auto

Data types: char

RangeFFTLength — the length of the FFT when processing the range

+ 1024 (default) | a positive integer

Details

Specify the length of the FFT in 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 for the RangeFFTLengthSource property , the value Property.

By default: 1024

Data types: Float64, single

RangeWindow — a window for weighing the range

+ 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 permanent lobes adjacent to the main lobe.

Dependencies

To enable this property, set the RangeMethod property to FFT.

By default: None

Data types: char

RangeSidelobeAttenuation — the level of attenuation of the side lobes for processing ranges

+ 30 (default) | positive scalar

Details

Specify the attenuation level of the side lobes of the Kaiser, Chebyshev, or Taylor window when processing ranges as a positive scalar in decibels.

This property can be set with single or double precision.

Dependencies

To enable this property, set the RangeMethod property to FFT, and for the RangeWindow property , the values Kaiser, Chebyshev or Taylor.

By default: 30

Data types: Float64, single

CustomRangeWindow is a user—defined window for range processing

+ @hamming (default) | handle function | array of cells

Details

Specify a user-defined window for processing the range, set as a handle function or an array of cells.

Dependencies

To enable this property, set the RangeMethod property to FFT, and for the RangeWindow property , the value Custom.

  • If CustomRangeWindow is an anonymous function (handle function), then 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 should be a function descriptor. The specified function takes the window length as the first input argument, as well as, if necessary, other additional input arguments. The function then generates the corresponding 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 center of the range grid

+ true (by default) | false

Details
  • If you set the value for the ReferenceRangeCentered property true, the reference range can be set in the center of the range grid.

  • If you set the value for the ReferenceRangeCentered property 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 grid reference ranges

+ 0.0 (default) | a 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, then the reference range is set to the beginning of the range grid.

  • If you set the RangeMethod property to FFT, the range of references is determined by the ReferenceRangeCentered property.

    • If you set the ReferenceRangeCentered property to true, the reference range is set to the center of the range grid. *If the *ReferenceRangeCentered property is set 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 rate source

+ Auto (default) | Property | Input port

Details

The pulse repetition rate source, set as:

  • Auto – you assume that the pulse repetition rate (PRF) is the inverse of the input signal duration of the method step!. Then PRF is equal to the sampling frequency of the signal divided by the number of lines in the input signal.

  • Property– specify the pulse repetition rate using the PRF property.

  • Input port– specify the PRF using the input argument of the method step!. Use values Property or Input port when the pulse repetition rate cannot be determined from the duration of the signal, as is the case with range data.

By default: Auto

Data type: char

PRF is the pulse repetition rate of the input signal

+ 10e3 (default) | positive scalar

Details

The pulse repetition rate of the input signal, set as a positive scalar. PRF must be less than or equal to the sampling frequency divided by the number of input lines in the method. step!.

If the length of the signal is variable, use the maximum possible number of input lines 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 — source of the FFT length during Doppler processing

+ Auto (default) | Property

Details

Specify how the system object determines the length of the FFT during Doppler processing.

The values of this property are:

Auto

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

Property

The DopplerFFTLength 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 type: char

DopplerFFTLength is the length of the FFT for Doppler processing

+ 1024 (default) | a positive integer

Details

The length of the FFT 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 for the DopplerFFTLengthSource property , the value Property.

By default: 1024

Data types: Float64, single

DopplerWindow — Doppler weighing window

+ 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 value for the DopplerWindow property Taylor The generated Taylor window will have four almost permanent side lobes adjacent to the main lobe.

Dependencies

To enable this property, set the RangeMethod property to FFT.

By default: None

Data type: char | string

DopplerSidelobeAttenuation — the level of attenuation of the side lobes for Doppler processing

+ 30 (default) | positive scalar

Details

Specify the attenuation level of the side lobes of the Kaiser, Chebyshev, or Taylor windows during Doppler processing as a positive scalar, in dB.

This property can be set with single or double precision.

Dependencies

To enable this property, set the RangeMethod property to FFT, and for the DopplerWindow property , the value Kaiser, Chebyshev or Taylor.

By default: 30

Data types: Float64, single

CustomDopplerWindow — user-defined window for Doppler processing

+ @hamming (default) | handle function

Details

Specify a user-defined window for Doppler processing using the handle function or an array of cells.

  • If customdopperwindow is a handle function, then the specified function takes the window length as input and generates the corresponding window coefficients.

  • If CustomDopplerWindow is an array of cells, then the first cell should be a function descriptor. The specified function takes the window length as the first input argument, as well as, if necessary, other additional input arguments. The function then generates the corresponding 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 for the DopplerWindow property , the value Custom.

By default: @hamming

Data types: function_handle, ячейка

DopplerOutput — output of the Doppler domain

+ Frequency (by default) | Speed

Details

Specify the output of the Doppler domain as Frequency or Speed.

The output of the Doppler domain is the DOP_GRID argument in 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 — frequency of the carrier signal

+ 3e8 (default) | positive scalar

Details

Specify the carrier frequency, in Hz, as a scalar.

The default value of this property is 300 MHz.

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 — the source of the maximum number of samples

+ Auto (default) | Property

Details

The source of the maximum number of input samples, 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 need to specify the maximum number of samples in the input signal using the MaximumNumInputSamples property. Any input signal that exceeds this value will be truncated.

By default: Auto

Data type: char

MaximumNumInputSamples — maximum number of input samples

+ 100 (default) | a positive integer

Details

The maximum number of samples in the input signal, set as a positive integer. This property limits the size of the input signal. Any input signal that exceeds this value is truncated.

The input signal is the first argument of the method step!. The number of signals is the number of lines in the input signal.

This property can be set with single or double precision.

Dependencies

To enable this property, set the RangeMethod property to Matched filter, and for the MaximumNumInputSamplesSource property , the value Property.

By default: 100

Data types: Float64, single

Arguments

Entrance

x — input data

+ the complex matrix K on L | a complex array of K by N by L

Details

The input data is given as a complex K-by-L matrix or a K-by-N-by-L array, where

  • K is the number of high–speed samples.;

  • N is the number of channels, such as beams or antenna elements. When N is one, only one data channel is present.;

  • L is the number of pulses to be processed by a matched filter and the number of sweeps to process the FFT.

The specific requirements depend on the syntax:

  • In the syntax object(x) each column of x represents an expanded signal from a single frequency sweep. The function assumes that all scans in x are sequential.

  • In the syntax object(x,xref) each column of x represents a signal from a single frequency sweep. The function assumes that all scans in x are sequential and not decrypted.

  • In the syntax object(x,coeff) each column of the x matrix represents a 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, positive and negative slopes alternate. However, the system object EngeePhased.RangeDopplerResponse It is designed for processing consecutive sweeps with the same slope. To apply EngeePhased.RangeDopplerResponse for a triangular scan system, use one of the following approaches:

  • Specify a positive value for the SweepSlope property, and x will correspond only to the upward movement. After getting the Doppler or velocity values, divide them by 2.

  • Specify a negative value for the SweepSlope property. In this case, x will correspond only to the lowering speed. After getting the Doppler or velocity values, divide them by 2.

You can specify this argument with single or double precision.

xref — reference signal

+ column vector

Details

A reference signal defined as a column vector with the same number of rows as x.

You can specify this argument with single or double precision.

coeff — coefficients of the matched filter

+ column vector

Details

The filter coefficients, set as a column vector.

You can specify this argument with single or double precision.

prf — pulse repetition rate
positive scalar

Details

The pulse repetition rate, set as a positive scalar.

prf must be less than or equal to the sampling frequency 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

+ the complex matrix M on P | a complex array of M by N by P

Details

The rangefinder Doppler characteristic x, returned as a complex matrix M by P or an array M by N by P. The values of P and M depend on the syntax. N has the same value as for the input argument x.

Syntax

M and P values

object(x)

  • If the RangeFFTLength property is set to Auto, M = K is the length of the first dimension 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 dimension x. Otherwise, P is equal to the value of the DopplerFFTLength property.

object(x,xref)

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

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

object(x,coeff)

M is the number of rows x.

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

rnggrid — range values

+ A real vector is a column of length M

Details

The range signals on which the Doppler response range is estimated. rnggrid is a column vector of length M.

dopgrid — Doppler indicators

+ A real vector is a column of length P

Details

Doppler samples or velocity samples, on which the range is estimated-the Doppler response. dopgrid is a column vector of length P. Whether dopgrid contains Doppler or velocity samples depends on the DopplerOutput property in H.

Methods

Common to all system objects

step!

Running the system object operation algorithm

release!

Permission to change the value of a system object property

reset!

Resetting the internal states of a system object

Algorithms

The response algorithm

An object EngeePhased.RangeDopplerResponse generates a response as follows:

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

  2. Processes the input signal in pulse measurement using the FFT. The decimation algorithm uses a 30th order FIR filter generated by fir1(30,1/R), where R – the value of the DecimationFactor property.

Data accuracy

This system object supports single and double precision for inputs, properties, and arguments. If the input data x is single precision, then the output data will be single precision. If the input data x has double precision, then the output data will have double precision. The accuracy of the output data does not depend on the accuracy of the properties and other arguments.