OAM_KIST package

Submodules

OAM_KIST.holography module

OAM_KIST.holography.encode_hologram(Amp, Phase, X, Y, pixel_pitch, d, N_steps=0, M=1, prepare=False, measure=False, save=False, path='', name='')[source]

phase mask for given amplitude and phase map of superimposed OAM mode.

입력받은 위상, 진폭 정보를 논문 공식에 대입하여 이 상태를 인코딩하는 SLM 홀로그램을 생성합니다. Fundamental Gaussian 모드와의 분리를 위해서 간격이 d 픽셀인 그레이팅이 적용됩니다. 상태 준비에 사용될지, 측정에 사용될지에 따라서 그레이팅의 방향이 바뀝니다. 변수 parity가 이것을 반영합니다. 생성된 홀로그램을 저장할 수 있습니다.

Parameters:
  • Amp (np.ndarray[float]) – amplitude map of superimposed OAM mode. 0. <= *Amp <= 1.

  • Phase (np.ndarray[float]) – phase map of superimposed OAM mode. -pi < *Phase <= pi

  • X (np.ndarray[float]) – x dependent meshgrid.

  • Y (np.ndarray[float]) – y dependent meshgrid.

  • pixel_pitch (float) – pixel size. specified at device document

  • d (float) – grating width. dimension in # of pixel

  • N_steps (float) – number of steps per grating with period d. N_steps=0 is equal to N_steps=d (continuous)

  • M (int) – phase depth. M is basically 1

  • prepare (bool) – decide whether to prepare.

  • measure (bool) – decide whether to measure.

  • save (bool) – decide whether to save.

  • path (string) – directory path for images. needed only when arg save is True

  • name (string) – filename of this image. needed only when arg save is True

Returns:

returns carculated hologram. if arg save is False(default), a hologram in numpy ndarray. And if not, hologram is saved in the directory addording to arg path.

Return type:

np.ndarray[float] or None

Example

>>> res = [1920, 1080]
>>> pixel_pitch = 8e-1
>>> beam_w0 = 0.8e-3
>>> l_modes = [-3, -1, 1, 3]
>>> weights = [0.4, 0.03, 0.07, 0.5]
>>> amp, phase, X, Y = generate_oam_superposition(res, pixel_pitch, beam_w0, l_modes, weights)
>>> encode_hologram(amp, phase, X, Y, pixel_pitch, 16, 0, prepare=True, save=True, path="./images", name="l8_dim16")
OAM_KIST.holography.generate_oam_superposition(res, pixel_pitch, beam_w0, l_modes, weights)[source]

Creat E field of superimposed OAM mode (Interferogram method)

Parameters:
  • res (list[int]) – resolution of SLM. [x resolution, y resolution]

  • pixel_pitch (float) – pixel size. specified at device document

  • beam_w0 (float) – beam-waist at z=0.

  • l_modes (list[int]) – selected l indices for superposion. list with length 1 for eigen mode

  • weights (list[float]) – weights for selected l modes.

Returns:

information about E field and meshgrid i.e. superimosed

Return type:

np.ndarray[float], np.ndarray[float], np.ndarray[float], np.ndarray[float]

Example

>>> res = [1920, 1080]
>>> pixel_pitch = 8e-1
>>> beam_w0 = 0.8e-3
>>> l_modes = [-3, -1, 1, 3]
>>> weights = [0.4, 0.03, 0.07, 0.5]
>>> amp, phase, X, Y = generate_oam_superposition(res, pixel_pitch, beam_w0, l_modes, weights)

Module contents

OAM_KIST.encode_hologram(Amp, Phase, X, Y, pixel_pitch, d, N_steps=0, M=1, prepare=False, measure=False, save=False, path='', name='')[source]

phase mask for given amplitude and phase map of superimposed OAM mode.

입력받은 위상, 진폭 정보를 논문 공식에 대입하여 이 상태를 인코딩하는 SLM 홀로그램을 생성합니다. Fundamental Gaussian 모드와의 분리를 위해서 간격이 d 픽셀인 그레이팅이 적용됩니다. 상태 준비에 사용될지, 측정에 사용될지에 따라서 그레이팅의 방향이 바뀝니다. 변수 parity가 이것을 반영합니다. 생성된 홀로그램을 저장할 수 있습니다.

Parameters:
  • Amp (np.ndarray[float]) – amplitude map of superimposed OAM mode. 0. <= *Amp <= 1.

  • Phase (np.ndarray[float]) – phase map of superimposed OAM mode. -pi < *Phase <= pi

  • X (np.ndarray[float]) – x dependent meshgrid.

  • Y (np.ndarray[float]) – y dependent meshgrid.

  • pixel_pitch (float) – pixel size. specified at device document

  • d (float) – grating width. dimension in # of pixel

  • N_steps (float) – number of steps per grating with period d. N_steps=0 is equal to N_steps=d (continuous)

  • M (int) – phase depth. M is basically 1

  • prepare (bool) – decide whether to prepare.

  • measure (bool) – decide whether to measure.

  • save (bool) – decide whether to save.

  • path (string) – directory path for images. needed only when arg save is True

  • name (string) – filename of this image. needed only when arg save is True

Returns:

returns carculated hologram. if arg save is False(default), a hologram in numpy ndarray. And if not, hologram is saved in the directory addording to arg path.

Return type:

np.ndarray[float] or None

Example

>>> res = [1920, 1080]
>>> pixel_pitch = 8e-1
>>> beam_w0 = 0.8e-3
>>> l_modes = [-3, -1, 1, 3]
>>> weights = [0.4, 0.03, 0.07, 0.5]
>>> amp, phase, X, Y = generate_oam_superposition(res, pixel_pitch, beam_w0, l_modes, weights)
>>> encode_hologram(amp, phase, X, Y, pixel_pitch, 16, 0, prepare=True, save=True, path="./images", name="l8_dim16")
OAM_KIST.generate_oam_superposition(res, pixel_pitch, beam_w0, l_modes, weights)[source]

Creat E field of superimposed OAM mode (Interferogram method)

Parameters:
  • res (list[int]) – resolution of SLM. [x resolution, y resolution]

  • pixel_pitch (float) – pixel size. specified at device document

  • beam_w0 (float) – beam-waist at z=0.

  • l_modes (list[int]) – selected l indices for superposion. list with length 1 for eigen mode

  • weights (list[float]) – weights for selected l modes.

Returns:

information about E field and meshgrid i.e. superimosed

Return type:

np.ndarray[float], np.ndarray[float], np.ndarray[float], np.ndarray[float]

Example

>>> res = [1920, 1080]
>>> pixel_pitch = 8e-1
>>> beam_w0 = 0.8e-3
>>> l_modes = [-3, -1, 1, 3]
>>> weights = [0.4, 0.03, 0.07, 0.5]
>>> amp, phase, X, Y = generate_oam_superposition(res, pixel_pitch, beam_w0, l_modes, weights)