/ASASM

Modeling Off-Axis Diffraction with Least-Sampling Angular Spectrum Method

Primary LanguagePython

LS-ASM

This repository provides the official open-source code of the following paper:

Modeling off-axis diffraction with least-sampling angular spectrum method
Haoyu Wei*, Xin Liu*, Xiang Hao, Edmund Y. Lam, Yifan Peng
Paper, Project page
Correspondence: Dr. Peng and Prof. Lam. For implementation and experiment details please contact Haoyu (haoyu.wei97@gmail.com).

principle

Quick start

This repository contains implementations of LS-ASM and Rayleigh-Sommerfeld algorithms, with spherical wave input and thin lens and diffuser modulations.

Prerequisites

Create a conda environment from yml file:

conda env create -f environment.yml

If you are running on a GPU, please install a PyTorch version that matches the Cuda version on your machine.

Config and Run

Configurations are in main.py.
Run and find results in the results folder.

python main.py

Performance

We display LS-ASM speedup along 0 - 20 degrees of incident angles.
results

Diffuser results closely resemble RS.
diffuser

Citation

If you use this code and find our work valuable, please cite our paper.

@article{Wei:23,
title       = {Modeling Off-Axis Diffraction with the Least-Sampling Angular Spectrum Method},
author      = {Haoyu Wei and Xin Liu and Xiang Hao and Edmund Y. Lam and Yifan Peng},
journal     = {Optica},
volume      = {10}, number = {7}, pages = {959--962},
publisher   = {Optica Publishing Group},
year        = {2023}, 
month       = {Jul}, 
doi         = {10.1364/OPTICA.490223}
}

License

Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial 4.0 International License.