


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