This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

phased.GCCEstimator System object

Wideband direction of arrival estimation


The phased.GCCEstimator System object™ creates a direction of arrival estimator for wideband signals. This System object estimates the direction of arrival or time of arrival among sensor array elements using the generalized cross-correlation with phase transform algorithm (GCC-PHAT). The algorithm assumes that all signals propagate from a single source lying in the array far field so the direction of arrival is the same for all sensors. The System object first estimates the correlations between all specified sensor pairs using GCC-PHAT and then finds the largest peak in each correlation. The peak identifies the delay between the signals arriving at each sensor pair. Finally, aleast-squares estimate is used to derive the direction of arrival from all estimated delays.

To compute the direction of arrival for pairs of element in the array:

  1. Define and set up a GCC-PHAT estimator System object, phased.GCCEstimator, using the Construction procedure.

  2. Call step to compute the direction of arrival of a signal using the properties of the phased.GCCEstimator System object.

    The behavior of step is specific to each object in the toolbox.


Starting in R2016b, instead of using the step method to perform the operation defined by the System object, you can call the object with arguments, as if it were a function. For example, y = step(obj,x) and y = obj(x) perform equivalent operations.


sGCC = phased.GCCEstimator creates a GCC direction of arrival estimator System object, sGCC. This object estimates the direction of arrival or time of arrival between sensor array elements using the GCC-PHAT algorithm.

sGCC = phased.GCCEstimator(Name,Value) returns a GCC direction of arrival estimator object, sGCC, with the specified property Name set to the specified Value. Name must appear inside single quotes (''). You can specify several name-value pair arguments in any order as Name1,Value1,...,NameN,ValueN.


expand all

Sensor array, specified as a Phased Array System Toolbox System object. The array can also consist of subarrays. If you do not specify this property, the default sensor array is a phased.ULA System object with default array property values.

Example: phased.URA

Signal propagation speed, specified as a positive real-valued scalar. Units are in meters per second.

Example: physconst('LightSpeed')

Data Types: double

Sample rate, specified as a positive real-valued scalar. Units are in hertz.

Example: 1e6

Data Types: double

Source of sensor pairs, specified as either 'Auto' or 'Property'.

  • 'Auto' — choose this property value to compute correlations between the first sensor and all other sensors. The first sensor of the array is the reference channel.

  • 'Property' — choose this property value when you want to explicitly specify the sensor pairs to be used for computing correlations. Set the sensor pair indices using the SensorPair property. You can view the array indices using the viewArray method of any array System object.

Example: 'Auto'

Data Types: char

Sensor pairs used to compute correlations, specified as a 2-by-N positive integer-valued matrix. Each column of the matrix specifies a pair of sensors between which the correlation is computed. The second row specifies the reference sensors. Each entry in the matrix must be less than the number of array sensors or subarrays. To use the SensorPair property, you must also set the SensorPairSource value to 'Property'.

Example: [1,3,5;2,4,6]

Data Types: double

Option to enable output of time delay values, specified as a Boolean. Set this property to true to output the delay values as an output argument of the step method. The delays correspond to the arrival angles of a signal between sensor pairs. Set this property to false to disable the output of delays.

Example: false

Data Types: logical

Option to enable output of correlation values, specified as a Boolean. Set this property to true to output the correlations and lags between sensor pairs as output arguments of the step method. Set this property to false to disable output of correlations.

Example: false

Data Types: logical


resetReset states of phased.GCCEstimator System object
stepEstimate direction of arrival using generalized cross-correlation
Common to All System Objects

Create System object with same property values


Expected number of inputs to a System object


Expected number of outputs of a System object


Check locked states of a System object (logical)


Allow System object property value changes


expand all

Estimate the direction of arrival of a signal using the GCC-PHAT algorithm. The receiving array is a 5-by-5-element URA microphone array with elements spaced 0.25 meters apart. The arriving signal is a sequence of widebandand chirps. The signal arrives from 17° azimuth and 0° elevation. Assume the speed of sound in air is 340 m/s.

Note: This example runs only in R2016b or later. If you are using an earlier release, replace each call to the function with the equivalent step syntax. For example, replace myObject(x) with step(myObject,x).

Load the chirp signal.

load chirp;
c = 340.0;

Create the 5-by-5 microphone URA.

d = 0.25;
N = 5;
mic = phased.OmnidirectionalMicrophoneElement;
array = phased.URA([N,N],[d,d],'Element',mic);

Simulate the incoming signal using the WidebandCollector System object™.

arrivalAng = [17;0];
collector = phased.WidebandCollector('Sensor',array,'PropagationSpeed',c,...
signal = collector(y,arrivalAng);

Estimate the direction of arrival.

estimator = phased.GCCEstimator('SensorArray',array,...
ang = estimator(signal)
ang = 



expand all


[1] Knapp, C. H. and G.C. Carter, “The Generalized Correlation Method for Estimation of Time Delay.” IEEE Transactions on Acoustics, Speech and Signal Processing. Vol. ASSP-24, No. 4, Aug 1976.

[2] G. C. Carter, “Coherence and Time Delay Estimation.” Proceedings of the IEEE. Vol. 75, No. 2, Feb 1987.

Extended Capabilities

Introduced in R2015b

Was this topic helpful?