Cross Spectral Analysis

advertisement
Cross Spectral Analysis
Suppose we have
Not a matrix of data
Not an array of data ...
just a pair of time series.
Write
at, x1   a1t 
at, x 2   a2 t 
(Same kind of data, 2 locations)
Fourier Transforms are:
A1 ( )  FFT (a1 (t)) 
A2 ( )  FFT (a2 (t))

it dt
a
(t)e
 1

Step I
Select a trial value of N, the
number of degrees of freedom.
Break records into N/2 segments
(I think this is this wrong? – Need N segments for
cross-spectra, unlike for power. Note cross-spectra
need LOTS of d.o.f.)
Step II
Fourier transform each segment of
each record.
Step III
Form products A1*  A2   from
like data segments. Average these
together to get an N d.o.f. estimate
of the Cross Spectrum.

The estimated Cross Spectrum is
2 N 2

1
Cˆ12   
  A1n*   A2n  
 N n1

This has a Phase as well as
Amplitude, so this does NOT
reduce the number of output
variables estimated, as was the case
for the spectrum of a single timeseries.
More definitions ...
Co-Spectrum is in-phase part:
Cˆ o12    ReCˆ12  
Quadrature Spectrum is:
Qˆ12    ImC12  
Phase is the angle:
ˆ 12    angleCˆ12  

 Qˆ12   
 tan 1 

Cˆ o12  
Coherence is normalized:
Cˆ oh12 
Cˆ12 
2
ˆ
ˆ
E



E



1 2 
1
For two similar time-series
separated by a distance x, the
cross-spectrum is related to the
power spectrum:
C , x  

ikx dk


E

,k
e


The Co-Spectrum is
Co , x  Re C , x

  E ,k cosk  xdk
and Quadrature Spectrum is
Q , x  lmC , x 

  E ,k sink  xdk
The phase of the cross spectrum is


Q


,
x

 , x   tan 1 

Co , x 
 angle(C( , x))
 k  x
where k is the energy-weighted
mean wavenumber at .
Thus we get an estimate of the
mean wavenumber component
parallel to x.
Thinking ahead: how about if we
have another sensor, displaced “off
to the side” so one “lag” gives
<Kx>, the other <Ky>?
Is the mean <K> enough? How to
arrange a 2-D array for best results?
We’ll come back ...
Issue: Sample interval matters
1. What if the real-world variability
has small scales, so k·x can
“wrap” past 2?
< see movies >
In practice, we have to try smaller
x’s until we’re convinced that a
vast majority of variance is at
larger scales than x
2. What if the motion is WAY
large, so the phase difference
(*amplitude) is smaller than the
noise? Bad –> need larger x
A Classic Special Case:
Suppose that in each frequency
band  (±/2) all spectral
variance is concentrated at
k  K   (a 1-D plane wave.)
so
E , k   E0   k  K  .
Then
C , x   E0  eiK  x
and  , x   K    x .
One can estimate the wave-number
at each frequency by
kˆ    , x  x
Another: Just 2 Opposing Waves.
Suppose, in frequency band 0
E 0 ,k   a k  k0   b k  k0 
or, in graphic form:
so
C 0 , x   aeik0 x  beik0 x
Write
c = (a + b)
d = (a – b)
and find
C 0 , x   c  cosk0 x 
id  sink0 x 
Co 0 , x   c  cos k0 x 
 sum
Q 0 , x   d sink0 x 
 difference
Note
If E(,k) is symmetric in ± k, then
Q(,x)  0.
Measuring Upper Atmosphere
Wind from the “twinkling” of
starlight.
Assume:
The star is a distant point source.
The index of refraction pattern
of upper atmosphere turbulence is
advected by the wind without any
change of form.
– An advected “frozen field”!
In 1 dimension, for simplicity,
denote the received intensity as
I  x,t  

ik xUt 
I
e
k
k
  Ik eikx k t
k
where k  kU is the Doppler Shift
“Twinkling” 
I 
  i k Ik eikx kt
t 
(accentuates high frequencies)
Consider the received signals at
two locations separated by x
Rx1,t    i k Ik eikx1  k t
k
Rx1  x,t    i k Ik eikx1 x  kt
k
Fourier Transforming:
Rx1,  k   i k Ik eikx1
Rx1  x,  k   i k Ik eikx1 x
where k  k/U
(from definition of k).

Form the Cross Spectrum:
Cx,  k    k2 Ik* Ik eikx 
Look at Cross Spectral Phase:
  k   k k x 
so
k
U
x
k
U
x
  k 
Since the wind has the same speed
at all frequencies, () must
increase Linearly with frequency,
x 
i.e.           
 U 
Alternative: Look for maximum
correlation vs temporal lag. (A bit
of a diversion.)
Covariance vs lag is a convolution
of the time-series:
Cv12 t  
1 T
T 0

A1* (t)A2 (t  t)dt
 A1 * A2
Handy Rule:
Fourier transform F relates
convolution to inner product:
F(a * b)  F(a)  F(b)
The inner product is like “.*” in
Matlab™:
P(t)  a  b  a* (t)b(t)
So the Fast Fourier Transform can
speed the computation of
covariance:
Cv12  A1 * A2
 F 1 (F( A1 * A2 ))
 F 1 (F( A1 )  F( A2 ))
The maximum covariance occurs at
lag t  x /U for all (frozen)
scales.
Download