Complex EOF � Conventional EOF analysis allows the detection of standing oscillation.
For propagating oscillation, such as waves, they often show up as 2 or more separate EOFs, instead of one mode of variation.
� For large data with unknown dominant frequency and spatial scales, cross-spectral analysis is less informative, especially for regional, non-stationary phenomena characterized by short lived, irregularly occurring and episodes or propagating wave signals. CEOF is more suitable tool.
A scalar field x j,t can be represented by
x j,t = ajω
∑ (ω)cos ωt( )+ bj (ω)sin(ωt)
A propagating feature can be described by
Xj,t =ω
∑ aj (ω)cos ωt( )+ bj (ω)sin(ωt)xj,k
"
#$$
%
&''+ i bj (ω)cos ωt( )− aj (ω)sin(ωt)
x̂ j,k
"
#
$$
%
&
''
=x j,t + ix̂ j,t where x j,t is the original data, x̂ j,k is the quadrature function or Hilbert transform. It's amplitude is the same as x j,t, but phase is advanced by π /2.
Horel 1984
� Examples of Hilbert transformation: Hilbert transforms does not act as a low-pass filter upon the data It contains as much energy due to noise as original data and it may redistribute the noise to different part of the time series.
Original data
Hilbert transform
Vector form of the Complex time series
� One can use apply eigen-analysis to the correlation between the jth and kth location to [X*j(t)] in a similar way of conventional EOF, namely,
After subtract mean and normalize by standard deviation, we obtain
correlation matrix: rj,k = [Xj (t)*Xk (t)]t = ejnekn
*
n=1
N
∑
where e jn is the eigenvector and ejn* is the eigenvector in complex conjugation
apply eigen analysis to rj,k in a similar way as regular EOF,
Xj (t) = [ej,n*
n=1
N
∑ Zn (t)]
ejn* =[X j (t)*Pn(t)]= sjne
iθ jn where sjn is the magnitude of the correlation and
eiθ jn is the phase of the correlation. Pn(t)=Tn(t)eiφn (t ) is the PC.
State vectors
§ Start from a data set p(x,t) § Hilbert transform to get a complex data
set P(x,t)=p(x,t)+i p(x,t) § Get covariance matrix
C(x,x’)=<p*(x,t)P(x’,t)> § Get real eigenvalues λn , complex
eigenvectors Bn(x), and associated principal components An(t)
§ Spatial phase and amplitude functions θn(x)=arctan[ImBn (x)/ReBn (x)] Sn(x)=[Bn(x)B*
n(x)]0.5
§ Temporal phase and amplitude function φn(t)=arctan[ImAn (t)/ReAn (t)] Rn(x)=[An(t)A*
n(t)]0.5
Basic steps
Barnett (1983, 1984)
Matlab code
http://jisao.washington.edu/vimont_matlab/Stat_Tools/complex_eof.html
Hilbert transform
covariance matrix
Calculate eigenvalues (lamda) and eigenvectors (loadings)
Spatial phase and amplitude functions
Amplitude Phase
Amplitude Phase