prysm.x.sri#

Self-Referenced Interferometer.

prysm.x.sri.to_photonic_fiber_and_back(self, efl, Efib, fib_dx, Ifibsum, executor=None, shift=(0, 0), phase_shift=0, return_more=False)#

Propagate to a focal plane mask, apply it, and return.

This routine handles normalization properly for the user.

To invoke babinet’s principle, simply use to_fpm_and_back(fpm=1 - fpm).

Parameters:
  • efl (float) – focal length for the propagation

  • fpm (Wavefront or ndarray) – the focal plane mask

  • fib_dx (float) – sampling increment in the focal plane, microns; do not need to pass if fpm is a Wavefront

  • executor (MDFT, optional) – precomputed bidirectional transform operator. If None, defaults are built per call.

  • shift (tuple of float, optional) – shift in the image plane to go to the FPM appropriate shift will be computed returning to the pupil

  • return_more (bool, optional) – if True, return (new_wavefront, field_at_fpm, field_after_fpm) else return new_wavefront

Returns:

new wavefront, [field at fpm, field after fpm]

Return type:

Wavefront, Wavefront, Wavefront

class prysm.x.sri.SelfReferencedInterferometer(x, y, efl, epd, wavelength, fiber_V=2.3, fiber_b=0.5, fiber_a=0.975, fiber_samples=256, beamsplitter_RT=(0.8, 0.2))#

Bases: object

Self-Referenced Interferometer.

Create a new Self-Referenced Interferometer.

Parameters:
  • x (ndarray) – x coordinates for arrays that will be passed to forward_model not normalized

  • y (ndarray) – y coordinates for arrays that will be passed to forward_model not normalized

  • efl (float) – focal length in the focusing space behind the grating

  • epd (float) – entrance pupil diameter, mm

  • wavelength (float) – wavelength of light, um

  • pinhole_diameter (float) – diameter of the pinhole placed at the m=0 focus

  • pinhole_samples (int) – number of samples across the pinhole placed at the m=0 focus

  • beamsplitter_RT (tuple of float) – [R]eference, [T]est arm beamsplitter transmisivities (big R / big T, power). Needed to balance ref/test beam power.

forward_model(wave_in, phase_shift=0, debug=False)#

Perform a forward model, returning the intensity at the detector plane.

Parameters:
  • wave_in (ndarray) – complex wavefunction present at the input to the interferometer

  • phase_shift (float) – phase shift, modulo 2pi, if any

  • debug (bool) – if True, returns a dict with the fields in the ref arm, before and after interacting with the interferometer components

Returns:

intensity at the camera

Return type:

prysm._richdata.RichData