transfer_function_fresnel
- colibri.optics.functional.transfer_function_fresnel(M, N, pixel_size, wavelengths, distance, device=device(type='cpu'))[source]
The transfer function for the Fresnel propagation can be written as follows:
\[H(f_x, f_y, \lambda) = e^{j k s \left(1 - \frac{\lambda^2}{2} (f_x^2 + f_y^2)\right)}\]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 N 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().
- Returns:
Complex kernel in Fourier domain with shape (len(wavelengths), M, N).
- Return type:
torch.Tensor