The nonuniform discrete Fourier transform transforms a sequence of N {\displaystyle N} complex numbers x 0 , … , x N − 1 {\displaystyle x_{0},\ldots ,x_{N-1}} into another sequence of complex numbers X 0 , … , X N − 1 {\displaystyle X_{0},\ldots ,X_{N-1}} defined by
where p 0 , … , p N − 1 ∈ [ 0 , 1 ] {\displaystyle p_{0},\ldots ,p_{N-1}\in [0,1]} are sample points and f 0 , … , f N − 1 ∈ [ 0 , N ] {\displaystyle f_{0},\ldots ,f_{N-1}\in [0,N]} are frequencies. Note that if p n = n / N {\displaystyle p_{n}=n/N} and f k = k {\displaystyle f_{k}=k} , then equation (1) reduces to the discrete Fourier transform. There are three types of NUDFTs.4 Note that these types are not universal and different authors will refer to different types by different numbers.
A similar set of NUDFTs can be defined by substituting − i {\displaystyle -i} for + i {\displaystyle +i} in equation (1). Unlike in the uniform case, however, this substitution is unrelated to the inverse Fourier transform. The inversion of the NUDFT is a separate problem, discussed below.
The multidimensional NUDFT converts a d {\displaystyle d} -dimensional array of complex numbers x n {\displaystyle x_{\mathbf {n} }} into another d {\displaystyle d} -dimensional array of complex numbers X k {\displaystyle X_{\mathbf {k} }} defined by
where p n ∈ [ 0 , 1 ] d {\displaystyle \mathbf {p} _{\mathbf {n} }\in [0,1]^{d}} are sample points, f k ∈ [ 0 , N 1 ] × [ 0 , N 2 ] × ⋯ × [ 0 , N d ] {\displaystyle {\boldsymbol {f}}_{\mathbf {k} }\in [0,N_{1}]\times [0,N_{2}]\times \cdots \times [0,N_{d}]} are frequencies, and n = ( n 1 , n 2 , … , n d ) {\displaystyle \mathbf {n} =(n_{1},n_{2},\ldots ,n_{d})} and k = ( k 1 , k 2 , … , k d ) {\displaystyle \mathbf {k} =(k_{1},k_{2},\ldots ,k_{d})} are d {\displaystyle d} -dimensional vectors of indices from 0 to N − 1 = ( N 1 − 1 , N 2 − 1 , … , N d − 1 ) {\displaystyle \mathbf {N} -1=(N_{1}-1,N_{2}-1,\ldots ,N_{d}-1)} . The multidimensional NUDFTs of types I, II, and III are defined analogously to the 1D case.10
The NUDFT-I can be expressed as a Z-transform.11 The NUDFT-I of a sequence x [ n ] {\displaystyle x[n]} of length N {\displaystyle N} is
where X ( z ) {\displaystyle X(z)} is the Z-transform of x [ n ] {\displaystyle x[n]} , and { z i } i = 0 , 1 , . . . , N − 1 {\displaystyle \{z_{i}\}_{i=0,1,...,N-1}} are arbitrarily distinct points in the z-plane. Note that the NUDFT reduces to the DFT when the sampling points are located on the unit circle at equally spaced angles.
Expressing the above as a matrix, we get
where
As we can see, the NUDFT-I is characterized by D {\displaystyle \mathbf {D} } and hence the N {\displaystyle N} z k {\displaystyle {z_{k}}} points. If we further factorize det ( D ) {\displaystyle \det(\mathbf {D} )} , we can see that D {\displaystyle \mathbf {D} } is nonsingular provided the N {\displaystyle N} z k {\displaystyle {z_{k}}} points are distinct. If D {\displaystyle \mathbf {D} } is nonsingular, we can get a unique inverse NUDFT-I as follows:
Given X and D {\displaystyle \mathbf {X} {\text{ and }}\mathbf {D} } , we can use Gaussian elimination to solve for x {\displaystyle \mathbf {x} } . However, the complexity of this method is O ( N 3 ) {\displaystyle O(N^{3})} . To solve this problem more efficiently, we first determine X ( z ) {\displaystyle X(z)} directly by polynomial interpolation:
Then x [ n ] {\displaystyle x[n]} are the coefficients of the above interpolating polynomial.
Expressing X ( z ) {\displaystyle X(z)} as the Lagrange polynomial of order N − 1 {\displaystyle N-1} , we get
where { L i ( z ) } i = 0 , 1 , . . . , N − 1 {\displaystyle \{L_{i}(z)\}_{i=0,1,...,N-1}} are the fundamental polynomials:
Expressing X ( z ) {\displaystyle X(z)} by the Newton interpolation method, we get
where c j {\displaystyle c_{j}} is the divided difference of the j {\displaystyle j} th order of X ^ [ 0 ] , X ^ [ 1 ] , . . . , X ^ [ j ] {\displaystyle {\hat {X}}[0],{\hat {X}}[1],...,{\hat {X}}[j]} with respect to z 0 , z 1 , . . . , z j {\displaystyle z_{0},z_{1},...,z_{j}} :
The disadvantage of the Lagrange representation is that any additional point included will increase the order of the interpolating polynomial, leading to the need to recompute all the fundamental polynomials. However, any additional point included in the Newton representation only requires the addition of one more term.
We can use a lower triangular system to solve { c j } {\displaystyle \{c_{j}\}} :
By the above equation, { c j } {\displaystyle \{c_{j}\}} can be computed within O ( N 2 ) {\displaystyle O(N^{2})} operations. In this way Newton interpolation is more efficient than Lagrange Interpolation unless the latter is modified by
While a naive application of equation (1) results in an O ( N 2 ) {\displaystyle O(N^{2})} algorithm for computing the NUDFT, O ( N log N ) {\displaystyle O(N\log N)} algorithms based on the fast Fourier transform (FFT) do exist. Such algorithms are referred to as NUFFTs or NFFTs and have been developed based on oversampling and interpolation,12131415 min-max interpolation,16 and low-rank approximation.17 In general, NUFFTs leverage the FFT by converting the nonuniform problem into a uniform problem (or a sequence of uniform problems) to which the FFT can be applied.18 Software libraries for performing NUFFTs are available in 1D, 2D, and 3D.192021222324
The applications of the NUDFT include:
Bagchi, Sonali; Mitra, Sanjit K. (1999). The Nonuniform Discrete Fourier Transform and Its Applications in Signal Processing. Boston, MA: Springer US. ISBN 978-1-4615-4925-3. 978-1-4615-4925-3 ↩
Fessler, J.A.; Sutton, B.P. (February 2003). "Nonuniform fast fourier transforms using min-max interpolation". IEEE Transactions on Signal Processing. 51 (2): 560–574. Bibcode:2003ITSP...51..560F. doi:10.1109/TSP.2002.807005. hdl:2027.42/85840. /wiki/Bibcode_(identifier) ↩
Lee, June-Yub; Greengard, Leslie (June 2005). "The type 3 nonuniform FFT and its applications". Journal of Computational Physics. 206 (1): 1–5. Bibcode:2005JCoPh.206....1L. doi:10.1016/j.jcp.2004.12.004. /wiki/Bibcode_(identifier) ↩
Greengard, Leslie; Lee, June-Yub (January 2004). "Accelerating the Nonuniform Fast Fourier Transform". SIAM Review. 46 (3): 443–454. Bibcode:2004SIAMR..46..443G. CiteSeerX 10.1.1.227.3679. doi:10.1137/S003614450343200X. /wiki/Bibcode_(identifier) ↩
Plonka, Gerlind; Potts, Daniel; Steidl, Gabriele; Tasche, Manfred (2019). Numerical Fourier Analysis. Birkhäuser. doi:10.1007/978-3-030-04306-3. ISBN 978-3-030-04306-3. 978-3-030-04306-3 ↩
PyNUFFT Services. "Basic use of PyNUFFT — PyNUFFT 2023.2.2 documentation". pynufft.readthedocs.io. Retrieved 27 February 2024. https://pynufft.readthedocs.io/en/latest/tutor/basic_use.html ↩
The Simons Foundation. "Mathematical definitions of transforms — finufft 2.2.0 documentation". finufft.readthedocs.io. Retrieved 27 February 2024. https://finufft.readthedocs.io/en/latest/math.html#math ↩
Marvasti, Farokh (2001). Nonuniform Sampling: Theory and Practice. New York: Springer. pp. 325–360. ISBN 978-1-4615-1229-5. 978-1-4615-1229-5 ↩
Dutt, Alok (May 1993). Fast Fourier Transforms for Nonequispaced Data (PDF) (PhD). Yale University. https://cpsc.yale.edu/sites/default/files/files/tr981.pdf ↩
Dutt, Alok; Rokhlin, Vladimir (November 1993). "Fast Fourier Transforms for Nonequispaced Data". SIAM Journal on Scientific Computing. 14 (6): 1368–1393. Bibcode:1993SJSC...14.1368D. doi:10.1137/0914081. /wiki/Bibcode_(identifier) ↩
Potts, Daniel; Steidl, Gabriele (January 2003). "Fast Summation at Nonequispaced Knots by NFFT". SIAM Journal on Scientific Computing. 24 (6): 2013–2037. Bibcode:2003SJSC...24.2013P. doi:10.1137/S1064827502400984. /wiki/Gabriele_Steidl ↩
Boyd, John P (December 1992). "A fast algorithm for Chebyshev, Fourier, and sinc interpolation onto an irregular grid" (PDF). Journal of Computational Physics. 103 (2): 243–257. Bibcode:1992JCoPh.103..243B. doi:10.1016/0021-9991(92)90399-J. hdl:2027.42/29694. https://deepblue.lib.umich.edu/bitstream/2027.42/29694/1/0000026.pdf ↩
Ruiz-Antolín, Diego; Townsend, Alex (20 February 2018). "A Nonuniform Fast Fourier Transform Based on Low Rank Approximation" (PDF). SIAM Journal on Scientific Computing. 40 (1): A529 – A547. arXiv:1701.04492. Bibcode:2018SJSC...40A.529R. doi:10.1137/17M1134822. hdl:10902/13767. https://repositorio.unican.es/xmlui/bitstream/handle/10902/13767/ANonuniform.pdf ↩
"NUFFT page". cims.nyu.edu. https://cims.nyu.edu/cmcl/nufft/nufft.html ↩
"NFFT". www.nfft.org. http://www.nfft.org/ ↩
"MikaelSlevinsky/FastTransforms.jl". GitHub. 2019-02-13. https://github.com/MikaelSlevinsky/FastTransforms.jl ↩
"chebfun/chebfun". GitHub. 2019-02-07. https://github.com/chebfun/chebfun ↩