Contenido principal

HuygensPSF

R2026b

Huygens point spread function result

Since R2026b

Description

Add-On Required: This feature requires the Optical Design and Simulation Library for Image Processing Toolbox add-on.

A HuygensPSF object stores a wave-optics point spread function (PSF) result for one field point in an optical system. A Huygens PSF includes diffraction and phase effects. Use a Huygens PSF when you need wave-optics image quality metrics such as Strehl ratio.

Creation

Create a HuygensPSF object by using the psf object function of an opticalSystem object. To return a HuygensPSF object, specify the Method name-value argument as "Huygens".

Properties

expand all

This property is read-only.

PSF intensity image, represented as an M-by-N-by-K numeric array. M is the number of image rows, N is the number of image columns, and K is the number of wavelengths specified when computing the PSF. The Huygens PSF image is normalized to the ideal diffraction-limited peak intensity.

Data Types: double

This property is read-only.

Field point for which the PSF is computed, represented as a FieldAngle object or a FieldPosition object.

This property is read-only.

Wavelengths used for PSF computation, represented as a K-element numeric vector. Each element is a wavelength in nanometers.

Data Types: double

This property is read-only.

Reference wavelength for centering the PSF image, represented as a positive scalar in nanometers.

Data Types: double

This property is read-only.

Physical extent of the PSF image in the image-plane coordinate system, represented as a 1-by-4 numeric vector of the form [x y w h], in millimeters. The image-plane coordinate system is centered at [0 0]. x and y specify the location of the extent relative to this coordinate system, and w and h specify the width and height.

Data Types: double

This property is read-only.

Option to center the PSF image on the chief ray hit position of the reference wavelength, represented as a logical 1 (true) or 0 (false).

Data Types: logical

Object Functions

strehlRatioCompute Strehl ratio of Huygens PSF
centroidCompute centroid of point spread function
ellipticityCompute ellipticity of point spread function
encircledEnergyAtRadiusCompute encircled energy of point spread function
radiusAtEncircledEnergyCompute radius at encircled PSF energy
showPlot analysis result
showEncircledEnergyPlot encircled energy of point spread function

Examples

collapse all

Load the sample Double Gauss lens system using zmximport. Define a field point at an angle of 4 degrees along the x-axis and specify a wavelength of 587.56 nm.

opsys = zmximport("DoubleGaussLens.zmx");
fp = fieldPoint(Angles=[4 0]);
lambda = 587.56;

Compute the diffraction-based Huygens PSF for the specified field point and wavelength by setting the Method name-value argument to "Huygens". Use the class function to confirm that the output psfr is a HuygensPSF object.

psfr = psf(opsys, FieldPoints=fp, Wavelengths=lambda, Method="Huygens");
objType = class(psfr)
objType = 
'optics.result.HuygensPSF'

Load the sample Double Gauss lens system using zmximport. Define a field point at an angle of 4 degrees along the x-axis, set the wavelength to 587.56 nm, and compute the Huygens PSF.

opsys = zmximport("DoubleGaussLens.zmx");
fp = fieldPoint(Angles=[4 0]);
lambda = 587.56;
psfr = psf(opsys, FieldPoints=fp, Wavelengths=lambda, Method="Huygens");

Use the Huygens PSF result object, psfr, to extract diffraction performance metrics. Calculate the centroid position, the spatial ellipticity of the spot profile, the fraction of total energy contained within a radius of 0.01 units, and the radial boundary that encapsulates 80% of the energy.

centroidLocation = centroid(psfr);
epsilon = ellipticity(psfr);
energyAtRadius = encircledEnergyAtRadius(psfr, 0.01);
radius80 = radiusAtEncircledEnergy(psfr, 0.8);

More About

expand all

Version History

Introduced in R2026b