Frequency and power content using eigenvector method
[w,pow] = rooteig(x,p)
[f,pow] = rooteig(...,fs)
[w,pow] = rooteig(...,'corr')
[w,pow] = rooteig(x,p) estimates
the frequency content in the time samples of a signal
w, a vector of frequencies in rad/sample,
and the corresponding signal power in the vector
units of power, such as volts^2. The input signal
specified either as:
A row or column vector representing one observation of the signal
A rectangular array for which each row of
a separate observation of the signal (for example, each row is one
output of an array of sensors, as in array processing), such that
an estimate of the correlation matrix
You can use the output of
generate such an array
You can specify the second input argument
A scalar integer. In this case, the signal subspace
A two-element vector. In this case,
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
assigned to the noise subspace. In this case,
the maximum dimension of the signal subspace.
The extra threshold parameter in the second entry in
you more flexibility and control in assigning the noise and signal
The length of the vector
w is the computed
dimension of the signal subspace. For real-valued input data
the length of the corresponding power vector
length(pow) = 0.5*length(w)
For complex-valued input data
the same length.
[f,pow] = rooteig(...,fs) returns
the vector of frequencies
f calculated in Hz.
You supply the sampling frequency
fs in Hz. If
fs with the empty vector
the sampling frequency defaults to 1 Hz.
[w,pow] = rooteig(...,'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
'corr' anywhere after
Find the frequency content in a signal composed of three complex exponentials in noise. Use the modified covariance method to estimate the correlation matrix used by the eigenvector method. Reset the random number generator for reproducible results.
rng default n = 0:99; s = exp(1i*pi/2*n)+2*exp(1i*pi/4*n)+exp(1i*pi/3*n)+randn(1,100); X = corrmtx(s,12,'mod'); [W,P] = rooteig(X,3)
W = 0.7883 1.5674 1.0429
P = 4.1748 1.0572 1.2419
The eigenvector method used by
the same as that used by
The algorithm performs eigenspace analysis of the signal's correlation
matrix in order to estimate the signal's frequency content.
The difference between
peig returns the pseudospectrum
at all frequency samples.
rooteig returns the estimated discrete
frequency spectrum, along with the corresponding signal power estimates.
rooteig is most useful for frequency estimation
of signals made up of a sum of sinusoids embedded in additive white