• 大小: 6KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-15
  • 语言: Matlab
  • 标签: Zernike  

资源简介

常用的Zernike多项式数据拟合,波前计算,像并计算Matlab代码

资源截图

代码片段和文件信息

function z = zernfun(nmrthetanflag)
%ZERNFUN Zernike functions of order N and frequency M on the unit circle.
%   Z = ZERNFUN(NMRTHETA) returns the Zernike functions of order N
%   and angular frequency M evaluated at positions (RTHETA) on the
%   unit circle.  N is a vector of positive integers (including 0) and
%   M is a vector with the same number of elements as N.  Each element
%   k of M must be a positive integer with possible values M(k) = -N(k)
%   to +N(k) in steps of 2.  R is a vector of numbers between 0 and 1
%   and THETA is a vector of angles.  R and THETA must have the same
%   length.  The output Z is a matrix with one column for every (NM)
%   pair and one row for every (RTHETA) pair.
%
%   Z = ZERNFUN(NMRTHETA‘norm‘) returns the normalized Zernike
%   functions.  The normalization factor sqrt((2-delta(m0))*(n+1)/pi)
%   with delta(m0) the Kronecker delta is chosen so that the integral
%   of (r * [Znm(rtheta)]^2) over the unit circle (from r=0 to r=1
%   and theta=0 to theta=2*pi) is unity.  For the non-normalized
%   polynomials max(Znm(r=1theta))=1 for all [nm].
%
%   The Zernike functions are an orthogonal basis on the unit circle.
%   They are used in disciplines such as astronomy optics and
%   optometry to describe functions on a circular domain.
%
%   The following table lists the first 15 Zernike functions.
%
%       n    m    Zernike function           Normalization
%       --------------------------------------------------
%       0    0    1                                 1
%       1    1    r * cos(theta)                    2
%       1   -1    r * sin(theta)                    2
%       2   -2    r^2 * cos(2*theta)             sqrt(6)
%       2    0    (2*r^2 - 1)                    sqrt(3)
%       2    2    r^2 * sin(2*theta)             sqrt(6)
%       3   -3    r^3 * cos(3*theta)             sqrt(8)
%       3   -1    (3*r^3 - 2*r) * cos(theta)     sqrt(8)
%       3    1    (3*r^3 - 2*r) * sin(theta)     sqrt(8)
%       3    3    r^3 * sin(3*theta)             sqrt(8)
%       4   -4    r^4 * cos(4*theta)             sqrt(10)
%       4   -2    (4*r^4 - 3*r^2) * cos(2*theta) sqrt(10)
%       4    0    6*r^4 - 6*r^2 + 1              sqrt(5)
%       4    2    (4*r^4 - 3*r^2) * cos(2*theta) sqrt(10)
%       4    4    r^4 * sin(4*theta)             sqrt(10)
%       --------------------------------------------------
%
%   Example 1:
%
%       % Display the Zernike function Z(n=5m=1)
%       x = -1:0.01:1;
%       [XY] = meshgrid(xx);
%       [thetar] = cart2pol(XY);
%       idx = r<=1;
%       z = nan(size(X));
%       z(idx) = zernfun(51r(idx)theta(idx));
%       figure
%       pcolor(xxz) shading interp
%       axis square colorbar
%       title(‘Zernike function Z_5^1(r\theta)‘)
%
%   Example 2:
%
%       % Display the first 10 Zernike functions
%       x = -1:0.01:1;
%       [XY] = meshgrid(xx);
%       [theta

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     文件        6369  2006-11-13 12:56  zernpol.m
     文件        2562  2006-11-13 12:57  zernfun2.m
     文件        6652  2006-11-13 12:57  zernfun.m

评论

共有 条评论