IFTSolver

Description

Creation

Syntax

solver = IFTSolver("integral2")
solver = IFTSolver("ifft2",Name,Value)

Description

solver = IFTSolver("integral2") creates an IFTSolver object that uses MATLAB’s built-in integral2 method to solve the 2-D inverse Fourier transform.

\( \breve{T}_f \left( x, y, 0, f \right) = \int_{-\infty}^\infty \int_{-\infty}^\infty \hat{T}_f \left( u, v, 0, f \right) \, \exp \left( 2 i \pi \left( u x + v y \right) \right) \, du \, dv \)


solver = IFTSolver("ifft2",Name,Value) creates an IFTSolver object that uses MATLAB’s built-in ifft2 method—with options specified as name-value arguments—to solve the 2-D inverse Fourier transform.

Input Arguments

method - 2-D inverse Fourier transform method "ifft2" | "integral2" | IFTEnum object

2-D inverse Fourier transform method. When possible, the ifft2 method should be used for its computational efficiency. However, if greater accuracy is needed, the integral2 method may be used instead.

When ift_method = "ifft2", name-value arguments must also be provided.

char and string inputs are case-insensitive and may be specified as a unique leading substring of any one of the above listed options.

Data Types: char | string | IFTEnum object

Name-Value Arguments

x_max - Maximum spatial distance from pump positive real scalar | 1-by-2 positive real vector

Maximum spatial distance from the pump in the x- and y-directions used in the 2-D inverse fast Fourier transform (ifft2).

When provided as a scalar, dx is expanded (copied) to a 1-by-2 vector.

Data Types: double | single

dx - Descrete spatial step size positive real scalar | 1-by-2 positive real vector

Descrete spatial step size—i.e., sampling period—in the x- and y-directions used in the 2-D inverse fast Fourier transform (ifft2).

When provided as a scalar, dx is expanded (copied) to a 1-by-2 vector.

When not provided, dx is calculated as x_max ./ floor(Nx/2).

Data Types: double | single

Nx - Number of spatial steps [256, 256] (default) | positive integer scalar | 1-by-2 positive integer vector

Number of descrete spatial points—i.e., signal length—in the x- and y-directions used in the 2-D inverse fast Fourier transform (ifft2).

When possible, the value of Nx should only have small prime factors as this results in significantly faster execution of the ifft2 transform.

When provided as a scalar, Nx is expanded (copied) to a 1-by-2 vector.

When not provided, but x_max and dx are, Nx is calculated as floor(x_max/dx) * 2 + 1.

Data Types: double | single | int8 | int16 | int32 | uint8 | uint16 | uint32

Properties

In addition to storing the method argument as a property, the following properties are commputed and stored if the ifft2 method is used.

x - descrete spatial vector Read only: double column vector

Descrete spatial vector in the x-direction, calculated as dx(1) * (-floor(Nx(1)/2) : ceil(Nx(1)/2) - 1).

Data Type: double

y - descrete spatial vector Read only: double column vector

Descrete spatial vector in the y-direction, calculated as dx(2) * (-floor(Nx(2)/2) : ceil(Nx(2)/2) - 1).

Data Type: double

u - descrete spatial-frequency vector Read only: double column vector

Descrete spatial-frequency vector in the x-direction, calculated as (-floor(Nx(1)/2) : ceil(Nx(1)/2) - 1) / (Nx(1) * dx(1)).

Data Type: double

v - descrete spatial-frequency vector Read only: double column vector

Descrete spatial-frequency vector in the y-direction, calculated as (-floor(Nx(2)/2) : ceil(Nx(2)/2) - 1) / (Nx(2) * dx(2)).

Data Type: double

Object Functions

solve Solves the 2-D inverse Fourier transform

Examples

See Also