You are here : matlabSignal Processingrootmusic

# rootmusic() - Signal Processing

```W = rootmusic(X,P) returns
the frequencies in radians/sample for the P complex
exponentials (sinusoids) that make up the signal X. The input X is specified either as:A row or column vector representing one realization
of signalA rectangular array for which each row of X represents
a separate observation of the signal (for example, each row is one
output of an array of sensors, as in array processing), such that X'*X is
an estimate of the correlation matrix [W,POW]
= rootmusic(X,P) returns
the estimated absolute value squared amplitudes of the sinusoids at
the frequencies W.The second input argument, P is the number
of complex sinusoids in X. You can specify P as
either:A positive integer. In this case, the signal subspace
dimension is P.A two-element vector. In this case, P(2),
the second element of P, represents a threshold
that is multiplied by λmin, the smallest
estimated eigenvalue of the signal's correlation matrix. Eigenvalues
below the threshold λmin*P(2) are
assigned to the noise subspace. In this case, P(1) specifies
the maximum dimension of the signal subspace.The extra threshold parameter in the second entry in P provides
you more flexibility and control in assigning the noise and signal
subspaces.The length of the vector W is the computed
dimension of the signal subspace. For real-valued input data X,
the length of the corresponding power vector POW is
given by length(POW) = 0.5*length(W)
For complex-valued input data X, POW and W have
the same length.[F, POW]
= rootmusic(...,Fs) returns
the vector of frequencies F calculated  in Hz.
You supply the sampling frequency Fs in Hz. If
you specify Fs with the  empty vector [],
the sampling frequency defaults to 1 Hz.[W,POW]
= rootmusic(...,'corr') forces the input argument X to
be interpreted as a correlation matrix rather than a matrix of signal
data. For this syntax, you must supply a square matrix for X,
and all of its eigenvalues must be nonnegative. You can place the 'corr' string
anywhere after the P input argument.Note

You can use the output of corrmtx to
generate such an array X.```

### Syntax

```W = rootmusic(X,P)[W,POW]
= rootmusic(X,P)[F, POW]
= rootmusic(...,Fs)[W,POW]
= rootmusic(...,'corr')```

### Example

`Real signals require an even number p of complex sinusoids.`