The Wigner transform transfers a given harmonic series \[ \sum_{n=0}^N\sum_{k,l=-n}^n \hat{f}_n^{k,l} D_n^{k,l}(R(\alpha,\beta,\gamma))\] into a trivariate Fourier series \[ \sum_{k,j,l=-N}^N \hat{g}_{k,j,l} e^{i \, (k\alpha+j\beta+l\gamma)}.\] Therefore we just transform the harmonic coefficients \(\hat{f}_n^{k,l}\) into Fourier coefficients \(\hat{g}_{k,j,l}\) by the linear operator \[\hat{g}_{k,j,l} = i^{k-l} \, \sum_{n = \max \{|k|,|j|,|l|\} }^N \sqrt{2n+1}\, \hat{f}_n^{k,l} \, d_n^{j,k}(0) \, d_n^{j,l}(0).\]
Normaly the indices of the output Fourier array ghat(l,j,k) runs over k,j,l=-N,...,N.
If SO3F is real valued the Fourier array ghat(l,j,k) is of size l = -N,...,N j = -N,...,N k = 0,...,N.
If we want to use the NFFT on this Fourier array, we have to make the size even, as the index set of the NFFT is -(N+1),...,N. Hence the flag 2^1 (make output even) yields ghat(l,j,k) of size l = -(N+1),...,N j = -(N+1),...,N k = 0-mod(N+1,2),...,N
flags: 2^0 -> use L_2-normalized Wigner-D functions 2^1 -> make size of output Fourier array (ghat) even in every dimension 2^2 -> fhat are the Fourier coefficients of a real valued function 2^3 -> fhat are the Fourier coefficients of a antipodal function (not implemented yet) 2^4 -> use right and left symmetry
Syntax
Input
N | double (bandwidth) |
SO3F | SO3FunHarmonic |
flags | value (2^0+2^1+...) |
Output
ghat | double array (Fourier array with indices l x j x k) |