こんにちは。光学、光でのお困りごとがありましたか?
光ラーニングは、「光学」をテーマに様々な情報を発信する光源を目指しています。情報源はインターネットの公開情報と、筆者の多少の知識と経験です。このページでは、Zemaxコミュニティで注目されているトピックで共有された多色RMS波面誤差の計算方法に関連して、まずは単色RMS波面誤差の計算方法を説明します。
Zemaxコミュニティについては、こちらのページ で概略を説明しています。
結論
- RMS波面誤差は、光路差(OPD)のRMSではなく、OPDの標準偏差を計算しています。
- 標準偏差を取ることは、OPDの平均値だけ参照球面の位置を光軸方向に移動させることを意味し、より現実的なOPDのばらつき(波面の乱れ具合)を評価できます。
このページの使い方
このページでは、Zemaxコミュニティに投稿されたトピック中から、よく参照されているもの、コメントが多いもの、筆者が気になったものを取り上げて紹介します。よくある疑問や注目されているトピックについての情報を発信することで、何かしらの気づきとなれば幸いです。
RMS波面誤差
トピックへのリンク: 多色RMS波面誤差の計算方法
光ラーニングではこれまで、波面収差に関する説明をいくつか投稿してきました。波面収差は、参照球面に対する光学系から出射する実際の波面の誤差です。波面収差の材料になるのが光路差(OPD)です。OPDは光線ごとに測定され、OPDの集合体によって光学系全体の波面が再構成されます。
波面収差については、光路差図(波面収差)_シングレットレンズの設計(OpticStudio入門) (9) を参照してください。OPDについては、振幅、位相、光路長_光線に含まれる光学情報(2) を参照してください。
ひとつのOPDの値は波面のごく一部の波面収差の情報にすぎません。波面収差全体が光学性能に与える影響を評価するのであれば、波面全体に存在する収差量を算出する方が合理的です。光学設計の分野では、RMS波面誤差(言い方はいろいろ、RMS波面収差と言ったりRMS波面と言ったり)を使用します。
単色RMS波面誤差の計算方法
今回取り上げたコミュニティのトピックは「多色」RMS波面誤差のディスカッションです。つまり、光学設計でRGBとか複数の波長を対象としているとき、波長をまたがってRMS波面誤差を対象としています。
このページでは多色の計算に踏み込む前に、前提となる「単色」のRMS波面誤差を詳しく見ていきます。つまり、波長を550nmとか1つに限定したとき、OpticStudioがRMS波面誤差を計算する方法を確認します。
「多色」のRMS波面誤差については、別のページ(現在作成中)を参照してください。
単色RMS波面誤差の定義式の確認
OpticStudioのヘルプファイルで「RMS vs. Field」のページを見ると、RMS波面誤差の計算式を確認できます。ヘルプファイルの式は重みのシグマの書き方がおかしいように思いますので、筆者の考えるRMS波面収差の式を記載しています。
思ったより複雑ではないでしょうか。まず大文字のWがOPD、小文字のwが光線の重みで、アルファベットがかぶっているのが分かりにくいですね。。。nはOPDのデータの数です。
まず理解を優先して式の簡略化します。重み w はすべてのデータで等しく1とします。すると分母はnとなり、データ数での除算を意味します。計算式は以下のように修正できます。
注意点は、「RMS波面誤差は、OPDの値を2乗して足し合わせて平方根を取った数値(OPDのRMS)ではない」ということです。RMSの定義式については、Wikipedia「二乗平均平方根」を参照してください[1]。
RMS波面誤差の計算式は「標準偏差」の式
簡略化したRMS波面誤差の計算式の1項目がまさに、定義通りのOPDのRMSの計算式です。2項目の「OPDの平均値の2乗を引く」は何をしているのでしょうか。
少し視点を変えて、RMS波面誤差を数式としてみるとOPDの「標準偏差」になっています。標準偏差とは、データ群の平均値に対するばらつきを示す指標で、標準偏差が小さいとデータのばらつきが小さく、標準偏差が大きいとデータのばらつきが大きいことを表します。
RMSは「平均値に対する」という部分が含まれないので、標準偏差とは定義が異なります。データ群の平均値がゼロの時に限り、RMSと標準偏差は同じ結果となります。ですので、「RMSと標準偏差は同じ」という文面を見たときは、「平均値がゼロという前提が満足されているか」を確認する必要があります。
RMS波面誤差と「OPDのRMS」と「OPDの標準偏差」で比較
実際に、OPDのRMSと、OPDの標準偏差(RMS波面誤差)に差が生じるかを確認してみます。OPDの2次元データは、OpticStudioだと波面収差マップから出力できます。プロセスは以下の通りです。
波面収差マップの2次元のテキストデータから、円形の瞳の外側にあるOPDが計測されていない、数値が 0 のセルを計算から除外します。瞳の内部でOPDが厳密に0になることはほぼありませんが、主光線となる中心のピクセルだけは特別で、かならずゼロになります。これは主光線の光路長がOPDの基準となるためです。
関連して、もしデータ処理にエクセルを使用していて、COUNTIF関数を使って瞳内部のセル数(=OPDがゼロでないセル数)を得る時は、COUNTIF(データ全体, “<>0”)+1としてください。+1で主光線のセルを加えています。念のため、主光線以外にOPDがゼロになっているセルがないか、確認した方が良いです。
瞳内部のOPDが計算されたセルを抽出できたら、定義式に従ってRMS波面誤差を計算していきます。波面収差マップでは各OPDの重みは等しいので、ゼロも含めて数値全体を足し合わせて、円形瞳を構成するセル数で除算すれば平均値が得られます。
あるサンプルファイルでは、OPDのRMSが0.52だったのに対して、RMS波面誤差が0.18になりました。ずいぶんと数値が異なっており、RMS波面誤差の方が小さくなります。(OpticStudioのサンプルファイル、Cooke 40 degrees fieldで、波長550nm、視野0度で検証しました。)
「RMS波面誤差はOPDの標準偏差」の考え方
RMS波面誤差を別の書き方にすると、以下のようになります。これは各光線のOPDが平均値からどのくらい散らばっているかを計算しています。
この式を Wikipediaの平均値および標準偏差との関係 の項で説明されているように変形していくと、OpticStudioのヘルプファイルに記載されたRMS波面誤差の数式になります。この式から、RMS波面収差を計算するときはOPDの平均を引く、という考え方が直接的に表現されています。
図で考える「OPDの平均を引く処理」の意味
「RMS波面誤差」という言葉から、波面収差マップを構成するOPDの数値の二乗和平方根をとっても、波面収差マップの下部にレポートされたRMS波面の値が得られません。それは定義式が異なっていて、RMS波面誤差はOPDのRMSではなくて、OPDの標準偏差だからです。
RMS波面誤差がOPDのRMSではなく標準偏差なのは、OPDの標準偏差の方が瞳全体に存在する波面収差量を正しく表現しているからです。
OPDの平均を引く処理は、光路差図の基準を上下させるイメージです。1本の矢印が示すOPDの長さが、平均を引く処理によって短くなることが分かります。
参照球面の位置を光軸方向に動かすイメージになります。
全体的にOPDがプラスの傾向(像面の手前で集光する傾向)であれば、基準となる参照球面を右側(像面側)にシフトさせます。OPDがマイナスの傾向(像面の奥で集光する傾向)であれば、参照球面を左側(物体面側)にシフトさせます。
OPDのプラスとマイナスがちょうどバランスよく分布している場合は、現在の参照球面の位置が波面収差全体を評価するのに適切な位置と言えるので、動かす必要がありません。
まとめ
このページでは、Zemaxコミュニティに投稿された「多色RMS波面誤差の計算方法」を取り上げ、前提知識となる「単色RMS波面誤差の計算方法」について説明しました。RMS波面誤差は、OPDのRMS値ではなく標準偏差であることを数式と図によって示しました。次回は、本題となる多色RMS波面誤差の計算について検討します。
<参考>
[1] Wikipedia, 二乗平均平方根, https://ja.wikipedia.org/wiki/%E4%BA%8C%E4%B9%97%E5%B9%B3%E5%9D%87%E5%B9%B3%E6%96%B9%E6%A0%B9
コメント