光ラーニングは、「光学」をテーマに様々な情報を発信する光源を目指しています。情報源はインターネットの公開情報と、筆者の多少の知識と経験です。 このページでは、光学業界全体で広く活用されているゼルニケ多項式に関連して、Zemax OpticStudioでも使用されているゼルニケ標準多項式について説明します。
結論
- ゼルニケ標準面の定義式はNollの論文で確認でき、動径方向の次数nと円周方向の周波数mの2つのパラメータによって多項式を計算可能です。
- 多項式の順番jは、nとmを変数としたの関数によって決まります。この関数の違いによって、ゼルニケ標準、ゼルニケフリンジ、OSA/ANSIでは現れるサグ形状の順番が異なります。
このページの使い方
ゼルニケ多項式に関する技術情報はインターネット検索でたくさん入手することができます。しかし、OpticStudioに搭載されているゼルニケ面に関する機能と関連付けて理解するのは少し手間です。
このページでは、ゼルニケ多項式の数学的な意味にはあまり踏み込まず(踏み込めず)、OpticStudioで使用できるゼルニケ面の数式と多項式の順番について、筆者の理解の範囲で説明します。
ある光学エンジニアの困りごと
「OpticStudioで自由曲面を使いたい。光学分野では、どうやらゼルニケ多項式なるものが広く用いられているらしい。OpticStudioで使用できる面タイプにも”ゼルニケ”が含まれるものが複数ある。まずはヘルプファイルで、どんな面なのか確認しよう。」
・ ”ゼルニケ標準サグ”をヘルプシステムで検索して、定義式を確認。サグの数式は下の通りで、標準面+偶数次非球面項+ゼルニケ多項式項の3パーツで構成されていることを理解。
・ 最後のゼルニケ多項式は「ゼルニケ標準多項式」と呼ばれる定義を採用している。正規化半径ρを動径座標、φを角度座標にとる極座標系であることを確認。なお、正規化半径については 正規化半径(Normalization Radius)ってなに? を参照してください。
・ ゼルニケ標準多項式の詳細については「ゼルニケ標準係数」のページに説明があるとのことで、ゼルニケ標準係数のページに遷移。
・ ゼルニケ標準係数のページにて、サグ形状はNollが示した「Zernike polynomials and atmospheric turbulance」を引用していることを確認[1]。インターネットを検索すると、この論文はオフィシャルには OPTICAのページ から入手できそう。ひとまず、ヘルプを読み進めることに。
・ ゼルニケ標準多項式が28番目まで記載されており、複雑な数式との感想。残念ながら、元の数式であったり、順番規則についてはNollの論文の参照が求められる。
・ OpticStudioには、ゼルニケ標準面以外にもゼルニケフリンジ面、ゼルニケ環状面なる亜種の面タイプも存在し、それらは似ているが異なる数式と順番のルールがあることを理解。
ここで、目の前の差し迫ったタスクを優先して、所望の結果が得られるように操作はできました。しかし、OpticStudioに搭載されたゼルニケ面の定義に不明瞭な部分を残していました。
このような筆者と同じような状況を経験した方、今まさにその状況にある方もいるのではないでしょうか。要するに、ゼルニケに関する情報がよくまとまった場所があればなぁ、という期待です。
ゼルニケ標準サグ(位相)面の定義式 (Zernike Standard Sag / Phase Surface)
ヘルプにもある通り、ゼルニケ標準面で使用されるゼルニケ多項式はゼルニケ標準多項式と呼ばれ
、いくつかあるゼルニケ多項式の1種です。Nollの論文から、その定義式を以下に示します。複雑なのは、動径方向の数式になります。
nは動径方向のべき数(Radial order)を定義します。mは円周方向の周波数(Azimuthal frequency)を定義します。nとmはどちらも整数で、いくつかの条件を満たした組み合わせしか多項式が存在しません。
後述しますが、nとmの組み合わせによって、ゼルニケ多項式の順番jが決まります。数式はその順番jによって数式が変化するため、nとmの組み合わせが何j番目になるか知る必要があります。
ゼルニケ標準多項式の計算例
この数式だけを見ていても、ヘルプの表に示された多項式に結び付けて考えるのは難しいので、nとmの組み合わせの計算例を2つ示します。
n=2, m=0 の場合。m=0なので、図 108-3の上から3番目のcosもsinもない数式になります。ちなみに、後述の順番決めのルールによってj=4になります。
n=2, m=-2の場合。後述の順番決めのルールでj=5 (奇数)になるので、図 108-3の1番上、cosがついた数式になります。シグマの計算がs=0だけになるので、動径方向の多項式の計算は容易です。
得られた多項式をヘルプの表(図108-2)と比較すると、確かに対応した数式がありました。もっと高い次数の例も計算できそうですが、手計算では動径方向の式に手間がかかるのでここまでとします。ご興味ある方は、ぜひ高次の項までトライしてみてください。
OpticStudio ゼルニケ標準サグ面の設定例
OpticStudioのゼルニケ標準サグ面を用いて、定義される面形状を確認します。上の例で示した、ゼルニケ標準多項式の4番目(n=2, m=0)と5番目(n=2, m=-2)に数値を入力して、面のサグを確認します。
確かに、動径方向の次数は2(放物線)、|m|=2では円周方向に2周期が確認できました。
ゼルニケ多項式の順番の決め方
nとmの組み合わせによって、ゼルニケ多項式の順番jが決定されます。この順番によって、cosの数式を取るかsinの数式を取るかが変わるので、そのルールは気になるところです。順番決めのルールについては、Wikipediaの「ゼルニケ多項式」のページによくまとまっているので参照してください。
ヘルプファイルやWikiのページにもある通り、OpticStudioでもよく使うゼルニケ標準多項式とゼルニケフリンジでは順番の規則が異なるので、多項式が現れる順番が入れ替わります。これはZemaxが悪いのではなく、引用しているゼルニケ多項式のルールが異なることに起因します。
今回取り上げているゼルニケ標準サグでは、Wikipediaのページで言う”Nollによる記法”に従います。後半部分が少し複雑な記述になっています。意味としては、mの正負符号と、nを4で割ったときの余りが0か1、もしくは2か3になるときで場合分けをしています。
書き出された結果を見ると、nを小さい方から並べて、mも数が小さい方から並べていきます。ただ、mの正負の出る順番が分かりにくいです。
1つ例を示します。n=4, m=4のゼルニケ多項式の番号は、j = 4*(4+1)/2 + |4| + 0 (m>0, 4/4=1 余り “0”) = 10 + 4 = 14 になります。図 108-8 の表の結果と一致します。
ゼルニケ多項式を出力する方法
ゼルニケ多項式を(手計算で)求めるのは、はっきり言ってかなり厳しいです。Mathematicaを用いて、nとmから多項式を出力したり、極座標からデカルト(カーテシアン、x-y)座標への変換が可能です[2]。
上でも出てきたOpticStudioの「ゼルニケ標準係数」機能の出力結果には、係数の横にゼルニケ多項式が一緒に出力されます。順番が大きいと、数式も複雑になっていきますが、nとmの組み合わせのルールと併せて考えると、数式の出所を理解できるようになります。
まとめ
ここでは、光学業界で広く活用されているゼルニケ面を取り上げ、特にOpticStudioに搭載されているゼルニケ標準サグ・位相面の定義式に含まれるゼルニケ標準多項式について説明しました。複雑な形をしていますが、数式と順番の決定ルールを把握できれば、ヘルプの表に記載されていない高次の多項式についても見通しが立つようになります。
<参考>
[1] Noll, “Zernike polynomials and atmospheric turbulence”, J. Opt. Soc. Am. 66 (3): 207.
[2] 三橋 俊文, “総説 光学入門2 Zernike多項式再入門”, 視覚の科学 第35巻第2号
コメント