Angular Spectrum Sync Task¶
The Angular Spectrum Method (ASM) models free-space propagation of a wavefield by decomposing it into plane waves and applying a phase shift in the spatial frequency domain.
Given a scalar real or complex field \(U(x, y, 0)\) at \(z = 0\), its propagated field at distance \(z\) is:
where \(\mathcal{F}\) and \(\mathcal{F}^{-1}\) are the 2D Fourier and inverse Fourier transforms, and the transfer function \(H(f_x, f_y, z)\) is:
where:
- \(\lambda\): wavelength
- \(f_x, f_y\): spatial frequencies
- \(z\): propagation distance
See Angular Spectrum Method - Wikipedia and Angular Spectrum Method - LibreTexts for more details.
Note
This task can perform an optional frequency domain filtering step specified by the optional filter setting. See the Filter 2D task documentation for more details on the available filter types and settings.
Note
The optional padding setting centers the input in a larger zero-filled grid before
propagation. The requested width and height must be at least the input dimensions, and the
number of pixels added on each axis must be even.
Inputs¶
This task has a single input tensor of rank 2 or higher. The last two dimensions are the propagated spatial dimensions:
H: height of the input fieldW: width of the input field
Any leading dimensions are treated as batch dimensions. The dtype of the input tensor must be 32-bit real (float32) or complex 32-bit (complex32).
The memory location of the input tensor must be device memory.
Outputs¶
This task has a single complex 32-bit (complex32) output. Without padding, its shape matches the
input. With padding, the last two dimensions are replaced by the requested padded height and width;
all leading batch dimensions are preserved.
The memory location of the output tensor is device memory.
Inplace¶
Without padding, this task has an inplace relationship between its input and output for complex input. Padding and real input require a separate complex output.
Ownership¶
This task does not own any inputs or outputs.
Settings¶
Examples:
| Property | Pattern | Type | Deprecated | Definition | Title/Description |
|---|---|---|---|---|---|
| + lambda | No | number | No | - | Wavelength in meters. Must satisfy: - lambda > 0 |
| + dx | No | number | No | - | Pixel pitch along X in meters. Must satisfy: - dx > 0 - dx == dy |
| + dy | No | number | No | - | Pixel pitch along Y in meters. Must satisfy: - dy > 0 - dy == dx |
| + z | No | number | No | - | Propagation distance in meters. Positive values propagate forward; negative values back-propagate. |
| - filter | No | object | No | - | Optional bandlimiting filter expressed in pixels. Must satisfy: - r_inner >= 0 - r_outer >= r_inner - s_inner >= 0 - s_outer >= 0 |
| - padding | No | object | No | - | Optional centered zero-padding resolution. Target dimensions must fit the input and add an even number of pixels on each axis. |