% SIGNAL = sinusoids + noise % Setting up the signal parameters and time history N=100; a0=1.8; a1=1.5; theta1=1.3; a2=2; theta2=1.35; k=1:N; k=k(:); y=a0*randn(N,1)+a1*exp(1i*(theta1*k+2*pi*rand))+a2*exp(1i*(theta2*k+2*pi*rand));
High resolution tools for spectral analysisResearch supported by AFSOR, NSF. Maintained by L. Ning and T.T. Georgiou
IntroductionConsider a discrete-time zero-mean stationary process ![]() ![]() represents power density over frequency. Under suitable smoothness conditions, it is also ![]() Spectral estimation refers to esimating In contrast, recently, the analysis of state covariance matrices, see e.g. [1, 2], suggested a general framework which allows even higher resolution. A series of generalized spectral estimation tools have been developed generalizing Burg, Capon, MUSIC, ESPRIT, etc.. In the following, we will overview some of these high resolution methods and the relevant computer software. Their use is shown via a representative academic examples. We want to resolve two sinusoids in based on ![]() where % SIGNAL = sinusoids + noise % Setting up the signal parameters and time history N=100; a0=1.8; a1=1.5; theta1=1.3; a2=2; theta2=1.35; k=1:N; k=k(:); y=a0*randn(N,1)+a1*exp(1i*(theta1*k+2*pi*rand))+a2*exp(1i*(theta2*k+2*pi*rand));
FFT-based methodsWe begin with two classical formulae. The correlogram is defined as ![]() where ![]() The two coincide when the correlation lag ![]() where Using the above example, we pad up % the fft-based spectra
NN=2048; th=linspace(0,2*pi,NN);
Y =abs(fft(y,NN))/sqrt(N);
Y = Y.^2;
plot(th,Y);
Input-to-state filter and state covarianceThe first step to explain the high resolution spectral analysis tools is to consider the input-to-state
filter below and the corresponding
the state statistics.
The process
Then the filter transfer function is ![]() A positive semi-definite matrix ![]() for some row-vector ![]() the sample state covariance matrix. If the matrix ![]() the filter is a tapped delay line:
The corresponding state covariance The input-to-state filter works as a “magnifying glass” or, as type of bandpass filter, amplifying the harmonics in a particular frequency interval.
Shaping of the filter is accomplished via selection of the eigenvalues of ![]() The routine dlsim_complex.m generate the state covariance matrix (dlsim_real.m for
real valued problem).
The following figure plots % setting up filter parameters and the svd of the input-to-state response thetamid=1.325; [A,B]=cjordan(5,0.88*exp(thetamid*1i)); % obtaining state statistics R=dlsim_complex(A,B,y'); sv=Rsigma(A,B,th); plot(th(:),sv(:));
Maximum entropy spectrumThe entropy of a probability distribution function ![]() quantifies the uncertainty of the corresponding random variable.
When ![]() For a zero-mean stationary Gaussian process ![]() Then the entropy rate is ![]() The limit of ![]() Given state statistics, the maximum entropy power spectrum is ![]() The solution to this problem (see [2]) is ![]() where ![]() and The maximum entropy spectrum is obtained using the routine me.m. For the example discussed above, the maximum entropy spectrum is shown in blue. There are two peaks detected inside the window. Burg's spectrum is shown in green. The resolution of Burg's solution is not sufficient to distinguish the two peaks. % maximum entropy spectrum and Burg spectrum
me_spectrum=me(R,A,B,th);
plot(th,me_spectrum);
me_burg=pburg(y,5,th);
hold on;
plot(th,me_burg);
Subspace methodsWe start with the Carath ![]() where ![]() Accordingly, the power spectrum ![]() where The above result can be generalized to the case of state covariances [1].
More specifically, let ![]() The matrix ![]() where The subspace spectral analysis methods rely on the singular value decomposition ![]() where ![]() where Noise subspace analysisThe columns of ![]() has Given a sample state covariance matrix
Signal subspace analysisA signal subspace method relies on the fact that for the pair ![]() where The signal subspace estimation is computed using sm.m, whereas music.m and esprit.m implement the MUSIC and ESPRIT methods, respectively. For the example discussed above, the estimated spectral lines are shown in the following figure. For an extensive comparison of the high resolution method sm.m with MUSIC and ESPRIT methods, see the example. % subspace method
[thetas,residues]=sm(R,A,B,2);
arrowb(thetas,residues); hold on;
Ac=compan(eye(1,6));
Bc=eye(5,1);
That=dlsim_complex(Ac,Bc,y');
[th_esprit,r_esprit]=sm(That,Ac,Bc,2); % ESPRIT spectral lines
arrowg(th_esprit,r_esprit);
Spectral envelopLet ![]() where ![]() where ![]() and implemented in envlp.m.
This generalizes the Capon spectral estimation method which applies to For real valued processes with a symmetric spectrum with respect to the origin, a symmetrized version of the spectral envelop [1] can be similarly obtained: ![]() % spectral envelop
rhohalf = envlp(R,A,B,th);
rho = rhohalf.^2;
plot(th,rho);
Reference[1] T.T. Georgiou, “Spectral Estimation via Selective Harmonic Amplification,” IEEE Trans. on Automatic Control, 46(1): 29-42, January 2001. [BIBTEX] [2] T.T. Georgiou, “Spectral analysis based on the state covariance: the maximum entropy spectrum and linear fractional parameterization,” IEEE Trans. on Automatic Control, 47(11): 1811-1823, November 2002. [BIBTEX] |