IFTSolver

Description

Creation

Syntax

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

Description

solver = IFTSolver(method) creates an IFTSolver object that uses the specified method to solve the 2D inverse Fourier transform.

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

This syntax is only valid for method ∈ {integral2, vpaintegral}. When method = ifft2, name-value arguments are required.


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 2D inverse Fourier transform.

Input Arguments

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

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

When 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

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 2D 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 - Discrete spatial step size positive real scalar | 1-by-2 positive real vector

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

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

When not provided or when set equal to 0, 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 discrete spatial points—i.e., signal length—in the x- and y-directions used in the 2D inverse fast Fourier transform (ifft2).

When possible, the value of Nx should have only 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 or when set equal to 0, if both x_max and dx are provided Nx is calculated as floor(x_max/dx) * 2 + 1; otherwise, the default value will be used.

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

interp_methods - Interpolation and extrapolation methods ["linear","linear"] (default) | [Method, ExtrapolationMethod]

Interpolation and extrapolation methods for the creation of the interp property. See griddedInterpolant input arguments Method and ExtrapolationMethod for a list of available options.

If provided as a scalar string or character vector, the input is used for both Method and ExtrapolationMethod (i.e., ExtrapolationMethod = Method)

The interpolant will be created using the following command:

interp = griddedInterpolant({x,y},zeros(Nx(1),Nx(2)),interp_method(1),interp_method(2))

Data Types: character array | cell of character arrays | string array

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 - Discrete spatial vector Read only: double column vector

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

Data Type: double

y - Discrete spatial vector Read only: double row vector

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

Data Type: double

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

Discrete 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 - Discrete spatial-frequency vector Read only: double row vector

Discrete 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

interp - Interpolant Read only: scalar griddedInterpolant object

Interpolates the surface temperature data T0tilde defined on the discrete (x, y) grid to estimate values at probe locations X_probe.

Usage:
interp.Values = T0tilde;
T0tilde = interp(X_probe);
Where X_probe is an N_probe-by-2 numeric matrix.

Data Type: griddedInterpolant

Object Functions

solve Solves the 2D inverse Fourier transform

Examples

See Also

MLTI Companion Classes and Methods

IFTEnum | ForwardModel

MATLAB Methods

ifft2 | integral2 | vpaintegral | griddedInterpolant