Cross Spectral Analysis Suppose we have Not a matrix of data Not an array of data ... just a pair of time series. Write at, x1 a1t at, x 2 a2 t (Same kind of data, 2 locations) Fourier Transforms are: A1 ( ) FFT (a1 (t)) A2 ( ) FFT (a2 (t)) it 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 n1 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 ReCˆ12 Quadrature Spectrum is: Qˆ12 ImC12 Phase is the angle: ˆ 12 angleCˆ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 ikx dk E ,k e The Co-Spectrum is Co , x Re C , x E ,k cosk xdk and Quadrature Spectrum is Q , x lmC , x E ,k sink xdk 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 beik0 x Write c = (a + b) d = (a – b) and find C 0 , x c cosk0 x id sink0 x Co 0 , x c cos k0 x sum Q 0 , x d sink0 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 xUt 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 Rx1,t i k Ik eikx1 k t k Rx1 x,t i k Ik eikx1 x kt k Fourier Transforming: Rx1, k i k Ik eikx1 Rx1 x, k i k Ik eikx1 x where k k/U (from definition of k). Form the Cross Spectrum: Cx, k k2 Ik* Ik eikx 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.