主要内容

paraxialInfo

Compute paraxial information, including cardinal points, for optical system

Since R2026a

Description

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

info = paraxialInfo(opsys) calculates paraxial information, including cardinal points, for the optical system opsys.

example

info = paraxialInfo(opsys,Wavelengths=wavelengths) specifies the wavelengths at which to compute the paraxial information.

Examples

collapse all

Create an optical system that contains a photographic zoom lens using the createPhotoZoom helper function. The function is attached to this example as a supporting file.

opsys = createPhotoZoom;

Compute the paraxial information, including the cardinal points, for the optical system using the paraxialInfo object function.

info = paraxialInfo(opsys)
info = 
  Paraxial with properties:

               Wavelength: 558
                  FNumber: 2.9212
        NumericalAperture: 0.1687
              FocalLength: 72.0158
          BackFocalLength: 39.0209
          FirstFocalPoint: [0 0 -3.1518]
         SecondFocalPoint: [0 0 182.7418]
      FirstPrincipalPoint: [0 0 68.8640]
     SecondPrincipalPoint: [0 0 110.7259]
      EntrancePupilRadius: 12.3265
    EntrancePupilPosition: [0 0 72.3885]
          ExitPupilRadius: 11.5534
        ExitPupilPosition: [0 0 115.1765]
          AxialPathLength: 143.7209

Display the back focal length, which is the distance between the final surface and the point at which rays converge.

disp("Back Focal Length = " + info.BackFocalLength)
Back Focal Length = 39.0209

Inspect the distance between the final surface and the image plane using the SurfaceTable property of the opticalSystem object opsys.

st = opsys.SurfaceTable;
imagePlaneDist = st.Position(end,3) - st.Position(end-1,3);
disp("Distance between last surface and image plane = " + imagePlaneDist)
Distance between last surface and image plane = 38.9014

Trace marginal rays through the optical system using the traceMarginalRays object function.

mr = traceMarginalRays(opsys,Wavelengths=opsys.PrimaryWavelength);

Display a 2-D visualization of the optical system using the view2d object function. To verify convergence, visualize the traced rays through the optical system using the addRays object function.

hv = view2d(opsys);
addRays(hv,mr)

Figure contains an object of type optics.ui.opticalsystemviewer2d. The chart of type optics.ui.opticalsystemviewer2d has title Photo Zoom.

Input Arguments

collapse all

Optical system for which to compute paraxial information, specified as an opticalSystem object.

Wavelengths at which to compute paraxial information, specified as a positive numeric scalar or an M-element numeric vector. M is the number of wavelengths, and each element of the vector must be a positive numeric scalar representing the wavelength value, in nanometers. By default, this function computes the paraxial information at the primary wavelength of the optical system, represented as opsys.Wavelengths(opsys.PrimaryWavelengthIndex).

Output Arguments

collapse all

Paraxial information, returned as an M-element row vector of Paraxial objects. M is the number of wavelengths.

Note

The paraxialInfo function computes cardinal points with reference to the object plane. All distances and locations are measured from the starting, or object, side of the optical system. In contrast, some conventional optical simulation tools may reference cardinal points to either the object plane or the image plane. When comparing results from the paraxialInfo with those from such tools, differences can arise if the reference planes are not the same, such as interpreting results in image space versus object space.

Limitations

  • For optical systems with a negative focal length, such as systems that produce a virtual image, the paraxialInfo function returns Inf for the entrance and exit pupil positions. Pupil positions are not physically defined for such systems.

Version History

Introduced in R2026a