主要内容

HuygensMTF

R2026b

Huygens modulation transfer function result

Since R2026b

Description

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

A HuygensMTF object stores a wave-optics modulation transfer function (MTF) result for one field point in an optical system. A Huygens MTF is computed from a Huygens point spread function (PSF), including diffraction and phase effects. Use a Huygens MTF when the optical system operates near the diffraction limit or when wave-optics effects are important.

Creation

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

Properties

expand all

This property is read-only.

Tangential MTF data, represented as a structure with spatial frequency and MTF values for the tangential direction. The spatial frequency values are in cycles per millimeter, and the MTF values are stored for each wavelength specified when computing the MTF.

This property is read-only.

Sagittal MTF data, represented as a structure with spatial frequency and MTF values for the sagittal direction. The spatial frequency values are in cycles per millimeter, and the MTF values are stored for each wavelength specified when computing the MTF.

This property is read-only.

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

This property is read-only.

Wavelengths used to compute the MTF, represented as an M-element numeric vector. Each element is a wavelength in nanometers.

Data Types: double

This property is read-only.

FFT size used to compute the optical transfer function from the internal Huygens PSF, represented as a 1-by-2 vector of positive integers. The first element is the number of rows and the second element is the number of columns.

Data Types: double

Object Functions

contrastAtFrequencyCompute MTF contrast at spatial frequencies
frequencyAtContrastCompute spatial frequency at MTF contrast level
showPlot analysis result

Examples

collapse all

Load the sample Double Gauss lens system using zmximport.

opsys = zmximport("DoubleGaussLens.zmx");

Compute the Huygens MTF across all default system field points and wavelengths. Set the Method name-value argument to "Huygens" to enable wave-optics propagation modeling.

mtfr = mtf(opsys, Method="Huygens")
mtfr = 1×3 HuygensMTF array with properties:
    Tangential
    Sagittal
    FieldPoint
    Wavelengths
    FFTLength

Because mtfr is an array of objects, access a single field point by its index before querying nested structural data. Extract the tangential spatial frequency and its corresponding multi-wavelength contrast matrix for the first field point.

% Isolate the MTF result object for the first field point (e.g., on-axis field)
targetFieldMTF = mtfr(1);

% Access the nested properties of the single result object
spatialFreqTan = targetFieldMTF.Tangential.SpatialFrequency;
tangentialMTF  = targetFieldMTF.Tangential.MTF;

Load the sample Double Gauss lens system using zmximport. Compute the Huygens MTF across all preconfigured field points in the system. Set MaximumFrequency to 150 cycles/mm to restrict the evaluation domain, and specify an FFTLength of 512 to achieve denser, high-resolution frequency sampling for smoother curve rendering.

opsys = zmximport("DoubleGaussLens.zmx");
mtfr = mtf(opsys, Method="Huygens", MaximumFrequency=150, FFTLength=512);

Visualize the complete spatial frequency performance using the show method. Because mtfr contains data for multiple field points, the function automatically generates a tiled layout with linked axes, displaying one subplot per field point.

hMTF = show(mtfr);
hMTF.Title = "Double Gauss System: Huygens MTF Performance";
hMTF.Grid = "major";

Visualize the complete spatial frequency performance using the show method. Because mtfr contains data for multiple field points, the function automatically generates a tiled layout with linked axes, displaying one subplot per field point.

More About

expand all

Version History

Introduced in R2026b