Optical Point Spread Function generator (with aberrations)

3D PSF of a microscopy objective starting Focal length, stop size and numerical aperture. Includes Aberrations, and illumination properties.
20 Downloads
Updated 19 Sep 2024

View License

Point Spread Function Generator in real space (without using fourier transform) the algorithm employs the generation of plane waves from the pupil plane. To ensure performance, instead of sampling all points in the pupil plane a random subset of point sources is selected. PSF is printed in an area much smaller than the total pupil size Optical system () is designed from stop size numerical aperture e refractive index in the medium.
PtsS: number of points composing the side of the PSF stamp
PixSzS: fisical size of the pixel in the PSF plane.
StopRadius; Radius of the objective pupil
NA: numerical aperture of the objecive in millimeters
RefInd: refractive index of the objective-sample medium
Wav: wavelength in microns
ZSm: z position (z axis parallel to the axis of simmetry of the objective) in microns: 0 correspond to the focus of the objective. a
negative value corresponds to a z position close to the objective plane
Zrn_Coeff: a vector containing the coefficients of the first 5 Zernike
coefficents: from the first to the last:
Vertical astigmatism*; Oblique astigmatism*; Defocus*; horizontal Coma*; vertical Coma*
Example values for an human eye are NA =0.035; RefInd=1.33; StopRadius=1500;
requires zernfun to generate the abberration-related phase masks function
by Paul Fricker https://it.mathworks.com/matlabcentral/fileexchange/7687-zernike-polynomials
by activation of the various sub-modules (non documented) it is possible to simulate a
gaussian beam (impinging on the objective) or a lens.
Author: Marco Leonetti
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Citation for this code/algorithm or any of its parts:
Marco Leonetti https://mlphotonics.wordpress.com/
% The code is written by Marco Leonetti, September, 2024
% marco.leonetti(at)iit.it
% Matlab version for this code is R2019b

Cite As

Marcoleonetti1 (2024). Optical Point Spread Function generator (with aberrations) (https://www.mathworks.com/matlabcentral/fileexchange/172875-optical-point-spread-function-generator-with-aberrations), MATLAB Central File Exchange. Retrieved .

MATLAB Release Compatibility
Created with R2019b
Compatible with any release
Platform Compatibility
Windows macOS Linux
Acknowledgements

Inspired by: Zernike polynomials

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Version Published Release Notes
1.0.0