Documentation |
Root MUSIC algorithm
W = rootmusic(X,P)
[W,POW]
= rootmusic(X,P)
[F, POW]
= rootmusic(...,Fs)
[W,POW]
= rootmusic(...,'corr')
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 signal
A 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. |
If the input signal, x is real and an odd number of sinusoids, p is specified, the following error message is displayed:
Real signals require an even number p of complex sinusoids.