transfer_function_angular_spectrum
- colibri.optics.functional.transfer_function_angular_spectrum(M, N, pixel_size, wavelengths, distance, device=device(type='cpu'))[source]
The transfer function for the angular spectrum propagation can be written as follows:
\[H(f_x, f_y, \lambda) = e^{\frac{j s 2 \pi}{\lambda} \sqrt{1 - \lambda^2 (f_x^2 + f_y^2)}}\]where \(f_x\) and \(f_y\) are the spatial frequencies, \(\lambda\) is the wavelength, \(s\) is the distance of propagation and \(k\) is the wavenumber.
- Parameters:
M (int) – Resolution at Y axis in pixels.
N (int) – Resolution at X axis in pixels.
pixel_size (float) – Pixel pixel_size in meters.
wavelengths (torch.Tensor) – Wavelengths in meters.
distance (float) – Distance in meters.
device (torch.device) – Device, for more see torch.device().
type (str) – Type of coordinates, can be “cartesian” or “polar”.
- Returns:
Complex kernel in Fourier domain with shape (len(wavelengths), M, N).
- Return type:
torch.Tensor