Rf = ParaHermDFT(Rt,Nfft); Rf = ParaHermDFT(Rt,Nfft) returns the Nfft-point DFT of a space-time covariance matrix stored in Rt. The matrix Rt is of dimension MxMxL, where M is the spatial dimension, and L the lag dimension (assumed to be odd). The function first aligns Rt, such that the zero-lag component is indeed at zero. Nfft must be larger than L. Input parameters: Rt space-time covariance matrix Nfft DFT length Output parameter: Rf MxMxNfft cross-spectral density matrix
0001 function Rf = ParaHermDFT(Rt,Nfft); 0002 %Rf = ParaHermDFT(Rt,Nfft); 0003 % 0004 % Rf = ParaHermDFT(Rt,Nfft) returns the Nfft-point DFT of a space-time 0005 % covariance matrix stored in Rt. The matrix Rt is of dimension MxMxL, 0006 % where M is the spatial dimension, and L the lag dimension (assumed to be odd). 0007 % 0008 % The function first aligns Rt, such that the zero-lag component is indeed 0009 % at zero. 0010 % 0011 % Nfft must be larger than L. 0012 % 0013 % Input parameters: 0014 % Rt space-time covariance matrix 0015 % Nfft DFT length 0016 % 0017 % Output parameter: 0018 % Rf MxMxNfft cross-spectral density matrix 0019 0020 % S. Weiss, 9/3/2018 0021 0022 [M,~,L] = size(Rt); 0023 if L > Nfft, 0024 error('DFT length too short'); 0025 end; 0026 0027 % rearrange time domain data 0028 L2 = (L+1)/2; 0029 R_td = zeros(M,M,Nfft); 0030 R_td(:,:,1:L2) = Rt(:,:,L2:L); 0031 R_td(:,:,Nfft-L2+2:Nfft) = Rt(:,:,1:L2-1); 0032 0033 % apply DFT 0034 Rf = fft(R_td,Nfft,3); 0035