-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update documentation, brief notes on the v2.0.0 release
So I've left both the original radial coefficient function and the original aperture scaling algorithm in without exporting them. They serve as comparisons and sanity checks and so it doesn't hurt to keep them. For scaling under low order aberrations, the ScaleAperture algorithm based on Janssen & Dirksen's formula matches the TransformAperture algorithm based on Lundström & Unsbo's paper in terms of accuracy and is comparable in terms of speed, but for high orders and larger numbers of aberrations the TransformAperture algorithm is not only much faster, but also more accurate; this can be tested by generating a random set of expansion coefficients along with a set of corresponding Zernike model functions in order to compare. I suspect that because the ScaleAperture algorithm has to evaluate the radial polynomials it's susceptible to floating point errors, especially since for high orders the aberrations are concentrated near the edges of the pupil and so for scaling factors very close to 1 the errors end up propagating such that the new expansion coefficients reflect a very different wavefront, even in the region of the pupil which is unclipped. The matrix formulation doesn't suffer from this, and since it uses the radial coefficients directly (which are computed accurately) it's much more robust. Its implementation isn't the prettiest (due to the transform chaining optimization), but it gets the job done.
- Loading branch information
Showing
3 changed files
with
148 additions
and
39 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.