光干渉断層撮影法(OCT:Optical Coherence Tomography)は、赤外線の干渉を用いて断層画像を取得する方法であり、眼底検査などの医療分野で用いられている。赤外線光源として広帯域光源を用いて、多くの波長を含んだ光を対象の物体に照射し、反射した光をCCDカメラ等の受光素子で取得する。反射した光は、波長によって位相のずれ方が変わるため、各々の波長における干渉強度が異なるので、分光器を通して波長分解することにより、各波長ごとの干渉信号を取得することができる。この干渉信号をフーリエ変換することにより、物体の反射面の情報を得ることができる。この方法は、SD−OCT(Spectral Domain-OCT)と呼ばれている。また、全ての波長の光を同時に入射するのではなく、光源からの出射光の波長掃引を行って、波長ごとに干渉波形信号を時間的に取得することも行われている。この方法は、SS−OCT(Swept Source-OCT)と呼ばれている。SS−OCTは、分光器が不要で、CCDカメラを用いる必要がないので、装置を小型化でき、SD−OCTよりも高速にデータを取得することができる点で優れている。
図1に、従来のSS−OCT装置の基本構成の一例を示す。SS−OCT装置は、波長掃引光源2001、干渉計2002および信号処理装置2004から構成され、サンプル2003内の深さ方向の情報を得ることができる。波長掃引光源2001は、時間とともに発振波長が連続変化する光源である。干渉計2002は、ビームスプリッタ2005、参照光ミラー2006および受光素子2007から構成される。
波長掃引光源2001から出力された出射光2009は、ビームスプリッタ2005でサンプル光2010と参照光2012とに分けられる。サンプル光2010が通る光路をサンプルアーム、参照光2012が通る光路を参照アームと呼ぶ。サンプル2003内に光が反射する面2008がある場合、サンプル光2010は、反射面2008にて反射され、ビームスプリッタを通って受光素子2007に入射される。一方、参照光2012は参照光ミラー2006にて反射され、ビームスプリッタ2005を経て受光素子2007に入射される。
受光素子2007では、サンプル光2010および参照光2012の干渉した光2013を受光する。受光素子2007は、干渉光2013を光電変換し、干渉信号2014を出力する。信号処理装置2004は、干渉信号2014を信号処理する。干渉信号2014は、基準面2011から反射面2008までの光学距離zに比例した周波数成分と、反射面2008からの光強度に比例した強度とを有する。信号処理装置2004における信号処理により、周波数解析を行うことによって、サンプル2003の深さ方向(サンプル光の光軸方向)の反射面の情報を得ることができる。
信号処理装置2004で実行する信号処理について、以下に説明する。ここで、図1に示す光学系において若干の定義を行う。サンプル光側において、ビームスプリッタ2005と参照光ミラー2006との間の光路長lと同じ距離に、便宜的に仮想的な面を定義することとし、これを基準面2011と呼ぶ。つまり、ビームスプリッタ2005と基準面2011との間の光路長もlである。基準面2011とサンプル内反射面2008との光学距離をzとする。このとき、干渉信号2014をim(t)で表すと、im(t)は下記の式で表される。
ただし、ηは受光素子2007の量子効率、Γ(・)は光源出射光2009のコヒーレンス関数、Pr(・)とPs(・)はそれぞれ参照光強度とサンプル光強度、k(・)は出射光2009の瞬時の波数である。ここで、波数k(t)が時間に対して一次関数的に変化すると仮定する。つまり、波数の時間変化が一定であるとする。このとき、波数の時間変化をk’とし、t=0の時の波数がk0とすると、波数が下記の式で表される。
このような性質を持つ波長掃引光源を波数リニア光源と呼ぶ。この場合、干渉信号2014の強度im(t)の周波数fは下記の式で表される。
波数リニア光源を用いたSS−OCT装置では、サンプル内の位置zにある反射面からの反射光と参照ミラーからの反射光との干渉によって生じた干渉信号2014の強度im(t)は、その強度変調の周波数fがzに比例する。従って、信号処理装置2004で干渉信号2014を時間tに対してフーリエ変換すると、フーリエ変換の結果の信号には、zに比例する周波数に鋭いピークが現れる。
次に、波長掃引光源2001が波数リニア光源でない場合、つまり、波数の時間変化が以下の式で表される場合を考える。
ここで、kΩ(・)は時間によって変化する関数である。このとき、干渉信号2014をim(t)のフーリエ変換の結果Im(f)は、下記のように表される。
ここで、F[・]はフーリエ変換、*は畳み込み積分、jは虚数単位を表す。
このようにIm(f)は、F[exp(±j2zkΩ(t))]で表され、±zk’/πだけずれた信号と、F[(Pr(t)Ps(t))1/2]との畳み込み積分の結果となる。
波数リニア光源では、kΩ(・)が時間に対して変化が無いので、F[exp(±j2zkΩ(t))]はf=0にピークを持つデルタ関数となる。このため、Im(f)は、F[(Pr(t)Ps(t))1/2]を±zk’/πだけずらしたものとなる。Pr(t)Ps(t)がガウシアンの場合は、Im(f)は、±zk’/πにピークを持つ鋭いガウシアンとなる。Pr(t)Ps(t)が時間に対して広いほど、Im(f)の±zk’/πにピークを持つそれぞれのガウシアンの幅は狭くなり、画像の精細度が高くなる。
このような、ある一つの反射点に対するIm(f)をPSF(point spread function)と呼ぶ。SS−OCT装置で得られる断層画像は、各反射点に対するPSFの和であり、PSFの幅が狭いほど精細な画像が得られる。波数リニアではない光源では、干渉信号im(t)をフーリエ変換すると、上述の通り、PSFの幅が大きくなり断層画像の精細度が落ちてしまう。そこで、信号処理により、波数リニア光源を使った場合と同等の干渉信号になるように、im(t)を時間軸において伸縮する方法が取られる。この処理をリスケ―リングという。
リスケーリングの原理は、波数間隔が一定となる時間間隔で干渉信号2014であるim(t)をサンプリングすることである。つまり、n回目のサンプリング時間をtnとしたときに、下記の式に示す通り、波数の間隔δkが一定となるように、サンプリングする時刻tnを決めればよい。
ここで、δkはtnによらず一定である。
式(1)をみると、波数kはcos関数の引数に組み込まれているため、im(t)の位相φm(t)が観測できれば、下記の式で波数kが計算できる。
ここで、im(t)の位相φm(t)の算出の方法について説明する。im(t)をフーリエ変換したIm(f)である式(5)の第2項を削除したものIm +(f)を逆フーリエ変換した式im’(t)は、
となる。式(8)を見れば、im’(t)は複素数であるので、その偏角を求めれば、下記のようにφm(t)が求められる。
arg(・)は通常−π〜+π(または、0〜2π)ラジアン等、2πラジアンの情報しか持たないが、位相が連続していると仮定すると、−πから+πラジアン方向(0から2πラジアン方向)に算出した後に−π(0)ラジアン近辺に戻った時には、2π+arg(im’(t))というように、位相をつなげることができる。このような操作をアンラップ(unwrapping)という。式(9)(10)を計算する場合は、位相をアンラップする必要がある。式(6)の関係となるような干渉信号のサンプリング時刻tnを得るためには、式(10)でk(t)を求めるときのzは一定にしておく必要がある。実際にk(t)を求める際には、サンプル光側のzの位置に反射面(鏡など)を固定し、干渉信号im(t)を取得して信号処理する。
im(t)をフーリエ変換したIm(f)である式(5)の第2項を削除した後に逆フーリエ変換して、式(8)で示すim’(t)を得るための正確な方法は複雑であるため、近似的な方法として、Im(f)の負の周波数成分を削除することが考えられる。Im(f)の負の周波数成分を削除したものをIm +a(f)とする。このようにすると、δ関数に畳み込まれた成分の内、正の周波数を持つδ関数に畳み込まれた成分の内、負の周波数へ漏れた部分が残らずに削除され、負の周波数成分を持つδ関数に畳み込まれた成分の内、正の周波数成分へ漏れた部分が削除されずに残るため、式(8)に示すような信号が正確に得られなくなる。その結果、正確なk(t)が得られないことから、正確なtnを得ることはできなくなる。しかし、Im +(f)≒Im +a(f)と近似できる範囲では、うまくいくことが多いので、現状、この方法が多く取られる。
このような方法で時刻tnを求め、その時刻tnで干渉信号im(t)をサンプリングすることにより、波数リニア光源を使った場合と同等の干渉信号を得ることが可能となる。A/D変換によって干渉信号im(t)をサンプリングした後に時刻tnで再度サンプリングすることから、リスケーリングにおけるサンプリングのことをリサンプリングと呼ぶ。なお、φm(t)=arg(im’(t))を2zで割ってk(t)を求めなくても、2zは一定と考えれば、下記の式によってtnを求めることができる。
ただし、δφmは一定である。tnを求める際には、φm(t)の逆関数t(φm)を求め、任意のδφmを決めて、下記のように求めても良い。
ここで、φ0は0番目のリサンプリング点(時刻)t0の位相である。
以上の原理を使って、実際にリスケーリングを行うための装置の構成と処理のフローを説明する。リスケーリング処理の動作は、2段階に分けられ、最初はリサンプリング点(時刻)を取得する段階であり、次に、観測対象のサンプルから得られた干渉信号をリスケーリングする段階である。図2に、従来のリスケーリング装置の機能ブロックを示し、図3に、従来のリスケーリング処理のフローチャートを示す。
最初に、干渉信号をリスケールするためのリサンプリング点(時刻)を取得する段階について説明する。
[ステップS−2201(干渉波形信号取得1)]サンプル光側のzの位置に鏡などの反射面を置き、干渉計2002で生成した干渉信号を、干渉波形信号取得手段2101が取得して出力する。受光素子2007がアナログ出力であり、そのアナログ出力の信号を干渉波形信号取得手段2101が受ける場合は、A/D変換を行い、ディジタル信号として出力する。
干渉波形信号取得手段2101が干渉信号を取得するタイミングは、波長掃引光源が短波長から長波長へ、または、逆に長波長から短波長へ掃引を開始するタイミングとする。例えば、波長掃引光源から掃引開始時刻を示すトリガ信号を、干渉波形信号取得手段2101が得るようにしても良い。または、トリガ信号を出力するためのトリガ信号出力手段を別途用意し、波長掃引光源にトリガ信号を入力して、トリガ信号のタイミングで(あるいは同期して)波長掃引光源が掃引を開始しても良い。
[ステップS−2202(離散フーリエ変換)]離散フーリエ変換手段2102は、干渉波形取得手段から得た干渉信号を離散フーリエ変換して出力する。
[ステップS−2203(マイナス周波数領域除去)]マイナス周波数領域除去手段2103は、離散フーリエ変換した干渉信号のうち、負の周波数を除去し、除去した信号を出力する。
[ステップS−2204(離散フーリエ逆変換)]離散フーリエ逆変換手段2104は、負の周波数を除去した信号を逆フーリエ変換して出力する。
[ステップS−2205(位相変化曲線算出)]位相変化曲線算出手段2105は、逆フーリエ変換した信号の偏角、つまり位相を求め、アンラップした位相信号φm(t)を出力する。
[ステップS−2209(位相−時間関数生成)]アンラップされた位相φm(t)は離散的であるが、式(11)に示すような、δφm間隔のリサンプリング点(時刻)に、位相算出手段2105で算出した時間−位相の点があるとは限らないので、式(11)によってリサンプリング点(時刻)を取得するには不都合である。そこで、位相−時間関数生成手段2109は、φm(t)からその逆関数t(φm)の近似式t’(φm)を求めて、どの位相に対しても時間が対応するようにする。非特許文献1では、t(φm)を4次関数に近似している。
[ステップS−2210(リサンプリング点算出)]リサンプリング点算出手段2110は、式(12)のt(φm)を、その近似式t’(φm)に置き換えて、定数δφm間隔となるリサンプリング点(時刻)tn(=t’(nδφm+φ0)を得て出力する。
次に、サンプル光側の鏡の代わりに観測対象のサンプルを置き、測定を行う段階について説明する。
[ステップS−2211(干渉波形信号取得2)]観測対象のサンプルから反射されたサンプル光と参照光ミラーからの参照光とから得られる干渉信号を、干渉波形信号取得手段2101を用いて取得して出力する。
[ステップS−2212(リサンプリング)]ステップS−2211で得た干渉信号を、ステップS−2210で得たリサンプリング点(時刻)tnでサンプリング(リサンプリング)する。
上記、離散フーリエ変換手段2102、マイナス周波数領域除去手段2103、離散フーリエ逆変換手段2104、および位相変化曲線算出手段2105は、干渉信号im(t)から干渉信号位相変化曲線φm(t)を取得する手段であり、図2ではこれらの手段をまとめて位相変化曲線取得手段2112としている。位相変化曲線取得手段2112の動作は、ステップS−2202〜S−2205で示され、図3ではそれらをまとめてステップS−2213(位相変化曲線取得)としている。
以下、図面を参照しながら本発明の実施形態について詳細に説明する。
本実施形態においては、観測対象となるサンプルの波長分散に合わせて位相変化曲線に波数k毎の係数をかけることにより、観測対象の波長分散に合った位相変化曲線を作成することによって、観測対象に合ったリサンプリング点(時刻)を得る。リサンプリング点(時刻)を求めるとき、サンプルaをサンプルとして用いることとし、光の波数k=k0時の屈折率na(k0)を基準としたとき、波数kに対する屈折率の増加率を表す屈折率増加関数をra(k)(=na(k)/na(k0))とする。k0は、例えば波長掃引光源の掃引する波数の中心としてもよい。このとき、サンプルaを用いた時の干渉信号の位相変化曲線φma(t)は下記のようになる。
ただし、za(k)は、サンプルaのkに対する光路長であり、za0は、k=k0時のza(k)である。この式から、波長分散による光路長の変化を補償した干渉信号の位相は、下記のように示される。
つまり、サンプルaを使って観測された干渉信号の位相φma(t)をra(k(t))で割れば、k=k0時の光路長za0に対応した位相φma0(t)が得られる。
k(t)が時間tの関数であるので、ra(k)は時間tの関数となるが、このためには、波長掃引光源からの出射光の波数の時間変化の関数k(t)を知っておく必要がある。このk(t)を知る方法については、実施例2に記す。
k(t)が分かるとra(k)を時間の関数とすることができる。ここでは説明を簡単にするため、以下の説明ではra(k(t))をra(t)と置き換えることとする。このra(t)を使って式(1−2)を改めて書き直すと下記となる。
式(1−3)に倣うと、観測対象としてサンプルbを使ったときの、k=k0時の光路長zb0に対応した干渉信号の位相は、以下のように示されることになる。
ただし、φmb(t)はサンプルbを使った時に観測される干渉信号であり、rb(t)は、k=k0を基準としたときの時間による屈折率変化を表す関数rb(k)(=nb(k)/nb(k0))であり、nb(k)はサンプルbの屈折率、rb(t)=rb(k(t))である。また、zb0はk=k0時のzb(k)である。
式(1−3)、式(1−4)から、φma(t)とφmb(t)の関係は下記となる。
つまり、φma(t)に(zb0/za0)とra→b(t)(=rb(t)/ra(t))をかけるとφmb(t)となる。ここで、ra→b(t)=(rb(t)/ra(t))である。
φmb(t)は、(zb0/za0)・ra→b(t)・φma(t)と等しいので、式(11)に示すように、定数δφmbを決めて、
となるta,nとを同じにすること、つまりtb,n=ta,nとできる。式(1−8)右辺において(zb0/za0)で括ることができる理由は、(zb0/za0)が時間に対して不変であるからである。ところで、
とすることができる。つまり、位相間隔δφmbを(za0/zb0)倍すれば、tb,n=ta,nとなるリサンプリング点(時刻)が得られる。このことは、サンプルaの位相変化曲線にra→b(t)をかけて補正した位相変化曲線を用いて、式(11)または式(12)からサンプルb用のリサンプリング点(時刻)を取得できることを意味している。
ところで、(zb0/za0)は時間に対して不変であるので、式(1−6)からφmb(t)とra→b(t)・φma(t)には下記のような関係があることが分かる。
このようにra→b(t)φma(t)は、φmb(t)と比例関係にあることが分かる。このように比例関係にある波数変化曲線では、波数リニア光源を用いた干渉信号を得るためのリサンプリング点(時刻)は、両者とも同一にすることが可能であるという言い方もできる。
以上の説明では、サンプルaを使って得られる位相変化曲線を補正することによって得られるリサンプリング点(時刻)を、サンプルb用のリサンプリング点(時刻)と同一にできる、という言い方をしたが、リサンプリングの性質上、同一であることは重要ではない。例えば、式(1−9)では、δφma=(za0/zb0)δφmbとしたが、補正したサンプルaの位相変化曲線ra→b(t)・φma(t)は、適宜決めたδφmaでリサンプリング点(時刻)を得ても、サンプルbに適したリサンプリング点(時刻)を得ることはできる。
以上の原理を使って、実際にリスケーリングを行うための装置の構成と処理のフローを説明する。リスケーリング処理の動作は、従来と同様に2段階に分けられ、最初はリサンプリング点(時刻)を取得する段階であり、次に、観測対象のサンプルから得られた干渉信号をリスケーリングする段階である。リサンプリング点(時刻)を取得する段階では、従来の位相変化曲線を取得するフローと位相変化曲線の補正係数を算出するフローとを含む段階と、その補正係数を使って位相変化曲線を補正してリサンプリング点(時刻)を取得する段階とがある。
図5に、本発明の実施例1にかかるリスケーリング装置の機能ブロックを示し、図6に、本発明の実施例1にかかるリスケーリング処理のフローチャートを示す。最初に、干渉信号をリスケールするためのリサンプリング点(時刻)を取得する段階について説明する。この段階における位相変化曲線を算出するフローは、従来と同様であり、下記の通りとなる。
[ステップS−201(干渉波形信号取得1)]サンプル光側のzの位置に鏡などの反射面を置き、干渉計2002で生成した干渉信号を、干渉波形信号取得手段101が取得して出力する。受光素子2007がアナログ出力であり、そのアナログ出力の信号を干渉波形信号取得手段101が受ける場合は、A/D変換を行い、ディジタル信号として出力する。
干渉波形信号取得手段101が干渉信号を取得するタイミングは、波長掃引光源が短波長から長波長へ、または、逆に長波長から短波長へ掃引を開始するタイミングとする。例えば、波長掃引光源から掃引開始時刻を示すトリガ信号を、干渉波形信号取得手段101が得るようにしても良い。または、トリガ信号を出力するためのトリガ信号出力手段を別途用意し、波長掃引光源にトリガ信号を入力して、トリガ信号のタイミングで(あるいは同期して)波長掃引光源が掃引を開始しても良い。
[ステップS−202(離散フーリエ変換)]離散フーリエ変換手段102は干渉波形取得手段から得た干渉信号を離散フーリエ変換して出力する。
[ステップS−203(マイナス周波数領域除去)]マイナス周波数領域除去手段103は、離散フーリエ変換した干渉信号のうち、負の周波数を除去し、除去した信号を出力する。
[ステップS−204(離散フーリエ逆変換)]離散フーリエ逆変換手段104は、負の周波数を除去した信号を逆フーリエ変換して出力する。
[ステップS−205(位相変化曲線算出)]位相変化曲線算出手段105は、逆フーリエ変換した信号の偏角、つまり位相を求め、アンラップした位相信号φm(t)を出力する。
次に、位相変化曲線の補正係数を算出するフローについて説明する。
[ステップS−206(時間−波数対応データ取得)]時間−波数対応データ取得手段106は、波長掃引光源から出力される光の波数の時間変化データ(時間−波数対応データ)を取得し出力する。具体的な方法は実施例2に示す。
[ステップS−207(波長分散補正係数算出)]波長分散補正係数算出手段107は、ステップS−206において時間−波数対応データ取得手段106から得た時間−波数対応データk(t)と、屈折率分散データna(k)、nb(k)と、基準波数k0における屈折率を基準としたときの位相変化曲線の補正係数ra→b(t)を計算して出力する。ここで、na(k)は、リサンプリング点(時刻)を得るために使用するサンプルaの屈折率の波数分散(波長分散)であり、nb(k)は、観測対象のサンプルbの屈折率の波数分散(波長分散)である。
計算の一例としては、最初に、波数k毎のra→b(k)=(nb(k)/nb(k0))/(na(k0)/na(k))のデータを作り、次に、ra→b(k)のデータとk(t)のデータを使って、波数kを時間tに置き換えて(つまりra→b(t)=r(k(t))として)、波数k毎の補正係数ra→b(k)のデータを、時間t毎の補正係数ra→b(t)のデータにする。
k(t)データとra→b(k)データとは、両方とも離散的であるので、あるtに対するk(t)が、ra→b(k)データの中にあるとは限らない。その場合は、ra→b(k)データの近似関数(kの多項式関数等)を算出するか、または、ra→b(k)データを補間して(kの多項式による補間等)、波数kに対するra→b(k)データの近似値を算出する。
基準波数k0を波長分散補正係数算出手段107に明示的に入力するのではなく、掃引波数の最小値kminと最大値kmaxを入力し、k0=(kmax+kmin)/2としてもよい。また、波長から換算し、最小波長λminと最大波長λmaxを入力し、k0=2π(1/λmin+1/λmax)/2としても良い。
上記ra→b(k)のデータは、ステップS−207を実行する前に作っておいても良い。この場合は、その計算時間が省けるため、高速化ができると共に、ステップS−201〜S−205と並列に動作することが無い。従って、計算リソースが省け、本実施形態のリスケーリング装置の小型化、低価格化を実現することができる。
次に、補正係数を使って位相変化曲線を補正した後、リサンプリング点(時刻)を取得する段階について説明する。
[ステップS−208(位相変化曲線補正)]位相変化曲線補正手段108は、ステップS−207において波長分散補正係数算出手段から出力された時間−補正係数対応データra→b(t)を用いて、ステップS−205において位相変化曲線算出手段105から出力された位相変化曲線φm(t)を補正し、観測対象であるサンプルbに合った位相変化曲線φm’(t)にする。理想的には式(1−11)に示すφmb(t)がφm’(t)と一致する。
具体的な動作としては、時間t毎にφm(t)ra→b(t)(=φm’(t))を計算し、tに対する位相φm’(t)のデータを作成し、出力する。
[ステップS−209(位相−時間関数生成)]アンラップされた位相φm(t)は、離散的であるが、式(11)に示すような、δφm間隔のリサンプリング点(時刻)に、位相変化曲線算出手段105で算出した時間−位相の点があるとは限らないので、式(11)によってリサンプリング点を取得するには不都合である。そこで、位相−時間関数生成手段109は、φm(t)からその逆関数t(φm)の近似式t’(φm)を求めて、どの位相に対しても時間が対応するようにする。非特許文献1では、t(φm)を4次関数に近似している。
[ステップS−210(リサンプリング点算出)]リサンプリング点算出手段110は、式(12)のt(φm)を、その近似式t’(φm)に置き換えて、定数δφm間隔となるリサンプリング点(時刻)tn(=t’(nδφm+φ0)を得て出力する。
最後に、サンプル光側の鏡の代わりに観測対象のサンプルを置き、測定を行う段階について説明する。この段階は、従来と同様であり、下記のように処理を行う。
[ステップS−211(干渉波形信号取得2)]観測対象のサンプルから反射されたサンプル光と参照光ミラーからの参照光とから得られる干渉信号を、干渉波形信号取得手段101を用いて取得して出力する。
[ステップS−212(リサンプリング)]ステップS−211で得た干渉信号を、ステップS−210で得たリサンプリング点(時刻)tnでサンプリング(リサンプリング)する。
以上の説明では、ステップS−211で観測対象のサンプルについての干渉波形を得る前に、サンプル光側の鏡の代わりに観測対象のサンプルを置くこととした。干渉計を2つ用いて、一方はリサンプリング点(時刻)を得るための干渉信号を取得し、他方は観測対象についての干渉信号を取得するための干渉計としても良い。2つの干渉計を使う場合、波長掃引光源の1掃引ごとに2つの干渉計から同時に干渉信号を取得し、1掃引ごとにリサンプリング点(時刻)のデータを算出し、同じ掃引で取得した観測対象の干渉波形をリサンプリングしても良い。この方法を、セルフクロッキング法(self clocking method)と呼ぶ。
2つの干渉計を使用する利点は、リサンプリング点(時刻)を取得するための鏡と観測対象のサンプルを置き換える必要が無いことである。また、セルフクロッキング法を適用する場合は、波長掃引光源の時間変動等で、波長掃引光源からの出射光の波長(または波数)の時間変化が1掃引ごとに異なる場合であっても、1掃引ごとにリサンプリング点(時刻)を取得するので、常に最適なリサンプリング点(時刻)が得られる利点がある。
以上の説明では、ステップS−201〜S−205とステップS−206〜S−207をシーケンシャルに動作するように記した。ステップS−201〜S−205とステップS−206〜S−207とは、図6のフローチャートに示す通り、並列して動作しても良い。また、先にステップS−206〜S−207を動作させてからステップS−201〜S−205を動作させても良い。並列して動作させる場合は、動作時間を短縮できる。また、シーケンシャルに動作させる場合は、計算リソース(ハードウェア)を共用できるため、本実施形態のリスケーリング装置の小型化、低価格化を実現することができる。
図7に、本発明の実施例1にかかるSS−OCT装置の基本構成を示す図である。干渉計は、光ファイバ2415、2417、2419とサーキュレータ2416、ファイバコリメータ2418で構成され、2面が平行なサンプル2403を用いている。サンプル2403の入射側の面は基準面となり、対向する面は反射面となる。入射面と反射面とは平行になっている。サンプル2403の例としてはエタロンなどが挙げられる。サンプル2403の屈折率がサンプル2403の周りと異なれば、基準面2411とサンプル内の反射面2408での光の反射はフレネル反射となる。
波数が時間的に一方向に連続的に変化する光を出力する波長掃引光源2401から出力された出射光2409は、光ファイバ2415を使って出力され、サーキュレータ2416、光ファイバ2417、ファイバコリメータ2418を介してサンプル2403の入射面(基準面)に垂直入射する。サンプル2403に入射した光は、反射面2408で反射される。サンプル2403を透過する光2410は、サンプル光であり、入射面からは、サンプル2403内から出射された光と入射面で反射された光(参照光2412)とが混合され干渉光2413となる。すなわち、サンプルアームと参照アームと間の光路長差に応じた干渉光が得られる。
干渉光2413は、ファイバコリメータ2418、光ファイバ2417、サーキュレータ2416を介して光ファイバ2419に入り、受光素子2407で光電変換される。受光素子2407からは、干渉光が光電変換された干渉信号2414が出力され、信号処理装置2404に入って、リスケーリング処理がなされ、PSFが生成される。
図1に示した干渉計の代わりに図7に示した干渉計を用いて、観測対象をサンプル2403の位置に配置しても良い。この場合は、観測対象の厚みを測定するSS−OCT装置として働く。観測対象が平行平板であり、その厚みを測定するのであれば、図1の構成よりも図7の構成とした方が、SS−OCT装置の構成が単純であり、安価に作製できるという利点がある。
上記、離散フーリエ変換手段102、マイナス周波数領域除去手段103、離散フーリエ逆変換手段104、および位相変化曲線算出手段105は、干渉信号im(t)から干渉信号位相変化曲線φm(t)を取得する手段であり、図5ではこれらの手段をまとめて位相変化曲線取得手段112としている。位相変化曲線取得手段112の動作は、ステップS−202〜S−205で示され、図6ではそれらをまとめてステップS−213(位相変化曲線取得)としている。
以上の説明では、S−211〜S−212(観測対象の干渉波形を取得して、リサンプリングする動作)を1回行う前に、S−201〜S−210を1回行う例を示した。光源の波長の時間変化k(t)が各掃引において同一であるか、または、各掃引のk(t)の変動が無視できる場合は、次の2段階の動作としても良い。
(a)S−201〜S−210を行い、その後はk(t)の掃引ごとの変動が無視できる掃引回数だけ、光源の時間変動S−211〜S−212のみを繰り返し行う。
(b)変動が無視できない掃引回数に達した場合に、再度S−201〜S−210を行い、位相変化曲線と時間−補正係数対応データとを初期化する。
このような構成にすると、S−211〜S−212(観測対象の干渉波形を取得して、リサンプリングする動作)を共通のリサンプリング点(時刻)を用いて行うことが可能となるため、リサンプリング点を生成する動作を少なくでき、リサンプリング点を生成するハードウェアリソースを削減できる利点がある。
(時間−波数対応データ取得手段)
実施例1における時間−波数対応データk(t)の取得手段の具体的な構成について述べる。ここでは、光の狭帯域バンドパスフィルタの中心波長と時間の関係を取得する方法について述べる。図8に、時間−波数対応データ取得手段の機能ブロックの第1例を示し、図9にフローチャートを示す。
[ステップS−401(測定波数範囲および初期波数設定)]波数指示手段304に波長掃引光源の光の波数の測定範囲kmin〜kmaxと、波数のステップδkを設定する。ここで、kmin<kmax、δk>0である。また、測定のスタート時の波数kを設定する。例えば、k=kminとする。
[ステップS−402(終了判定)]コントローラ308は、測定波数kがkmin≦k≦kmaxか否かを判定する。kmin≦k≦kmaxが真(図9中ではYes)の場合、ステップS−403へ進み、そうでない(図9中ではNo)場合は、終了する。
[ステップS−403(トリガ信号発信)]波長掃引光源301は、掃引開始時にトリガ信号を出力し、光を出力する。
[ステップS−404(波数指示)]波数指示手段304は、波長掃引光源301からトリガ信号を受け、時間を測る対象となる光源の波数を出力する。ここでは波数としたが、光の波長、光の周波数としても良い。
[ステップS−405(フィルタリング)]狭帯域バンドパスフィルタ302は、波数指示手段304から波数を受け、その波数を中心周波数とする透過帯域として、波長掃引光源301から得た光を透過させ、その透過光を出力する。
[ステップS−406(光検知)]狭帯域バンドパスフィルタ302から出力されたフィルタリングされた光は、光検知器303で受光され、光の強度信号を出力する。
[ステップS−407(時間計測)]時間計測手段306は、光検知器303から出力された光強度信号と、波長掃引光源301からトリガ信号とを受け、トリガ信号と光強度信号との時間間隔を得る。光強度信号やトリガ信号の受信時刻を得る方法としては、光強度信号のピークを検出して、その検出時刻を光強度の信号の受信時刻とする方法、または、それぞれあるスレッショルドをあらかじめ定めておいて、そのスレッショルドを超える時刻をそれぞれの受信時刻とする方法がある。
[ステップS−408(時間−波数対応データ記録)]波数指示手段304が狭帯域バンドパスフィルタ302に設定させた波数と、波長掃引光源301のトリガ信号から光検知器303が光を検知するまでの時間とを対応させた時間−波数対応データk(t)を記録手段305に記録する。
[ステップS−409(波数更新)]波数kを更新する。例えば、kをk+δkと置き換える。そして、ステップS−402に戻る。
上記の動作手順では、測定スタート時の光の波数kをkminとしたが、kmaxとして波数更新ステップS−409において、kをk−δkとしても良い。上記の動作手順では、光の波数kをパラメータとしたが、光の波長λや周波数fをパラメータとしても良い。その場合は、k=2π/λ、k=2πf/cとして波数kに置き換え、上記の計算を行う。
図10に、時間−波数対応データ取得手段の機能ブロックの第2例を示す。第1例では、波長掃引光源301がトリガ信号を出力して、波数指示手段304と時間計測手段306が受ける構成であった。第2例では、トリガ信号出力手段307を付加し、波長掃引光源301と波数指示手段304と時間計測手段306に波長掃引の開始時を指定するトリガ信号をトリガ信号出力手段307が出すようにしても良い。その場合は、動作手順は下記のようになる。
[ステップS−401(測定波数範囲および初期波数設定)]波数指示手段304に波長掃引光源の光の波数の測定範囲kmin〜kmaxと、波数のステップδkを設定する。ここで、kmin<kmax、δk>0である。また、測定のスタート時の波数kを設定する。例えば、k=kminとする。
[ステップS−402(終了判定)]コントローラ308は、測定波数kがkmin≦k≦kmaxか否かを判定する。kmin≦k≦kmaxが真(図9中ではYes)の場合、ステップS−403へ進み、そうでない(図9中ではNo)場合終了する。
[ステップS−403(トリガ信号発信)]トリガ信号出力手段307から出力されたトリガ信号を波長掃引光源301が受け取り、波長掃引光源301は掃引を開始し、光を出力する。
[ステップS−404(波数指示)]波数指示手段304は、トリガ信号出力手段307からトリガ信号を受け、時間を測る対象となる光源の波数を出力する。ここでは波数としたが、光の波長、光の周波数としても良い。
[ステップS−405(フィルタリング)]狭帯域バンドパスフィルタ302は、波数指示手段304から波数を受け、その波数を中心周波数とするバンドパスとして、波長掃引光源301から得た光を透過させ、その透過光を出力する。
[ステップS−406(光検知)]狭帯域バンドパスフィルタ302から出力されたフィルタリングされた光は、光検知器303で受光され、光の強度信号を出力する。
[ステップS−407(時間計測)]時間計測手段306は光検知器303から出力された光強度信号と、トリガ信号出力手段307からトリガ信号とを受け、トリガ信号と光強度信号の時間間隔を得る。光強度信号やトリガ信号の受信時刻を得る方法としては、光強度信号のピークを検出してその検出時刻を光強度の信号の受信時刻とする方法、または、それぞれあるスレッショルドをあらかじめ定めておいて、そのスレッショルドを超える時刻をそれぞれの受信時刻とする方法がある。
[ステップS−408(時間−波数対応データ記録)]波数指示手段304が狭帯域バンドパスフィルタ302に設定させた波数と、トリガ信号出力手段307のトリガ信号から光検知器303が光を検知するまでの時間とを対応させた時間−波数対応データk(t)を記録手段305に記録する。
[ステップS−409(波数更新)]波数kを更新する。例えば、kをk+δkと置き換える。そして、ステップS−402に戻る。
狭帯域バンドパスフィルタ302の帯域は、波長掃引光源301の掃引幅の1%以下であることが望ましい。例えば、波長掃引幅が100nmである場合は、狭帯域バンドパスフィルタのバンド幅は中心波長±0.5nm以下であることが望ましい。
図8、10において、狭帯域バンドパスフィルタ302、光検知器303、波数指示手段304、記録手段305、時間計測手段306、コントローラ308をまとめたものを、時間−波数対応データ実測手段309と記載した。これについては、後述の別の時間−波数対応データ取得手段の説明で使用する。
(時間−波数対応データ補間生成手段)
上記の時間−波数対応データ取得手段においては、波数のステップδkを小さくし、波数を密に取得する構成であった。δkを大きくして波数を疎に取得し、時間−波数対応データ取得後、その疎な時間−波数対応データを、時間−波数対応データ補間生成手段によって補間して、密な時間−波数対応データを作成することが考えられる。
時間−波数対応データ補間生成手段で計算する例としては、tの多項式でkを表し、その多項式から必要な数の時刻を入力して波数を得るということが考えられる。n次関数で表す場合は、k(t)=antn+an-1tn-1+…+a0のような多項式が考えられる。ここで、an、an-1、…a0は未知パラメータであり、すでに取得した時間−波数対応データ取得を使って、最小二乗法によりan、an-1、…a0を推定する。このように生成した多項式のtに必要なだけの時刻を入力し、それに対する波数を得る。この方法で時間−波数対応データを作成する場合は、時間−波数対応データの測定数が少ないため、短時間で時間−波数対応データを作成することが期待できる。
また、時間−波数対応データ補間生成手段で計算する別の例としては、光源の構成が分かっている場合は、その構成から得られる時間−波数対応データの式を、上記の疎な時間−波数対応データに当てはめて、疎な時間−波数対応データを補間して、密な時間−波数対応データを作成することが考えられる。
図11に、リットマン型波長掃引光源の光学系の基本構成を示す。半導体光増幅器(SOA)804から出射した光は、コリメータレンズ806でコリメートされ、電源810からの印加電圧によって光偏向器807により偏向される。偏向光は、回折格子811で回折された後、ミラー812に達する。ミラー812に垂直入射した光のみが選択的に逆の光路をたどりSOA804に戻る。戻り光は、SOA804内部で増幅された後、SOA反射面805で一部反射し、再度SOA804内部で増幅された後にコリメータレンズ806側から出射する。このようにしてSOA反射面805とミラー812との間で光が繰り返し往復することによって、回折格子811とミラー812とで構成される光のバンドパスフィルタによる発振線幅の狭窄化が生じてレーザ発振する。SOA反射面805はハーフミラーとなっており、SOA804からの光が一部通過し、集光レンズ803によってアイソレータ802にカップリングし、光ファイバ801を通してレーザ光が出力される。
このような構成の光源では、レーザ光の波数kは以下のように表される。
ここで、mは回折格子811の回折光次数、Nは回折格子811の刻線数、Ψは光偏向器807の光偏向角、λ0はΨ=0時の発振波長であり、下記の式で表される。
ここで、φは光偏向器の出射光軸(Ψ=0時の光の出射光軸)とミラーの法線との成す角である。Ψの時間変動を表す関数が既知であり、その関数をΨ(t)と表すと、式(2−1)はkの時間関数となり、下記のようになる。
例えば、光偏向器807として、KTN光偏向器を使う場合を考える。
図12に、KTN光偏向器の構成を示す。直方体の形状をしているKTN(タンタル酸ニオブ酸カリウム)単結晶901の対向する面に電極902、903がオーミック接合されている。電極間の結晶厚みをd、KTN単結晶の光軸904方向の結晶長さをLで表している。KTN偏向器は、電極902、903間に直流電圧を印加してKTN結晶901内部に電子がトラップした状態で、使用する。電子がトラップされると、KTN結晶901は、ガウスの法則とカー効果に従って凸レンズとなる。この状態で電極902、903にさらにAC電圧を印加すると、AC電圧強度に従って、凸レンズが光軸904とは垂直な方向に移動するため、KTN結晶901に入射した光は、凸レンズの移動とともに偏向されて、出射光905となってKTN結晶901から出射される。
KTN偏向器の光の偏向角Ψは下記のように表される。
ただし、n0はKTN結晶901に電子をトラップさせないときの屈折率、g11は電気光学定数、εはAC電圧の周波数以下でのKTN結晶901の誘電率、V(t)は電極902、903間の電位差、ρはKTN結晶901内の電荷密度である。式(2−4)を式(2−3)に代入すると、kは以下のようになる。
ただし、ι0=−(n0)2√g11ε・sin(n0√g11ρL)/dである。もし、V(t)=V0sin(2πft)であり、V0は電圧振幅、fは電圧変動の周波数とすると、kは以下のようになる。
式(2−6)の中で、λ0、m、N、α、ι0V0、fの内、分かっていないものについては、実測した疎の時間−波数対応データを式(2−6)で当てはめることにより、未知パラメータを推定できる。例えば、Levenberg-Marquardt法を使って推定することが考えられる。得られた時間−波数の関数から計算する方法としては、上記で時間−波数の関数を多項式で表した場合と同様に、必要な数の時刻を入力して波数を得るということが考えられる。
このような方法で時間−波数対応データを作成する場合は、時間−波数対応データの測定数が少ないため、短時間で時間−波数対応データを作成することが可能となる。また、光源の構成に整合した式を当てはめるため、光源の構成とは関係のない多項式を使用するよりは、高精度な時間−波数対応データを生成できる。
上記は、k(t)が正確に予測できないことを前提に、時間−波数対応データを実測するか、疎の時間−波数対応データを実測して補間するという構成について述べた。もし、時間−波数対応データが計算で正確に算出できるのであればその計算式を使用して、時間−波数対応データを作成しても良い。例えば、図11に示した波長掃引光源を用いた場合、式(2−3)、(2−5)、(2−6)でk(t)を算出、つまり、時間−波数対応データを算出できる。このように計算によって時間−波数対応データを作成できれば、時間−波数対応データの作成時間は、極めて短縮できる利点がある。
上記の式(2−1)〜(2−6)は、図11に示したリットマン型波長掃引光源用の式であるが、φ=0とすれば、リトロー型波長掃引光源でも同様に適用することができる。
実施例2に引き続き、時間−波数対応データk(t)の取得手段の具体的な方法について述べる。実施例2では、時間−波数対応データを直接的に求める方法について述べたが、この方法では、多くの時間−波数対応データを取得する必要がある。実施例3では、直接的に求める時間−波数対応データを削減し、処理の軽減や時間短縮を行う。最初に、光の狭帯域バンドパスフィルタの中心波長と時間との関係(時間−波数対応データ)をいくつか取得する。次に、それら時間と波数の対応データの間を、図5に示す位相変化曲線取得手段112と同様の方法で取得した位相変化曲線を使って外挿または内挿をする。そのために、波長分散が無い(真空)場合、または、観測対象に対して波長分散が無視できる光路長を使い、干渉信号を得る。
図13に、実施例3にかかる時間−波数対応データ取得手段の機能ブロックを示し、図14にフローチャートを示す。波長掃引光源1001の出力は、光ファイバ1015を通ってビームスプリッタ1016で分岐され、一方は光ファイバ1017を通して干渉計1002に入り、他方は光ファイバ1019を通して時間−波数対応データ実測手段1009に入る。干渉計1002では、光ファイバ1017を通して入力された光を使い、波長分散が無い光路長差、または、波長分散が観測対象と比較して無視できる光路長差の光を干渉させ、受光素子1007で干渉光を受光して干渉信号1014を得る。この時の光路長差は予め設定された既知のものであり、その光路長差をzとする。
位相変化曲線実測手段1010では、波長掃引光源1001から出力される掃引開始を示すトリガ信号に同期して、干渉波形信号取得手段1011が、干渉信号im(t)を生成し、位相変化曲線取得手段1012が、干渉信号im(t)から位相変化曲線φm(t)を生成し出力する。
時間−波数対応データ実測手段1009では、波長掃引光源1001のトリガ信号を使って、光ファイバ1019を通して入力された光から疎な時間−波数対応データks(t)を生成し出力する。時間−波数対応データ外内挿手段1013では、時間−波数対応データの時刻ごとに位相変化曲線φm(t)を分割し、分割された位相変化曲線を使って、時間−波数対応データks(t)を補間する(離散的なks(t)間を内挿、または、ks(t)が存在する時間の外側を外挿)。補間されたデータ、つまり、密な時間−波数対応データk(t)を出力する。
時間−波数対応データ実測手段1009は、実施例2で説明した時間−波数対応データ実測手段309を使用しても良い。また、1または複数の固定の帯域通過中心波長を有する狭帯域バンドパスフィルタを使って、トリガ信号の発生時刻からこれらのバンドパスフィルタを通った光の時刻(例えば、フィルタ通過後の光強度がピークとなる時刻)までの差の時間と、それぞれのバンドパスフィルタの中心波数の対応したものを時間−波数対応データとしてもよい。位相変化曲線取得手段1012は、実施例1で説明した位相変化曲線取得手段112を使用しても良い。
以下、動作手順を説明する。ただし、波長掃引光源1001は動作をしており、トリガ信号を出し続けているものとする。また、干渉計1002の受光素子1007からも干渉信号(アナログ)1014が出続けているものとする。
[ステップS−1101(時間−波数対応データ実測)]時間−波数対応データ実測手段1009は、光ファイバ1019を通ってきた掃引光とトリガ信号から時間−波数対応データks(t)を生成する。
[ステップS−1102(干渉波形信号取得)]サンプル光側のzの位置に鏡などの反射面を置き、干渉計1002で生成した干渉信号1014を、干渉波形信号取得手段1011が取得して干渉信号im(t)を出力する。受光素子1007がアナログ出力であり、アナログ出力の信号を干渉波形信号取得手段1011が受ける場合は、A/D変換を行い、ディジタル信号として出力する。
干渉波形信号取得手段1011が干渉信号を取得するタイミングは、波長掃引光源が短波長から長波長へ、または、逆に長波長から短波長へ掃引を開始するタイミングとする。例えば、波長掃引光源から掃引開始時刻を示すトリガ信号を、干渉波形信号取得手段1011が得るようにしても良い。または、トリガ信号を出力するためのトリガ信号出力手段を別途用意し、波長掃引光源にトリガ信号を入力して、トリガ信号のタイミングで(あるいは同期して)波長掃引光源が掃引を開始しても良い。
[ステップS−1103(位相変化曲線取得)]位相変化曲線取得手段1012は、干渉波形信号取得手段1011が出力した干渉信号im(t)から位相変化曲線φm(t)を生成し出力する。
[ステップS−1104(時間−波数対応データ外内挿)]時間−波数対応データ実測手段1009から得た疎な時間−波数対応データks(t)は離散的なデータであり、(時刻、波数)という組み合わせデータks(ti)の集合である。ここで、iは整数であり、ks(ti)は時刻tiと波数の対応した離散的なデータであることを示している。
時間−波数対応データ外内挿手段1013は、時間−波数対応データ実測手段1009から得た疎な時間−波数対応データks(ti)の時刻tiごとに、位相変化曲線取得手段1012が出力した位相変化曲線φm(t)を分割する。説明のため、時刻tiのiが0〜nであるとし、時刻tiから時刻ti+1区間の位相変化曲線をφmti,ti+1(t)とする。また時刻t0以前のものをφms,t0(t)、時刻tn以降のものをφmtn,e(t)とする。それら分割した位相変化曲線φmti,ti+1(t)から分割した波数変化曲線kts,t0(t)、kti,ti+1(t)、ktn,te(t)を算出する。ただし、iは0〜nである。この方法としては、例えば、分割した位相変化曲線を2zで割ることが好例である。
図15に、疎な時間−波数対応データの外挿または内挿の例を示す。時間−波数対応データ外内挿手段1013は、kti,ti+1(t)の時刻ti、ti+1の波数をそれぞれks(ti)、ks(ti+1)とし、ks(ti)を内挿、および、外挿する。
分割された波数変化曲線kts,t0(t)、kti,ti+1(t)、ktn,te(t)(ただし、iは0〜n)は、干渉信号に重畳するノイズ等の影響で、ti〜ti+1の変化量が想定しているδkと厳密に一致しない場合がある。この場合は、時間−波数対応データ外内挿手段1013は、干渉信号に時間的に均等にノイズが重畳して均等に波数変化曲線が伸縮していると仮定して、分割された波数変化曲線kti,ti+1(t)を補正して整合をとる。例えば、分割された波数変化曲線のti〜ti+1の変化量をδkti,ti+1=kti,ti+1(ti+1)−kti,ti+1(ti)とすると、補正された(分割された)波数変化曲線k’ti,ti+1(t)は下記の式とする。
時間−波数対応データ外内挿手段1013は、すべての(疎の)時間−波数対応データks(ti)について、内挿・外挿が済めば、内挿・外挿した時間−波数対応データを出力して終了する。
上記は内挿と外挿の両方を行う方法について述べたが、必要に応じて内挿のみを行ってもよい。例えば、(疎の)時間−波数対応データks(ti)を2つだけ取得し、その間を内挿してもよい。また、逆に、(疎の)時間−波数対応データks(ti)を1つだけ取得し、ks(ti)の前後を外挿してもよい。
図16に、時間−波数対応データ取得手段におけるマッハツェンダ干渉計の構成を示す。図13に示した干渉計1002には、図1と同様に、マイケルソン干渉計を示したが、マッハツェンダ干渉計を用いても良い。
サンプル1303は、ブロック1(1320)とブロック2(1321)から構成される。ブロック1の面1(1322)と面2(1323)とは平行である。ブロック2の面1(1324)と面2(1325)も平行である。ブロック1の面2(1323)とブロック2の面1(1324)は平行に配置されている。ブロック1(1320)の面2(1323)とブロック2(1321)の面1(1324)の間は、真空、または、観測対象の屈折率の波長分散と比較して波長分散の小さいもの(例えば、観測対象がシリコンの場合は、空気や石英等)を充填する。ブロック1の面2(1323)を基準面1311とし、ブロック2の面1(1324)をサンプル内反射面1308とする。基準面1311とサンプル内反射面1308の間隔をzとする。このzは既知であるとする。ブロック1の面1(1322)やブロック2の面2(1325)でも反射が生じ、それらの反射光と、基準面1311やサンプル内反射面1308からの反射光の4つの反射光がお互いに干渉し合うことになる。しかし、波長掃引光源のコヒーレンス長Lcに対してブロック1、2内の光路長が十分に長くなるようにし、zを十分小さくすることにより、基準面1311の反射光とサンプル内反射面1308の反射光との干渉光以外の干渉強度を十分小さくすることができる。例えば、z=Lc/8とし、ブロック1、2内の光路長をLcとすると基準面1311の反射光とサンプル内反射面1308の反射光の干渉光よりも、それ以外の干渉光の強度を約40dB小さくすることが可能である。
また、ブロック1の面1(1322)とブロック2の面2(1325)に反射防止コート(ARコート)をすれば、基準面1311の反射光とサンプル内反射面1308の反射光強度をブロック1の面1(1322)とブロック2の面2(1325)より桁違いに大きくすることが可能となる。このため、基準面1311の反射光とサンプル内反射面1308の反射光による干渉信号(光路長zの干渉信号)をノイズなく受光素子1307から取り出すことが可能となる。
実施例2、3に引き続き、時間−波数対応データk(t)の取得手段の具体的な方法について述べる。ここでは、干渉計の光路長差を生じる媒質が波長分散媒質で構成され、その屈折率増加関数r(k)は既知であり、基準波数k0の時の光路長z0は既知であり、干渉信号im(t)から算出した位相φm(t)が与えられた時に、k(t)を求める方法について述べる。
k(t)を得る原理を以下に示す。式(15)を再掲すると以下のようになる。
ある時刻t=taにおいて式(4−3)をkについて解くことを考える。もし、r(k)がkの0次関数、つまり、r(k)=r0であるか、それに近似できるとすると、θ(k)=2・z0・r0・kとなるので、式(4−3)からkは以下のように算出される。
もし、r(k)がkの1次関数、つまり、r(k)=r0+r1kであるか、それに近似できるとすると、θ(k)=2・z0・(r0+r1k)・kとなるので、式(4−3)からkは以下のように算出される。
式(4−5)は2つの解が存在するが、実際の値に応じて、物理的に意味のあるものを選択する。r(k)の近似式中に現れる波数kは0以上を前提としているので、式(4−5)の右辺が0以上となる場合に意味がある。ここで、φm(t)、z0、r0は0以上であることから、(細かい議論は割愛するが)結果的にはr1≦0、かつ下記の式が物理的に意味のある式となる。
もし、r(k)がkの2次関数や3次関数であるか、それに近似できるとすると、θ(k)はkの3次関数や4次関数であるか、それに近似できるので、それぞれカルダノの方法やフェラーリの方法を使ってk(t)を得る。
r(k)がkの4次以上の関数や、kの多項式ではない関数であるか、それに近似できるとすると(あるいは、r(k)がkの1、2、3次の関数であっても)、
となる式のkを求めればよい。このような非線型方程式の解法としては、例えば、ニュートン・ラフソン(Newton-Raphson)法、割線法(secant method)、二分法、DKA(Durand-Kerner-Aberth)法等の反復解法がある。
式(4−6)からk(tα)を求める例としてニュートン法を使う場合について説明する。ただし、波数kの移動量Δkについては、φm(tα)をkに対しては定数とみなして、Δk=−(θ(k(tα))―φm(tα))/((∂θ/∂k)|t=tα)とする。ここで、(∂θ/∂k)|t=tαは、t=tα時の(∂θ/∂k)の値である。反復処理の終了を判断するためのΔkの閾値をδとする。
処理1)処理を始める前に終了条件として使用するパラメータδを入力する。
処理2)φm(tα)/(2z0)を計算し、初期値の波数k(tα)とする。
処理3)Δkを計算する。
処理4)Δk≦δであれば終了(そのときのk(tα)が求めるk(tα))。そうでなければ、処理5を行う。
処理5)k(tα)+Δkをk(tα)に置き換え、処理3に戻る。
なお、ニュートン・ラフソン法を使用すると、r(k)がk(tα)の1次関数の場合はθ(k)がk(tα)の2次関数となるので、1回の反復でk(tα)を算出できる。
ところで、式(4−1)の左辺φm(t)は、観測した干渉信号im(t)から、S−2202〜S−2205によって得られるが、im(t)の観測誤差やim(t)に含まれる雑音によって、または、S−2205で偏角を求める際のアンラップ処理において、φm(t)に誤差が含まれる可能性がある。これを考慮して、1つ以上の時間−波数対応データを、実施例2、3に記載した方法で実測し、φm(t)を補正する。補正方法としては、光路長差2z0と掃引スタート時の波数k0に誤差が含まれていると仮定し、2z0に関してはφm(t)の係数、k0に関してはφm(t)のバイアス値を、実測のk(t)に近づける方法を取る。
具体的には、下記Jが最小となる係数p、qを求める(最小2乗法)。
ここで、tiは時間−波数対応データk(ti)の取得時刻であり、i=0〜N−1のN個の時間−波数対応データk(ti)を取得し、φm(t)の補正に使用していることを示している。また、φm(ti)はその時刻ti時のim(t)の位相である。
p、qを求める方法としては、上記Jのp、qそれぞれで偏微分した式が0となる連立方程式を解くことによりp、qを求める方法がある。具体的には下記の正規方程式を解くことによってp、qを求める。
このようにして求めたp、qを使い、下記のように位相を補正し、補正された位相変化曲線φm’(t)を得る。
以上の原理にを使った、時間−波数対応データを取得する方法について説明する。図17に、時間−波数対応データ取得手段の機能ブロックを示し、図18にフローチャートを示す。
図17の1401,1409〜1412は、それぞれ図13の1001,1009〜1012と同じであり、また、図18のS−1501〜S−1503は、それぞれ図14のS−1101〜S−1103と同じであるため、符号1401,1409〜1412で表される構成要素とS−1501〜S−1503の手順の説明と割愛し、図13にはない、屈折率増加関数生成手段1421、位相変化曲線補正手段1422、時間−波数対応データ生成手段1423、および、図14にはない、S−1504、S−1505、S−1506について述べる。以下、S−1504、S−1505、S−1506の手順について述べる。
[ステップS−1504(屈折率増加関数生成)]屈折率増加関数生成手段1421は、屈折率分散データn(k)と基準波数k0が入力され、屈折率増加関数r(k)=n(k)/n(k0)を計算し、r(k)を出力する。
[ステップS−1505(位相変化曲線補正)]位相変化曲線補正手段1422は、時間−波数対応データ実測手段1409から得た時間−波数対応データks(t)と、位相変化曲線実測手段1410から得た位相変化曲線φm(t)と、屈折率増加関数生成手段1421から出力された屈折率増加関数r(k)と、光路長差2z0とが入力され、式(4−7)のJが最少となるp、qを算出し、p、qを使って式(4−11)によって補正された位相変化曲線φm’(t)を出力する。位相変化曲線補正手段1422とステップS−1505については、後で詳述する。
[ステップS−1506(時間−波数対応データ生成)]時間−波数対応データ生成手段1423は、屈折率増加関数生成手段1421から出力された屈折率増加関数r(k)と、位相変化曲線補正手段1422から出力された位相変化曲線φm’(t)と、光路長差2z0とが入力され、r(k)の近似式を求め、φm’(t)の時間範囲において、各tにおけるk(t)を、φm’(t)と2z0とr(k)を算出し、算出したk(t)を出力する。時間−波数対応データ生成手段1423とステップS−1506については、後述する。
図19に、位相変化曲線補正手段の機能ブロックを示し、図20に、フローチャートを示す。以下、動作手順を示す。
[ステップS−1701(補正係数算出)]補正係数算出手段1601は、時間−波数対応データks(t)と位相変化曲線φm(t)と光路長差2z0が入力され、式(4−8)をp、qについて解くか、または、式(4−9)や式(4−10)の計算をしてp、qを算出し、出力する。ここで、ks(t)のデータはN個あり、それぞれの時刻はti(iは0〜N−1)で表される。また、上式(4−7)〜(4−10)にあるk(ti)は、ks(ti)を代入して計算する。式(4−8)をp、qについて解く方法としては、ガウスの消去法等の直接法や、ガウス・ザイデル法、SOR法等の反復法や、共役勾配法等がある。
[ステップS−1702(補正係数演算手段)]補正係数演算手段1602は、式(4−11)の計算をして位相変化曲線φm(t)を補正し、補正された位相変化曲線φm’(t)を出力する。
図21に、時間−波数対応データ生成手段の機能ブロックを示し、図22に、フローチャートを示す。以下、動作手順を示す。
[ステップS−1901(近次関数パラメータ算出)]近似関数パラメータ算出手段1801は、屈折率増加関数r(k)が入力され、r(k)の近似関数rApp(k)のパラメータを算出し、出力する。
近似関数は、予め所定の関数が決められている。例えば、kの0次関数や1次関数といった具合に、kのm次関数(mは0以上の整数)とすることが考えられる。この場合、近似関数のパラメータは、m次関数の場合は、rmkm+rm-1km-1+…+r0のrm〜r0のことである。これらのパラメータは、r(k)を使って最小二乗法で求めることができる。
また、kのm次関数以外の関数の線形結合、つまり、rmΨm(k)+rm-1Ψm-1(k)+…+r0Ψ0(k)の場合も同様である。この場合、Ψm(k)〜Ψ0(k)は予め決めておく。(なお、Ψi(k)=kiとすると、kのm次の関数となる)この場合、次の正規方程式を係数rm〜r0について解くことで係数rm〜r0を求めることができる。
ただし、上式は波数kがM個の離散的に与えられ、ki(i=0〜M)としている。式(4−12)を係数rm〜r0について解く方法としては、ガウスの消去法等の直接法や、ガウス・ザイデル法、SOR法等の反復法や、共役勾配法等がある。
上記は、近似関数を与えた方法であったが、最適な近似関数を自動的に得る方法が考えられる。例えば、Ψm(k)〜Ψ0(k)を予め決めておき(例えば、Ψi(k)=ki等)、Ψ0(k)からrmΨm(k)+rm-1Ψm-1(k)+…+r0Ψ0(k)までをr(k)に当てはめた近似式のそれぞれのパラメータ(係数)riとR2を計算し、R2が最も小さい近似式を採用しても良い。R2の代わりに、近似式と実データとの差の2乗和(Σ{r(ki)−rmΨm(ki)+rm-1Ψm-1(ki)+…+r0Ψ0(ki)}2(残差ともいう)を使用しても良い。なお、R2は決定係数と呼ばれるものであり、その定義は多数存在する。以下にその一例を示す。
ただし、fi=rmΨm(ki)+rm-1Ψm-1(ki)+…+r0Ψ0(ki)であり、kmeanはki(ただし、i=0〜M)の平均値である。また、式(4−13)の分子、および、分母を自由度で調整した、下記のような例もある。
式(4−14)は自由度調整済みの決定係数(adjusted R2)と呼ばれる。
[ステップS−1902(波数算出)]波数算出手段1802は、補正された位相変化曲線φm’(t)と、近似関数算出手段1801から得た屈折率増加関数近似関数rApp(k)と、光路長差2z0が入力され、rApp(k)に応じて時間−波数対応データk(t)を算出し、出力する。
・rApp(k)がkの0次関数の場合は、式(4−4)に示す式によりk(t)を算出する。
・rApp(k)がkの1次関数の場合は、式(4−5)’に示す式によりk(t)を算出する。
・rApp(k)がkの2次関数の場合は、式(4−1)の右辺がkの3次関数となるが、φm(t)を定数として、カルダノの方法によりk(t)を算出する。
・rApp(k)がkの3次関数の場合は、式(4−1)の右辺がkの4次関数となるが、φm(t)を定数として、フェラーリの方法によりk(t)を算出する。
・rApp(k)がkの4次関数以上、または、kの多項式ではない関数であるとすると、式(4−6)が成り立つk(t)を算出する。このような非線型方程式の解法としては、例えば、ニュートン・ラフソン(Newton-Raphson)法、割線法(secant method)、二分法、DKA(Durand-Kerner-Aberth)法等の反復解法を用いる。
上記のk(t)の計算は、時間tを少しずつ変えながら、φm’(t)のデータの全時間領域内で行う。例えば、φm’(t)が、時間ti(i=0〜L)それぞれに位相データを持つ離散データであり、ti+1=ti+Δt(ただし、Δt>0)という場合は、t0から順番にtLまで、それぞれのtiに対して上記のk(ti)を算出し、tiとk(ti)を組みにしたデータを時間−波数対応データとして出力しても良い。
屈折率は、サンプルの温度によって変化する。ここでは、実施例1における、ステップS−207波長分散補正係数算出において、波長分散補正係数算出手段107に入力する屈折率分散データna(k)、nb(k)を、サンプルa、bの温度に応じて補正する装置について述べる。
図23に、屈折率分散データの温度補正手段の機能ブロックを示し、図24に、フローチャートを示す。以下の説明ではサンプルaの屈折率分散データna(k)について述べるが、サンプルbの屈折率分散データnb(k)についても同様である。
[S−701(サンプル温度取得)]サンプル温度取得手段602がサンプルaの温度Taを取得し、屈折率分散温度補正手段601へ送る。サンプルaの温度の取得は、サーミスタ等の温度センサをサンプルaに接着して、その温度センサの電気的な特性を検知する装置を用いて温度変化を取得することが考えられる。また、サーモビューワ等、赤外線等の光の分布と強度を電気的に取得して温度に換算する方法でも良い。
[S−702(屈折率分散データ、および、想定温度取得)]屈折率分散データ温度補正手段601が、屈折率分散データna(k)と、該屈折率分散データna(k)が想定している(屈折率分散データna(k)を取得した時のサンプルの)温度T0を取得する。また、S−701(サンプル温度取得)にてサンプル温度取得手段602が取得したサンプル温度Taを取得する。
[S−703(屈折率分散データ温度補正)]屈折率分散データ温度補正手段601が、サンプルaの温度係数Δn(k)を使い、補正された屈折率分散データna’(k)を算出し、出力する。na’(k)は例えばna’(k)=na(k)+Δn(k)(Ta−T0)のように計算される。
上記は、S−701、S−702、S−703の順での動作を示したが、図7に示すように、S−701とS−702は並列動作させても良いし、S−702、S−701、S−703の順で動作させても良い。
SS−OCT装置の基本構成は、波長掃引光源、干渉計および信号処理装置から構成され、本実施形態のリスケーリング方法を実行する信号処理装置は、コンピュータとプログラムによっても実現することができ、リスケーリング方法を実行するためのプログラムを、記録媒体に記録することも、ネットワークを通して提供することもできる。