TOA Estimator
Libraries:
Phased Array System Toolbox /
Direction of Arrival
Description
The TOA Estimator block Simulink® estimates time-of-arrival (TOA) or time-difference of arrival (TDOA) at multiple devices. The block estimates TOA or TDOA from an active device to multiple passive anchors or from multiple active anchors to a passive device. TOA and TDOA are estimated based on a frequency-domain channel estimation. Using TOA, the block then estimates target position.
Ports
Input
X — Channel estimation matrices
N-by-M complex-valued matrix | N-by-M-by-L
complex-valued array | 1-by-L cell array
Channel estimation matrix, specified as a N-by-M complex-valued matrix, an N-by-M-by-L complex-valued array, or a 1-by-L cell array. Each row of the N-by-M channel estimation matrix represents M samples (e.g., M spatial streams of MIMO communication, M pulses of radar) of a channel estimate on one subband, and each column of the matrix represents a sample of a channel estimate on N uniformly-spaced subbands.
When the channel estimation matrix is N-by-M-by-L array, each page of the array is an N-by-M channel estimation matrix. All channel estimation matrices must have the same size.
When the channel estimation matrices is a1-by-L cell array, each cell contains a frequency-domain channel estimation matrix from one of the L anchors. The size of a channel estimation matrix can vary for different anchors.
Data Types: single
| double
Complex Number Support: Yes
FreqSpacing — Frequency spacings of channel estimates
900000
Frequency spacings of channel estimates, specified as a positive scalar or as a 1-by-L vector of positive values. If FreqSpacing is a scalar, the frequency spacing is the same for all L anchors. If FreqSpacing is a 1-by-L vector, the frequency spacing can be different for different anchors. Units are in Hz.
Example: [10e6 15e6 20e6]
Data Types: single
| double
DelayOffset — Known delay offset
scalar | real-valued 1-by-L vector
Known delay offset between the target and each anchor, specified as a scalar or a real-valued 1-by-L vector. If DelayOffset is a scalar, the delay offset is the same for all signals from or to all L anchors. If DelayOffset is a 1-by-L vector, the delay offset can be different for different anchors. DelayOffset compensates all TOA/TDOA estimation results, Y. Units are in seconds.
Dependencies
To enable this port, select the Enable known delay offset input check box.
Data Types: single
| double
NPow — Gaussian white noise power
scalar | positive real-valued 1-by-L vector
Gaussian white noise power, specified as scalar or positive real-valued
1-by-L vector. If npow
is a scalar, the
noise power is the same for all L anchors. If NPow is
a 1-by-L vector, a different noise power value can be applied to
each of the L anchors. Units are in watts.
Example: 0.4
Dependencies
To enable this port, select the Output variance of TOA/TDOA
estimates check box, and then set the Source of noise
power port to 'Input port'
.
Data Types: single
| double
AnchorPos — Anchor positions
Q-by-L real-valued matrix
Anchor positions, specified as a Q-by-L real-valued matrix representing the position of the L anchors in the Q-dimensional Cartesian space (Q can be 2 or 3). Each column denotes the position of each anchor in the Q-dimensional Cartesian space.
Dependencies
To enable this port, select the Output estimated target position check box.
Data Types: single
| double
Output
Y — TOA and TDOA estimation results
1-by-L real-valued vector | 1-by-(L-1) real-valued vector
Times-of-arrival (TOA) or time-differences of arrival (TDOA) estimation from a target at L anchors, output as a 1-by-L real-valued vector or a 1-by-(L-1) real-valued vector.
If the
TOA/TDOA Measurement
parameter is'TOA'
, Y is a 1-by-L real-valued vector. The signal model of the TOA output at thel
th-anchor can be written asY(l) = min(taul)
, forl = 1,2,...,L
, wheretaul
is the vector of received multipath delays at thel
th anchor.If the
TOA/TDOA Measurement
parameter is set to'TDOA'
, Y is a 1-by-(L-1) real-valued vector. The signal model of the TDOA output at the (l
-1)th anchor can be written asY(l-1) = min(taul)-min(reftau)
,l = 2,3,...,L
, wheretaul
is the vector of received multipath delays at thel
th anchor andreftau
is the vector of received multipath delays at the first anchor.
Units are in seconds.
Data Types: single
| double
Var — Measurement variance
1-by-L vector | 1-by-(L-1) vector
If the
Measurement
is'TOA'
, Var is a 1-by-L vector representing the estimated TOA variance.If the
Measurement
property is'TDOA'
, Var is a 1-by-(L-1) vector representing the estimated TDOA variance.
Units are in seconds-squared. Var is obtained through the Cramer-Rao lower bound (CRLB) of the TOA/TDOA estimator.
Dependencies
To enable this port, select the Output variance of TOA/TDOA
estimates check box, and then set the Source of noise
power port to 'Input port'
.
Data Types: single
| double
TgtPosEst — Target position estimate
real-valued Q-by-1 vector
Estimated target positions, output as a Q-by-1 vector representing the estimated target position obtained from TOA and TDOA measurements. Target positions are obtained using a two-step weighted linear least squares (WLLS) algorithm that approximates a maximum-likelihood estimation algorithm The algorithm can achieve the position estimation CRLB when the TOA and TDOA estimation errors are small. Units are in meters.
Dependencies
To enable this port, select the Output estimated target position check box.
Data Types: single
| double
TgtPosCov — Target position covariance estimates
Q-by-Q real positive semi-definite
symmetric matrix
Target position covariance estimates, output as a Q-by-Q real positive semi-definite symmetric matrix. The matrix represents the estimated target position covariance using TOA/TDOA measurements. The covariance is obtained from the CRLB of the TOA/TDOA position estimate. Units are m2.
Dependencies
To enable this port, select the Output estimated target position check box.
Data Types: single
| double
TOAResp — FFT-based TOA response
P-by-M-by-L
matrix | 1-by-L cell array
FFT-based TOA response, output as:
If the channel estimate X
is an
N-by-M-by-L array,
toaresp
is a
P-by-M-by-L array.
If the channel estimate X
is a 1-by-L cell
array, toaresp
is a 1-by-L cell array,
containing the TOA response for each of the s anchors.
Dependencies
To enable this port, select the Output FFT-based TOA response check box.
Data Types: single
| double
Complex Number Support: Yes
TOAGrid — TOA grid
P-by-L matrix | 1-by-L cell array
Times of arrival grid, output as P-by-L matrix or a 1-by-L cell array. Times of arrival are restricted to this grid.
If the channel estimate
X
is a N-by-M-by-L array,toagrid
is returned as a P-by-L matrix, where P is the number of TOA grid samples.If the channel estimate
X
is a 1-by-L cell array,toagrid
is a 1-by-L cell array, containing the TOA grid for each of the L anchors. Units are in seconds.
Dependencies
To enable this port, select the Output FFT-based TOA response check box.
Data Types: single
Parameters
To edit block parameters interactively, use the Property Inspector. From the Simulink Toolstrip, on the Simulation tab, in the Prepare gallery, select Property Inspector.
Signal propagation speed (m/s) — Signal propagation speed
physconst('LightSpeed')
(default) | real-valued positive scalar
Signal propagation speed, specified as a real-valued positive scalar. The default
value of the speed of light is the value returned by
physconst('LightSpeed')
. Units are in meters per second.
Example: 3e8
Data Types: double
| single
TOA/TDOA measurement — Measurement type
TOA
(default) | TDOA
Measurement type, specified as TOA
or
TDOA
. When TOA
is chosen, TOA
measurements are estimated using TOA spectrum analysis and a TOA positioning algorithm.
When TDOA
is chosen, TDOA measurements are calculated based
on TOA measurements and a TDOA positioning algorithm is used.
Data Types: char
| string
TOA spectrum analysis method — Spectrum analysis method
FFT
(default) | MUSIC
TOA spectrum analysis method, specified as FFT
or
MUSIC
. When FFT
is chosen, an
FFT is used to obtain the TOA spectrum. When MUSIC
is chosen,
a MUSIC super-resolution algorithm is used to obtain the TOA spectrum.
Data Types: char
| string
Enable known delay offset input — Enable input of delay offsets
0 (default) | 1
Select this check box to enable input of known delay offsets or estimated delay offsets between anchors and a target using the DelayOffset input port. When not selected, the DelayOffset input port is disabled and delay offsets are assumed to be zero.
Data Types: Boolean
Output variance of TOA/TDOA estimates — Enable output variance of TOA/TDOA estimates
0 (default) | 1
Select this check box to enable the output of variances of the TOA or TDOA estimates using the Var output port. Unselect this check box to not output the estimated variances. Selecting this check box also enables the Source of noise power and Noise power (W) parameters and the Npow input port.
Data Types: Boolean
Output FFT-based TOA response — Enable output of FFT-based TOA response
0
(default) | 1
Select this check box output and FFT-based TOA response. Unselect this check box to not output the TOA response.
Dependencies
To enable this parameter, set the TOA/TDOA Measurement parameter to TOA and set the TOA spectrum analysis method to FFT.
Data Types: Boolean
Enable forward-backward averaging — Enable forward-backward averaging
0
(default) | 1
Select this check box to enable forward-backward averaging. Forward-backward averaging is used to mitigate rank deficiency in the source covariance matrix used in the MUSIC spectrum analysis estimation method. This is useful when the number of independent samples of the channel estimate is small.
Dependencies
To enable this parameter, set the TOA spectrum analysis
method to MUSIC
.
Data Types: Boolean
Spatial smoothing — Spatial smoothing parameter
0 (default) |
Effective reduction in the number of subbands for TOA estimation due to spatial smoothing, specified as a nonnegative integer. Spatial smoothing can be used to mitigate the rank deficiency issue in the source covariance matrix estimation of the MUSIC spectrum analysis method. This technique is useful when the number of independent samples of channel estimate is small.
If there are N subbands and the value of the Spatial smoothing parameter is K, then (K+1) maximally overlapped bands of N-K subbands are formed. Then, (K+1) covariance matrices are estimated for signals on the (K+1) overlapped bands and these (K+1) covariance matrices are averaged together to produce a spatially smoothed covariance matrix of size (N-K)-by-(N-K). Incrementing K by 1 increases the rank of the spatially smoothed covariance matrix by 1 until the range reaches its maximum. However, the effective number of subbands for TOA estimation is reduced by 1. The minimum value of K is 0 which result in no spatial smoothing. The maximum value of K is N-2, resulting in (N-1) overlapped bands of two subbands.
If Spatial smoothing is a scalar, the spatial smoothing value is the same for all L anchors. If Spatial smoothing is a length-L vector, each spatial smoothing value is applied to one of the L anchors.
Dependencies
To enable this parameter, set the TOA spectrum analysis
method to MUSIC
.
Data Types: single
| double
Output estimated target position — Enable output of estimated target position
0 (default) | 1
Select this check box to enable output of estimated target positions using the TgtPosEst port and the estimated target position covariances using the TgtPosCov port. Selecting this check box also allows input of anchor positions using the AnchorPos port.
Data Types: Boolean
Source of noise power — Source of noise power
Property
(default) | Input port
Specify how the object determines the noise power values used for TOA and TDOA
variance estimation as 'Property'
or 'Input port'
.
When you set Source of noise power parameter to
'Property'
, the Noise power (W) parameter
then represents the noise power of the received data. When you set Source of
noise power to 'Input port'
, then set the noise power
through the input NPow port.
Example: Input port
Dependencies
To enable this parameter, select the Output estimated target position check box.
Data Types: char
| string
Noise power (W) — Gaussian white noise power
positive scalar (default) | 1-by-L real-valued vector of positive values
Gaussian white noise power, specified as a positive scalar or 1-by-L real-valued vector of positive values.
Dependencies
To enable this parameter, select the Output estimated target
position check box and then select Source of noise
power as Property
.
Data Types: single
| double
Simulate using — Block simulation method
Interpreted Execution
(default) | Code Generation
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 Simulation | Simulation Behavior | ||
Normal | Accelerator | Rapid Accelerator | |
Interpreted Execution | The block executes using the MATLAB interpreter. | The block executes using the MATLAB interpreter. | Creates a standalone executable from the model. |
Code Generation | The 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 |
Extended Capabilities
C/C++ Code Generation
Generate C and C++ code using Simulink® Coder™.
Version History
Introduced in R2024a
See Also
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)