Note: This page has been translated by MathWorks. Please click here

To view all translated materials including this page, select Japan from the country navigator on the bottom of this page.

To view all translated materials including this page, select Japan from the country navigator on the bottom of this page.

Estimate 2D direction of arrival using narrowband MUSIC algorithm

The `phased.MUSICEstimator2D`

System
object™ implements
the narrowband multiple signal classification (*MUSIC*)
algorithm for 2-D planar or 3-D arrays such as a uniform rectangular
array (URA). MUSIC is a high-resolution direction-finding algorithm
capable of resolving closely-spaced signal sources. The algorithm
is based on the eigenspace decomposition of the sensor covariance
matrix.

To estimate directions of arrival (DOA):

Define and set up a

`phased.MUSICEstimator2D`

System object. See Construction.Call the

`step`

method to estimate the DOAs according to the properties of`phased.MUSICEstimator2D`

.

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.

creates
a MUSIC DOA estimator System
object, `estimator`

= phased.MUSICEstimator2D`estimator`

.

creates
a System
object, `estimator`

= phased.MUSICEstimator2D(`Name`

,`Value`

)`estimator`

, with each specified
property Name set to the specified Value. You can specify additional
name-value pair arguments in any order as (`Name1`

,`Value1`

,...,`NameN`

,`ValueN`

).

plotSpectrum | Plot 2-D MUSIC spectrum |

reset | Reset states of System object |

step | Estimate direction of arrival using 2-D MUSIC |

Common to All System Objects | |
---|---|

`clone` | Create System object with same property values |

`getNumInputs` | Expected number of inputs to a System object |

`getNumOutputs` | Expected number of outputs of a System object |

`isLocked` | Check locked states of a System object (logical) |

`release` | Allow System object property value changes |

MUSIC stands for *MUltiple SIgnal Classification*.
MUSIC is a high-resolution direction-finding algorithm that estimates
directions of arrival (DOA) of signals at an array from the covariance
matrix of array sensor data. MUSIC belongs to the subspace-decomposition
family of direction-finding algorithms. Unlike conventional beamforming, *MUSIC* can
resolve closely-spaced signal sources.

Based on eigenspace decomposition of the sensor covariance matrix, MUSIC divides the observation space into orthogonal signal and noise subspaces. Eigenvectors corresponding to the largest eigenvalues span the signal subspace. Eigenvectors corresponding to the smaller eigenvalues span the noise subspace. Because arrival (or steering) vectors lie in the signal subspace, they are orthogonal to the noise subspace. The arrival vectors depend on the direction of arrival of a signals. For a 2-D or 3-D array. the directions are determined by the azimuth and elevation of the sources. By searching over a grid of arrival angles, the algorithm finds those arrival vectors whose projection into the noise subspace is zero or at least very small.

MUSIC requires that the number of source signals is known. The
algorithm degrades if the number of specified sources does not match
the actual number of sources. Generally, you must provide an estimate
of the number of sources or use one of the built-in source number
estimation methods. For a description of the methods used to estimate
the number of sources, see the `aictest`

or `mdltest`

functions.

In place of the true sensor covariance matrix, the algorithm
computes the sample covariance matrix from the sensor data. MUSIC
applies to noncoherent signals but can be extended to coherent signals
using *forward-backward averaging* techniques.
For a high-level description of the algorithm, see MUSIC Super-Resolution DOA Estimation.

[1] Van Trees, H. L., *Optimum Array Processing*.
New York: Wiley-Interscience, 2002.

Was this topic helpful?