Hauptinhalt

tsoaposest

Estimate target positions using time-sum-of-arrival (TSOA) measurements

Since R2025a

Description

Estimate target positions from TSOA measurements combined with anchor positions.

tgtposest = tsoaposest(tsoaest,tsoavar,txpos,rxpos) estimates the position of targets, tgtposest, from time-sum-of-arrival (TSOA) measurements taken at multiple transmit anchor and receive anchor pairs with known positions. Depending on the application scenario, anchors can be cellular base stations, wireless network access points, satellites, ground radar stations, etc., and a target is a scatterer that scatters transmit anchors' signals to receive anchors.

example

tgtposest = tsoaposest(tsoaest,tsoavar,txpos,rxpos,PropagationSpeed=C) also specifies the signal propagation speed C as a positive scalar. If this syntax is not used, the default value of the signal propagation speed is given by physconst("LightSpeed").

[tgtposest,tgtposcov] = tsoaposest(tsoaest,tsoavar,txpos,rxpos) also returns the estimated target position covariance, tgtposcov.

Examples

collapse all

A distributed MIMO radar system with two transmit anchors and five receive anchors measures the TSOA from each transmit-receive anchor pairs. Then, the radar system applies the two-step WLLS algorithm using the TSOA estimates and anchor positions. The data is loaded from TSOAEstimatorExampleData, whose variables are listed here:

Parameter

Description

Size

tsoaest

TSOA estimates

2-by-5

tsoavar

TSOA estimate variance

2-by-5

txpos

Transmit anchor positions

3-by-2

rxpos

Receive anchor positions

3-by-5

tgtpos

True target position

3-by-1

First, load data from mat-file.

load TSOAEstimatorExampleData

Draw the positions of the transmitters and receivers.

plot3(txpos(1,:),txpos(2,:),txpos(3,:),'.')
a = 50;
axis([-a a -a a -a a])
hold on
plot3(rxpos(1,:),rxpos(2,:),rxpos(3,:),'m.')
plot3(tgtpos(1,:),tgtpos(2,:),tgtpos(3,:),'go')

Estimate and plot the target position.

[tgtposest,tgtposcov] = tsoaposest(tsoaest,tsoavar,txpos,rxpos);
plot3(tgtposest(1,:),tgtposest(2,:),tgtposest(3,:),'.k')
legend('Transmitters','Receivers','Target','Estimated Target')

Figure contains an axes object. The axes object contains 4 objects of type line. One or more of the lines displays its values using only markers These objects represent Transmitters, Receivers, Target, Estimated Target.

RMSE of target position estimate.

rmsepos = rmse(tgtposest,tgtpos);
disp(['RMS TSOA positioning error = ',num2str(rmsepos),' meters.'])
RMS TSOA positioning error = 0.1131 meters.

Input Arguments

collapse all

Time-sum of arrival estimates, specified as a real-valued J-by-L-by-K MATLAB® array, where J is the number of transmitting anchors, L is the number of receiving anchors, and K is the number of TSOA groups. Each array page represents a TSOA group corresponding to the TSOAs measured at the JL anchor pairs for a potential target. In each page, the element in the jth row and lth column of tsoaest represents the estimated TSOA from the jth transmit anchor to the lth receive anchor. Units are in seconds.

Data Types: single | double

TSOA estimation variance, specified as a real-valued J-by-L matrix or real-valued J-by-L-by-K array. When tsoavar is a matrix, the variance estimates for JL anchor pairs are the same for all K TSOA groups. When tsoavar is an array, the variance estimates for JL anchor pairs are different for different TSOA groups. When the actual values of tsoavar are unknown, tsoavar is typically chosen to be a matrix with each element chosen to be the same real positive value. This value does not affect the solution tgtposest. Units are in seconds-squared.

Data Types: single | double

Transmitting anchor positions, specified as a real-valued Q-by-J matrix. You can specify anchor positions in two or three dimensional space. J is the number of transmitting anchors. For two dimensional positions, Q=2, and for three dimensional positions, Q=3. Each column represents the position of a different anchor. The jth column of txpos denotes the position of the jth transmitter in Q-dimensional Cartesian space. Units are in meters.

Example: [20 31 –16; 13 64 –44]

Data Types: single | double

Receiving anchor positions, specified as a real-valued Q-by-L matrix. You can specify anchor positions in two or three dimensional space. L is the number of receiving anchors. For two dimensional positions, Q=2, and for three dimensional positions, Q=3. Each column represents the position of a different anchor. The lth column of rxpos denotes the position of the lth receiver in Q-dimensional Cartesian space. Units are in meters.

Example: [20 31 –16; 13 64 –44]

Data Types: single | double

Signal propagation speed, specified as a positive scalar. Units are in meters/second.

Example: 3e8

Data Types: single | double

Output Arguments

collapse all

Estimated target position, returned as a real-valued Q-by-K matrix. tgtposest represents the estimated target positions for K targets. Units are in meters.

Data Types: single | double

Estimated target position covariance, returned as a Q-by-Q-by-K array, where each page is a real-valued positive semi-definite symmetric matrix. The function calculates the covariance matrix from the CRLB of the TSOA position estimator. The calculation requires the knowledge of the TSOA estimation variance, tsoavar. Units are in meters-squared.

Data Types: single | double

More About

collapse all

References

[1] Reza Zekavat and R. Michael Buehrer, Handbook of Position Location: Theory, Practice, and Advances, 2019

[2] A. Noroozi, M. A. Sebt, S. M. Hosseini, R. Amiri and M. M. Nayebi, "Closed-Form Solution for Elliptic Localization in Distributed MIMO Radar Systems With Minimum Number of Sensors," in IEEE Transactions on Aerospace and Electronic Systems, vol. 56, no. 4, pp. 3123-3133, Aug. 2020.

[3] M. Malanowski and K. Kulpa, "Two Methods for Target Localization in Multistatic Passive Radar," in IEEE Transactions on Aerospace and Electronic Systems, vol. 48, no. 1, pp. 572-580, Jan. 2012.

[4] P. Stoica and J. Li, "Lecture Notes - Source Localization from Range-Difference Measurements," in IEEE Signal Processing Magazine, vol. 23, no. 6, pp. 63-66, Nov. 2006.

Version History

Introduced in R2025a