ZernikeCompose is part of the WaveTrain system class library.
ZernikeCompose generates a sum of Zernike polynomials. Several ordering schemes and normalization schemes can be selected by choosing appropriate parameters. ZernikeCompose will regenerate the phase fitted by ZernikeDecompose when using the coefficients generated by ZernikeDecompose along with the same ordering and normalization schemes.
Possible normalization schemes selected by the 'normalization' parameter are: 0 - no normalization; 1 - normalize the overlap integral to 1/pi (1/area with unit circle); 2 - unity phase variance; 3 - Noll/Malacara, unity overlap integral. 0 (no normalization) is the default due to backward compatibility considerations, but 3 (Noll/Malacara) will typically be an appropriate choice.
All ordering schemes start with tilts and progress through higher order radial terms, but differ in the ordering of azimuthal terms within each radial order. Possible orderings selectable via the 'orderingScheme' parameter are: 0 - deprecated; 1 - Noll's ordering; 2 - Malacara's ordering. 0 (deprecated) is the default due to backward compatibility considerations, but 2 or 3 (Noll or Malacara) will typically be an appropriate choice.
Note on ANSI Z80.28-2004; use normalization=3 and orderingScheme=2: The Noll/Malacara normalization is used and the MZA (reversed Malacara) ordering us used. However, the choice of cos() or sin() angular terms is also swapped so the actual sequence is identical to Malacara: ANSI Z_n^m == Malacara Z_n^{-L}. This ignores the alternative angle/rotation definition chosen for the ANSI standard, but does not change the orthornormal properties of the polynomials.
Note on Born-Wolf: No normalization is applied (normalization=0); all radial terms evaluate to unity at the edge of the Zernike circle. There is no 1-parameter ordering so they cannot be generated directly with ZernikeCompose.
|
Parameters
|
zernikeRadius |  float | Radius of the Zernike polynomials (m) | 1.0f |
normalization |  int | 0-no normalization; 1-normalize to overlap integral=1/pi; 2-make the PV=1.0;3-Noll/Malacara | 0 |
applyAperture |  bool | Flag used to turn on and off the aperture at the Zernike radius | false |
orderingScheme |  int | 0-deprecated;1-Noll;2-Malacara | 0 |
Inputs
|
coefficients |  Vector<float> | Vector of coefficients of the Zernike terms; the length of this vector determines the number of Zernikes being represented | ZeroVecF(3) |
xc |  float | Center of Zernike circle in X (m) | 0.0 |
yc |  float | Center of Zernike circle in Y (m) | 0.0 |
referenceGrid |  Grid<float> | Used to specify the output grid parameters. To specify them manually, use gwoom(nx,ny,dx,dy) or GridGeometry( nx, ny, dx, dy, xCenter, yCenter) | gwoom(256,0.001) |
Outputs
|
phaseScreen |  Grid<float> | Phase of complex field (rad) | |
Subsystems |
|
|
Last Saved: Tue Oct 21 11:13:21 MDT 2008 by TVE version 2009B
|
|