Main Content

TDOA Estimator

Estimate time-difference of arrival

Since R2024b

  • Block icon

Libraries:
Phased Array System Toolbox / Direction of Arrival

Description

Estimate TDOA of signals from active devices to multiple passive anchors. The TDOA's are estimated based on time-domain received signals at different anchors.

Ports

Input

expand all

Received signal matrices, specified as an N-by-M-by-L complex-valued array. L represents the number of anchors. Each page represents an N-by-M complex-valued matrix for one anchor. The first page corresponds to the reference anchor. The rows of each signal matrix represent M independent pulses (such as slow-time samples of a radar) and each column represents N fast-time samples of a pulse.

Data Types: single | double
Complex Number Support: Yes

Delay offset, specified as a scalar or as a 1-by-L real-valued vector where L is the number of anchors. The TDOA estimation result Y is adjusted by delayoffset. The offset is the known delay offset between the clock at each anchor and the reference clock for the first anchor. If DelayOffset is a scalar, the delay offset is the same for all L anchors. If DelayOffset is a 1-by-L vector, the delay offset can be different for different anchors. Units are in seconds.

Dependencies

To enable the DelayOffset input port, select the Enable known delay offset input check box.

Data Types: single | double

Input noise power, specified as a positive scalar or a 1-by-L vector with positive values. Npow represents the white Gaussian noise power at each anchor. If Npow is a scalar, the noise power is the same for all L anchors. If Npow is a 1-by-L vector, the same noise power value is applied to each of the L anchors. Units are in Watts.

This argument lets you calculate the optional output argument var using the input argument Npow,

Example: 50

Dependencies

To enable this argument, set the Source of noise power parameter to 'Input port'.

Data Types: single | double

Output

expand all

TDOA estimates, returned as a K-by-(L–1) real-valued matrix. K is the maximum number of targets specified by the NumEstimates property. L is the number of anchors producing (L–1) anchor pairs. The lth column of Y represents the TDOA estimates for the lth anchor pair which is the time difference between (l+1)-th anchor and the first anchor.

The TDOA for an anchor pair is estimated by detecting the locations of up to K peaks from the GCC-PHAT TDOA spectrum. If the number of detected peaks for the lth anchor pair is less than K, the first entries of the lth column of Y contain the valid TDOA estimates, and the remaining entries in the lth column of Y are filled with NaN. Units are in seconds.

Data Types: single | double

Estimated TDOA variance, returned as a 1-by-(L-1) positive-valued vector. var is obtained from the Cramer-Rao lower bound (CRLB) of estimating TDOA based on the input X and the white Gaussian noise power, assuming there are K targets equally splitting received signal power. The noise power can be specified either by the NoisePower property or using the npow input argument.. Units are seconds-squared.

Dependencies

To enable this port, select the Output variance of TDOA estimates check box.

Data Types: single | double

Parameters

expand all

To edit block parameters interactively, use the Property Inspector. From the Simulink® Toolstrip, on the Simulation tab, in the Prepare gallery, select Property Inspector.

Select this parameter to inherit the sample rate from upstream blocks. Otherwise, specify the sample rate using the Sample rate (Hz) parameter.

Data Types: Boolean

Signal sample rate, specified as a real-valued positive scalar.

Dependencies

To enable this parameter, deselect the Inherit sample rate check box.

Data Types: Boolean

Maximum number of TDOA estimates, specified as a positive integer.

Example: 100

Data Types: single | double

Select the Enable known delay offset input check box to enable the DelayOffset input port.

Data Types: Boolean

Select the Output variance of TDOA Estimates check box to enable the Var output port containing the TDOA variances.

Data Types: Boolean

Source of noise power, specified as Property or Input port.

Noise power, specified as a positive scalar. Units are Watts.

Dependencies

To enable this parameter, set the Source of noise power to Property.

Data Types: double | single

Block simulation, specified as Interpreted Execution or Code Generation. If you want your block to use the MATLAB® interpreter, choose Interpreted Execution. If you want your block to run as compiled code, choose Code Generation. Compiled code requires time to compile but usually runs faster.

Interpreted execution is useful when you are developing and tuning a model. The block runs the underlying System object™ in MATLAB. You can change and execute your model quickly. When you are satisfied with your results, you can then run the block using Code Generation. Long simulations run faster with generated code than in interpreted execution. You can run repeated executions without recompiling, but if you change any block parameters, then the block automatically recompiles before execution.

This table shows how the Simulate using parameter affects the overall simulation behavior.

When the Simulink model is in Accelerator mode, the block mode specified using Simulate using overrides the simulation mode.

Acceleration Modes

Block SimulationSimulation Behavior
NormalAcceleratorRapid Accelerator
Interpreted ExecutionThe block executes using the MATLAB interpreter.The block executes using the MATLAB interpreter.Creates a standalone executable from the model.
Code GenerationThe block is compiled.All blocks in the model are compiled.

For more information, see Choosing a Simulation Mode (Simulink).

Programmatic Use

Block Parameter:SimulateUsing
Type:enum
Values:Interpreted Execution, Code Generation
Default:Interpreted Execution

Version History

Introduced in R2024b