nufftn

N-D nonuniform fast Fourier transform

Description

example

Y = nufftn(X,t) returns the nonuniform discrete Fourier transform (NUDFT) along each dimension of an N-D array X using the sample points t.

Y = nufftn(X,t,f) computes the NUDFT using the sample points t and query points f. To specify f without specifying sample points, use nufftn(X,[],f).

Y = nufftn(X) returns the N-D discrete Fourier transform of X.

Examples

collapse all

Create a 3-D signal X sampled at unevenly spaced points t in each dimension. Compute the nonuniform fast Fourier transform Y.

t = [1:10 11:2:29]';
x = t;
y = t';
z = reshape(t,[1 1 20]);
X = cos(2*pi*0.01*x) + sin(2*pi*0.02*y) + cos(2*pi*0.03*z);
Y = nufftn(X,{t,t,t});

Input Arguments

collapse all

Input array, specified as a numeric vector, matrix, or multidimensional array.

Data Types: double | single | int8 | int16 | int32 | uint8 | uint16 | uint32 | logical
Complex Number Support: Yes

Sample points, specified as a vector, matrix, or cell array of vectors for each dimension of the input array X.

When specified as a vector or matrix, the number of rows of t must equal the number of elements in X. When no query points are specified, the transform is computed at N evenly spaced query points in each dimension, where N = ceil(numel(X).^(1/D)) and D is the number of columns in t. The output Y is a D-dimensional array of length N in each dimension.

When t is specified as a cell array of D vectors, the length of each vector must equal the length of the corresponding dimension of X.

Data Types: double | single

Query points, specified as a vector, matrix, or cell array of vectors for each dimension of the input array X. When specified as a matrix, f must be an M-by-k array, where k is greater than or equal to the number of dimensions D defined by the sample points.

When f is specified as a cell array of D vectors, the length of each dimension of the output Y is equal to the length of the corresponding vector in the cell array.

To specify f without specifying sample points, use nufftn(X,[],f).

Data Types: double | single