True MTF

True MTF

FFT or Huygens

OpticStudio can accurately calculate the MTF of an optical system, either using the FFT MTF or Huygens MTF method. The few main differences between FFT and Huygens are:

  • Speed (FFT is faster)
  • Accuracy (Huygens is considered the "gold standard")
  • Calculation plane (FFT is calculated in the pupil, Huygens is calculated at the image plane)

For both calculations, OpticStudio needs to perform the following calculations:

  1. Ray trace from Object to Image
  2. Back propagate rays from Image to Exit Pupil (applying a correction term if needed)
  3. Calculate the Optical Path Difference (OPD)/Wavefront Map
  4. Calculate the PSF grid on an X/Y Cartesian coordinate system using the defined algorithm
  5. Take the 2D Fourier Transform of the PSF

2D FFT

In Step 5, the 2D FFT is simply two 1D FFTs taking either the FFT of the rows and then the columns or the columns and then the rows (the order doesn't matter). There is no ability to take the FFT along an arbitrary diagonal and this is where the issue for OpticStudio comes into play.

Taking the 2D FFT is fine when the fields are aligned only along the X or Y axis because these axes correspond to the Sagittal and Tangential MTF slices. However, when you have a field point with both X and Y values, then your PSF will be rotated but OpticStudio will still provide the 2D FFT along the rows & columns. This means you are only getting the true sagittal (pointing towards the center of the image; spokes of a wheel) and tangential (perpendicular to sagittal; rim of a wheel) when a field point is on the Y (or X axis if you switch the MTF curves).

Rotate The Field

The simple solution is to calculate the radial value of the field and "rotate" your diagonal field back to the Y axis. When the

This works for a rotationally symmetric nominal system but it is not a representative solution for a toleranced Monte Carlo system. Once you tolerance a lens system, you add non-symmetric perturbations such as tilt, decenter, and surface irregularity. If you just rotate the diagonal field, the rays from this new field point won't "see" the same perturbations as the original field point. Based on the operands in your Tolerance Data Editor, this newly created field/system combination might not even be realistic.

Rotate The System

The solution to simply rotating the field is to rotate the whole system so all the perturbations rotate as well.

To determine the correct amount of rotation, you'll simply need to convert the Cartesian coordinates to polar coordinates:

Make sure to use atan2 so you have a valid rotation angle for all 4 quadrants.

In order to rotate the system, you can use the Coordinate Break surface in OpticStudio. It is recommended that when you use Coordinate Breaks, you should use the Tilt/Decenter Element tool in the Lens Data Editor's toolbar because this automates the process of tilting/un-tilting surfaces in the proper order:

The theta rotation angle should be entered as the Tilt Z (clocking) value.

Ray Aiming Issue

Everything seemed simple up to this point but like most complex topics in OpticStudio, there is a caveat. When you use Ray Aiming, the algorithm has a hard-coded assumption that the field plane and the Stop plane are not rotated. If you rotate the Stop surface more than several degrees, you'll get a Cannot determine object coordinates! error. So, the solution is to isolate the Stop and use either 2 (front aperture) or 4 (embedded aperture) Coordinate Breaks to rotate only the glass elements but to not rotate the Stop itself.

For most systems, the Stop will already be modeled as an independent surface representing the limiting aperture of the system (typically a mechanical aperture or iris). For systems that place the Stop on a lens surface itself, you will need to move the Stop to a new surface. The following steps allow you to rotate the system without errors:

  1. Calculate the field's radial position r and rotation angle theta
  2. Move the field to the position (0, r)
  3. Use the Tilt/Decenter Element tool to add the appropriate number of Coordinate Breaks. Make sure the Stop surface is not inside a Coordinate Break
  4. Use the theta value for the Tilt Z value

The following is what the Lens Data Editor should look like for the Double Gauss 28 degree field.zmx sample file:

Note that the Stop is not inside a Coordinate Break pair. I also like to use a Pickup Solve on Surface 10 to tie it back to Surface 1 so if you create a ZOS-API script, the second Coordinate Break pair will follow the first Coordinate Break pair.

Metrology

The main reason why you might want to get the True MTF is a lot of MTF metrology devices such as those from TRIOPTICS, Optikos, or Keyence will have fixed camera positions that do not align to the X & Y axes. These MTF metrology devices will report the actual Sagittal and Tangential MTF curves. Therefore, after a Monte Carlo analysis, being able to properly simulate the True MTF and being able to predict the manufacturing yield as it will be measured at the factory is important.

Sami Zhrdne

Physicist/Optical Engineer | Imaging/Illumination/ laser systems design

3 个月

Nice, thanks for sharing!

回复

要查看或添加评论,请登录

Michael Humphreys的更多文章

  • Zemax OpticStudio Monte Carlo Thermal Analysis

    Zemax OpticStudio Monte Carlo Thermal Analysis

    Mechanical Change Zemax OpticStudio provides a robust first-order thermal analysis that looks at both the linear…

    1 条评论
  • Why Should I Reverse a Sequential Design

    Why Should I Reverse a Sequential Design

    OpticStudio only knows how to trace rays from "left to right". Or in more technical terms, OpticStudio only knows the…

    5 条评论
  • When To Use Ray Aiming

    When To Use Ray Aiming

    This article will talk about what Ray Aiming is, when to use it and some recommendations if you get errors. Summary The…

    3 条评论
  • ZOS-API: IBatchRayTrace & Ray Aiming

    ZOS-API: IBatchRayTrace & Ray Aiming

    For those who have used sequential ray tracing in the ZOS-API, you know there are 4 main types of sequential ray…

  • OpticStudio Coherent Power

    OpticStudio Coherent Power

    OpticStudio non-sequential mode is extremely powerful and accurate when calculating the coherent (interference) power…

  • Visualize Gaussian Beam Envelope in Sequential Mode

    Visualize Gaussian Beam Envelope in Sequential Mode

    OpticStudio has several specific analysis features to model different aspects of a sequential optical design, such as…

  • Advanced ZPL using BAT files

    Advanced ZPL using BAT files

    The Zemax Programming Language (ZPL) is an extremely powerful scripting language for use inside of OpticStudio. On the…

  • Rayleigh Resolution Criteria for PSF

    Rayleigh Resolution Criteria for PSF

    In perfect geometric optics, a point source is imaged to a perfect point. In order to achieve this perfect imaging, the…

    2 条评论
  • What Are Vignetting Factors?

    What Are Vignetting Factors?

    As a basic explanation, OpticStudio launches from a point source a circular grid of rays into the Entrance Pupil (EP)…

  • Modeling Refractive Index

    Modeling Refractive Index

    When tolerancing in OpticStudio, it is important to take into account both the manufacturing defects of individual…

    1 条评论

社区洞察

其他会员也浏览了