パケット方式のイーサネット(登録商標)の性能向上および普及の拡大が進んでいる。一方、SDI(Serial Digital Interface)に基づくビデオルータ、時分割多重(TDM:Time Division Multiplexing)方式のネットワークなど、回線交換方式に基づくネットワークは、拡張性、運用コスト、保守(メンテナンス)などの観点から、競争力を失いつつある。そのため、イーサネットへの置き換えが進められている。
イーサネットは、データ伝送用に設計された非同期のネットワークであり、パケット遅延変動(PDV:Packet Delay Variation)が発生する。例えば、パケットが集中し、すぐに送信できない場合、イーサネットでは、パケットが一旦バッファに蓄積される。そして、送信可能になり次第、蓄積されたパケットがバッファから順次取り出されて、送信される。そのため、パケットが送信装置から送信されてから、受信装置に到達するまでの伝搬遅延は一定の値に保たれず、PDVが発生する。PDVは、非圧縮のビデオ映像の伝送、無線バックホールおよび専用回線サービス(wireless backhaul and leased line service)など、信号の送信装置および受信装置それぞれのクロックを正確に同期させる必要がある用途では、信号の伝送路をイーサネットに置き換える上で障害となる。
送信装置と受信装置との間のクロックの位相差を正確に計測することができれば、位相ロックループ(PLL:Phase Locked Loop)の技術により、正確にクロックを同期させることができる。
SDI信号を伝送する同軸ケーブルおよび回線交換方式の伝送路では、伝搬遅延は一定である。送信装置から一定の時間間隔で同期信号を伝送すれば、伝搬遅延時間の経過後、受信装置にその同期信号が到達する。伝搬遅延は一定であるため、同期信号とともに位相情報を伝送すれば、受信装置は、受信した位相情報に伝搬遅延に対応する一定値を加算することで、同期信号の受信時の送信装置のクロック位相を得ることができる。同期信号の受信時の受信装置のクロック位相が、送信装置のクロック位相に一致するように、受信装置のクロック発信器を制御することで、送信装置と受信装置との間で正確にクロックを同期させることができる。
しかしながら、イーサネットでは伝搬遅延が変化するため、上述した手法では、同期信号の受信時の送信信号のクロック位相を正確に求めることができない。そのため、クロック同期、時刻同期あるいは周波数同期を行うためには、特別な手法が必要である。
イーサネットで高精度なクロック同期を可能とする技術として、IEEE1588 プレシジョンタイムプロトコル(PTP:Precision Time Protocol)が開発されている。PTPでは、クロックの位相差の計測に用いるパケットについては、2つの伝送装置間の往路と復路とで伝搬遅延を等しくする機能を有するネットワークスイッチが用いられる。このようなネットワークスイッチを用いることで、2つの伝送装置間を往復する計測パケットを伝送する場合、往路と復路とで伝搬遅延が等しく保たれる。そのため、往路の計測パケットの受信時刻と送信時刻との時間差、および、復路の計測パケットの受信時刻と送信時刻との時間差の和は、伝搬遅延の2倍となる。したがって、往路における受信時刻と送信時刻との時間差、および、復路における受信時刻と送信時刻との時間差の和の半分の値を伝搬遅延とすることで、2つの伝送装置間でクロックを同期させることができる。
しかしながら、PTPを利用する同期システムでは、伝送装置間を接続する全てのネットワークスイッチがPTPに対応していなければ、伝搬遅延の計測結果が不正確になるという問題がある。
上述したように、ネットワークの伝搬遅延は頻繁に変化する。しかしながら、伝搬遅延の最小値(最小遅延)はほぼ一定となるという性質がある。そこで、特許文献1には、この性質を利用して、PTPに対応しないネットワークスイッチで構成されたネットワークにおいても、時間同期を行うシステムが記載されている。
特許文献1に開示されているシステムは、パケットネットワークを介して接続されたタイムサーバおよびタイムクライアントからなる同期システムである。タイムクライアントは、タイムクライアントのローカルな時刻(クライアント時刻)を、タイムサーバの時刻(サーバ時刻)に同期させる。
ローカルなクライアント時刻は、タイムクライアント内の発信器の出力パルスをクロックカウンタでカウントすることで生成される。特許文献1には、発信器としてフリーラン水晶発信器を用いるシステムの構成と、サーバ時刻との誤差を補正するように駆動される位相ロックループ(PLL)の発信器を用いるシステムの構成とが記載されている。図2は、フリーラン水晶発信器を用いた同期システムの構成を示すブロック図である。また、図3は、PLLの発信器を用いた同期システムの構成を示すブロック図である。
図2,3に示す同期システムは、タイムサーバ14と、タイムサーバ14とパケットネットワーク12を介して接続されたタイムクライアント16とを備える。
タイムクライアント16は、タイミングプロトコルエンジン26と、タイムスタンプフィルタおよび最小遅延選択部28と、オフセット推定および最小遅延急変検出部30と、同期仮想クロック32と、位相検出部38と、ループフィルタ40と、発振器42と、クロックカウンタ44とを備える。タイミングプロトコルエンジン26、タイムスタンプフィルタおよび最小遅延選択部28、オフセット推定および最小遅延急変検出部30、および、同期仮想クロック32は、最小遅延およびクロックオフセット推定部24を構成する。図2に示すタイムクライアント16はさらに、フリーラン水晶発振器50と、クロックカウンタ36とを備える。
図2に示すタイムクライアント16においては、フリーラン水晶発振器50は、パルス信号をクロックカウンタ36に出力する。クロックカウンタ36は、フリーラン水晶発振器50から出力されたパルス信号をカウントしてクライアント時刻を生成し、タイミングプロトコルエンジン26、タイムスタンプフィルタおよび最小遅延選択部28、オフセット推定および最小遅延急変検出部30、および、同期仮想クロック32に出力する。
図3に示すタイムクライアント16においては、クロックカウンタ44から、タイミングプロトコルエンジン26、タイムスタンプフィルタおよび最小遅延選択部28、オフセット推定および最小遅延急変検出部30、および、同期仮想クロック32にクライアント時刻が出力される。その他の構成は、図2に示すタイムクライアント16と、図3に示すタイムクライアント16とで同様である。
最小遅延およびクロックオフセット推定部24は、パケットネットワーク12を介してタイムサーバ14とタイム転送プロトコル(Time Transfer Protocol)のメッセージを交換し、タイムサーバ14のサーバ時刻を推定する。
タイミングプロトコルエンジン26は、タイム転送プロトコルのメッセージをタイムサーバ14に送信するとともに、タイムサーバ14から送信されてきたタイム転送プロトコルのメッセージを受信する。タイミングプロトコルエンジン26は、受信したメッセージから、タイミングプロトコルエンジン26からタイムサーバ14に送信したメッセージの送信時刻およびタイムサーバ14での受信時刻と、タイムサーバ14から送信されたメッセージの送信時刻およびタイムクライアント16での受信時刻とを示すタイムスタンプを取り出す。タイミングプロトコルエンジン26は、取り出したタイムスタンプをタイムスタンプフィルタおよび最小遅延選択部28に出力する。
タイムスタンプフィルタおよび最小遅延選択部28は、サンプリング間隔Tsp内に交換されたタイム転送プロトコルのメッセージについて、タイミングプロトコルエンジン26から出力されたタイムスタンプに基づき、伝搬遅延を計算する。タイムスタンプフィルタおよび最小遅延選択部28は、伝搬遅延が最小となるメッセージを、タイムクライアント16からタイムサーバ14へのメッセージ(往路メッセージ)、タイムサーバ14からタイムクライアント16へのメッセージ(復路メッセージ)ごとに選択する。タイムスタンプフィルタおよび最小遅延選択部28は、選択したメッセージからクロックオフセットθminを計算する。クロックオフセットθminは、クライアント時刻のサーバ時刻からのオフセットである。タイムスタンプフィルタおよび最小遅延選択部28は、最小の伝搬遅延(最小遅延dmin)およびクロックオフセットθminを、オフセット推定および最小遅延急変検出部30に出力する。
上述したように、伝搬遅延は変化するが、その最小値(最小遅延)はほぼ一定となるという性質がある。したがって、伝搬遅延が最小となるメッセージの伝搬遅延は一定とみなすことができる。そのため、クロックオフセットθminを精度よく計算することができる。
オフセット推定および最小遅延急変検出部30は、タイムスタンプフィルタおよび最小遅延選択部28から出力された最小遅延dminの変化を監視し、オフセット推定値θ^を計算して同期仮想クロック32に出力する。オフセット推定および最小遅延急変検出部30は、最小遅延dminが急変しなければ、最小遅延dminから計算したクロックオフセットθminをローパスフィルタ処理して、オフセット推定値θ^として同期仮想クロック32に出力する。また、オフセット推定および最小遅延急変検出部30は、最小遅延dminが急変した場合には、急変が生じた時点のクロックオフセットθminを、オフセット推定値θ^として同期仮想クロック32に出力する。
同期仮想クロック32は、オフセット推定および最小遅延急変検出部30から出力されたオフセット推定値θ^を、クライアント時刻から減算し、サーバ推定時刻S^として、位相検出部38に出力する。
位相検出部38は、同期仮想クロック32から出力されたサーバ推定時刻S^と、クロックカウンタ44の出力信号(クライアント時刻)との差分を、位相誤差信号としてループフィルタ40に出力する。
ループフィルタ40は、位相検出部38から出力された位相誤差信号から発信器制御信号を作成する信号処理回路である。ループフィルタ40は、発信器出力のクライアントクロックの周波数を増減し、位相誤差信号がゼロとなるように制御する発振器制御信号を作成し発振器42に出力する。
発振器42は、ループフィルタ40から出力された発振器制御信号により決定される周波数で発振し、クライアントクロックをクロックカウンタ44に出力する。
クロックカウンタ44は、発振器42から出力されたクライアントクロックをカウントしてクライアント時刻を生成し、位相検出部38に出力する。また、図3に示すタイムクライアント16においては、クロックカウンタ44は、タイミングプロトコルエンジン26、タイムスタンプフィルタおよび最小遅延選択部28、オフセット推定および最小遅延急変検出部30、および、同期仮想クロック32に、生成したクライアント時刻を出力する。
タイムクライアント16は、同期仮想クロック32から出力されたサーバ推定時刻S^に一致するように、発振器42を制御することで、タイムサーバ14のサーバ時刻と、タイムクライアント16のクライアント時刻とを同期させることができる。位相検出部38、ループフィルタ40、発振器42およびクロックカウンタ44は、PLLを構成する。
無線通信システムでは、極めて高い精度のクロックが必要である。このようなシステムでは、クライアントクロックの位相雑音を低く保つ必要がある。
図2に示す同期システムにおいては、フリーラン水晶発振器50の位相雑音が、同期仮想クロック32の出力に影響する。そのため、クライアントクロックにフリーラン水晶発振器50の位相雑音が加算される。したがって、図2に示す同期システムでは、2つの発振器(フリーラン水晶発振器50および発振器42)が必要になるとともに、フリーラン水晶発振器50として、位相雑音の極めて小さい発振器を用いる必要がある。
図3に示す構成(以下、従来手法の構成と称する)では、クライアントクロックとして、PLLの発振器42の出力が用いられる。PLLでは、クライアント時刻がサーバ推定時刻S^に一致するように制御が行われるため、時間とともに、緩やかにクライアントクロックの周波数が変化する。最小遅延およびクロックオフセット推定部24では、クライアントクロックから作成したクライアント時刻を用いて、サーバー推定時刻を計測している。このため、図3の構成ではPLLの発信器42の出力が、PLLの入力であるサーバー推定時刻に影響を及ぼす。従来手法はこの影響が考慮されていないため、PLLの動作が不安定になることがある問題があった。
上述したように、同期仮想クロック32では、オフセット推定値θ^と、クライアント時刻とに基づきサーバ推定時刻S^が生成される。また、位相検出部38では、サーバ推定時刻S^と、クライアント時刻とに基づき位相誤差信号が生成される。したがって、同期仮想クロック32の処理および位相検出部38の処理は、オフセット推定値値θ^を反転する処理と等価である。また、最小遅延dminが急変しない場合には、オフセット推定および最小遅延急変検出部30の処理は、ローパスフィルタ処理と等価である。したがって、図3に示す従来手法のシステム構成は、図4に示すシステム構成にモデル化することができる。
図4においては、オフセット推定および最小遅延急変検出部30と、同期仮想クロック32と、位相検出部38とが削除され、タイムスタンプフィルタおよび最小遅延選択部28とループフィルタ40との間に、ローパスフィルタ31および正負反転部39が設けられている。
タイムスタンプフィルタおよび最小遅延選択部28は、サンプリング間隔Tsp間隔で、サーバ時刻とクライアント時刻との差を検出する位相検出部として動作する。したがって、タイムスタンプフィルタおよび最小遅延選択部28、ローパスフィルタ31、正負反転部39、ループフィルタ40、発振器42およびクロックカウンタ44は、クライアント時刻とサーバ時刻との誤差を補正するように駆動される位相ロックループ34を構成する。
位相ロックループ34では、サーバクロックとクライアントクロックとの位相誤差に相当するクロックオフセットθminに対して、ローパスフィルタ31によるフィルタ処理が行われる。そして、ローパスフィルタ31の出力信号に対して、正負反転部39により反転処理が行われ、位相誤差信号として、ループフィルタ40に入力される。したがって、図5,6に示すように、図4に示すPLLの閉ループ制御モデルは、正確には、従来手法の構成におけるPLLの閉ループ制御モデル(図5)に、ローパスフィルタ(GLPF(z))を追加した構成(図6)となる。
典型的なM(Mは正の整数)次の線形位相FIR(Finite Impulse Response)フィルタでは、サンプリング間隔のM/2倍(Tsp×M/2)に相当する遅延が付加される。遅延が付加されることにより、遅延と周波数との積に比例した位相の遅れが制御モデルの誤差(以下制御モデル誤差とよぶ)として生じる。この制御モデル誤差により、PLLが設計通りに動作せず、動作が不安定になるという問題があった。この問題は、ローパスフィルタ31を含めた制御モデルを用いて、ループフィルタ40を設計することで、解決することが考えられる。
しかしながら、多数の機材が接続するネットワーク、あるいは、大量のパケットが流れる混雑したネットワークでは、最小遅延が頻繁に変化し、クロックオフセットθminには多くの雑音が生じる。雑音の除去性能を向上させるためには、ローパスフィルタの次数を増加させることが効果的であるが、次数に比例して遅延が増加するため、制御モデル誤差の影響が一層大きくなる。
また、周波数特性など雑音の性質は、ネットワークの速度および混雑度、ネットワークインタフェースおよび伝送路の種類、サンプリング間隔などによって大きく変化する。雑音の性質に応じて、ローパスフィルタの周波数特性を変更すると、その変更に対応してループフィルタ40を再設計する必要が生じる。
従来手法は、上述したように、伝搬遅延が最小となるメッセージを用いてクロックオフセットθminを計算することで、PDVの影響を小さくする。しかしながら、クロックオフセットθminの計算に用いたメッセージは、サンプリング間隔Tspの間で観測される多数のメッセージのなかから、1つ取り出した伝搬遅延が最小のメッセージである。サンプリング間隔Tspの間で一番古い時間に観測されたメッセージから計算したクロックオフセットθminと、サンプリング間隔Tspの間で一番新しい時間に観測されたメッセージから計算したクロックオフセットθminとでは、観測時刻がTspだけ異なる。このため、従来手法では、計算されたクロックオフセットθminの観測時刻にTspの時刻誤差を生じる問題がある。
サンプリング間隔Tspごとに発信器32の制御信号を更新するPLLでは、クロックオフセットθminは、サンプリング間隔Tspの時間経過する毎に、サーバクロックの周波数fsとクライアントクロックの周波数fcとの周波数誤差(fc−fs)をサンプリング間隔Tspで積分した値だけ変化する。すなわち、PLLの閉ループ制御モデルでは、サンプリング間隔の時間経過後のクロックオフセットθminの変化が(fc−fs)・Tspとなることを想定してループフィルタ40を設計している。一方、伝搬遅延が最小のメッセージから計算したクロックオフセットθminをクロックオフセットθminの観測値として用いると、上述したクロックオフセットθminの観測時刻の誤差により、クロックオフセットθminの観測間隔は0からサンプリング間隔Tspの2倍まで変化する。このため、クロックオフセットθminの観測値には±(fc−fs)・Tspの観測誤差を生じる。そのため、伝搬遅延が最小となるメッセージを用いてクロックオフセットθminを計算する方法では、大きな観測誤差を生じ、制御に不具合を生じる問題がある。
クロックオフセットθminの観測誤差を軽減するために、伝搬遅延が最小のメッセージを用いる代わりに、観測したクロックオフセットθminの雑音を、ローパスフィルタで除去することも考えられる。しかしながら、上述したように、雑音を除去するために、ローパスフィルタの次数を大きくすると、制御モデル誤差が大きくなってしまう。制御モデル誤差が生じると、PLLの動作が不安定になり、タイムサーバとタイムクライアントとを高精度に同期させることが困難となる。
上記のような問題点に鑑みてなされた本発明の目的は、PLLの動作を安定化させ、タイムサーバとタイムクライアントとの同期の高精度化を図ることができる同期システム、タイムクライアントおよびプログラムを提供することにある。
上記課題を解決するため、本発明に係る同期システムは、タイムサーバと、前記タイムサーバとパケットネットワークを介して通信を行うタイムクライアントと備え、前記タイムクライアントは、前記パケットネットワークを介して前記タイムサーバとタイムスタンプメッセージの送受信を行い、前記タイムサーバに送信したタイムスタンプメッセージの送信時刻および該タイムスタンプメッセージの前記タイムサーバでの受信時刻と、前記タイムサーバから送信されてきたタイムスタンプメッセージの受信時刻および該タイムスタンプメッセージの前記タイムサーバからの送信時刻とを示すタイムスタンプを、所定の観測周波数で出力するタイミングプロトコルエンジンと、前記タイムスタンプに基づき、前記タイムサーバのサーバ時刻と、前記タイムクライアントのローカルなクライアント時刻とのクロックオフセットを計算するクロックオフセット計算部と、前記クロックオフセットの不要周波数成分を除去して出力する雑音除去フィルタと、前記雑音除去フィルタの出力信号を所定のダウンサンプル比率でダウンサンプルし、位相誤差信号を生成するダウンサンプラと、前記位相誤差信号に基づき、前記クライアント時刻を補正する補正部と、を備え、前記雑音除去フィルタは、前記観測周波数に前記ダウンサンプル比率をかけた周波数の半分より低い周波数において振幅特性一定かつ直線位相特性を有する。
また、本発明に係る同期システムにおいて、前記観測周波数の逆数をTobsとすると、前記雑音除去フィルタは、前記観測周波数に前記ダウンサンプル比率をかけた周波数の半分より高いカットオフ周波数を有し、遅延時間がM×Tobs/2であるM(Mは正の整数)次のローパスFIRフィルタであることが好ましい。
また、本発明に係る同期システムにおいて、前記ダウンサンプル比率をN/D(N,Dは正の整数、かつ、N<D)とすると、M×N/2Dが整数であることが好ましい。
また、上記課題を解決するため、本発明に係るタイムクライアントは、タイムサーバとパケットネットワークを介して通信を行うタイムクライアントであって、前記パケットネットワークを介して前記タイムサーバとタイムスタンプメッセージの送受信を行い、前記タイムサーバに送信したタイムスタンプメッセージの送信時刻および該タイムスタンプメッセージの前記タイムサーバでの受信時刻と、前記タイムサーバから送信されてきたタイムスタンプメッセージの受信時刻および該タイムスタンプメッセージの前記タイムサーバからの送信時刻とを示すタイムスタンプを、所定の観測周波数で出力するタイミングプロトコルエンジンと、前記タイムスタンプに基づき、前記タイムサーバのサーバ時刻と、前記タイムクライアントのローカルなクライアント時刻とのクロックオフセットを計算するクロックオフセット計算部と、前記クロックオフセットの不要周波数成分を除去して出力する雑音除去フィルタと、前記雑音除去フィルタの出力信号を所定のダウンサンプル比率でダウンサンプルし、位相誤差信号を生成するダウンサンプラと、前記位相誤差信号に基づき、前記クライアント時刻を補正する補正部と、を備え、前記雑音除去フィルタは、前記観測周波数に前記ダウンサンプル比率をかけた周波数より低い周波数において、振幅特性一定かつ直線位相特性を有する。
また、上記課題を解決するため、本発明に係るプログラムは、コンピュータを上記のタイムクライアントとして機能させる。
本発明に係る同期システム、タイムクライアントおよびプログラムによれば、PLLの動作を安定化させ、タイムサーバとタイムクライアントとの同期の高精度化を図ることができる。
以下、本発明を実施するための形態について、図面を参照しながら説明する。各図中、同一符号は、同一または同等の構成要素を示している。
図1は、本発明の一実施形態に係る同期システム1の構成例を示す図である。本実施形態に係る同期システム1は、パケットネットワーク12を介した時間同期を図るためのシステムである。
図1に示す同期システム1は、タイムサーバ14と、タイムサーバ14とパケットネットワーク12を介して接続されたタイムクライアント16Aとを備える。
タイムサーバ14は、サーバクロックを備える。サーバクロックは、周波数変動が極めて少ない発振器である。タイムサーバ14は、サーバクロックから出力されるパルス信号をカウントしてサーバ時刻を生成する。また、タイムサーバ14は、タイムクライアント16Aとタイムスタンプを格納したタイムスタンプメッセージの交換(送受信)を行う。
タイムスタンプは、タイムスタンプメッセージを送信した送信時刻および受信した受信時刻を示す。具体的には、タイムスタンプは、タイムスタンプメッセージを格納したパケットを送信した送信時刻および受信した受信時刻を示す。タイムスタンプメッセージは、タイムスタンプを格納したメッセージである。タイムスタンプメッセージは、パケットに格納されて、タイムクライアント16Aからタイムサーバ14に、あるいは、タイムサーバ14からタイムクライアント16Aに、パケットネットワーク12を介して伝送される。
タイムクライアント16Aからタイムサーバ14に送信されるタイムスタンプメッセージ(往路メッセージ)には、そのタイムスタンプメッセージを送信したタイムクライアント16Aのクライアント時刻のタイムスタンプTcdが格納される。また、タイムサーバ14からタイムクライアント16Aに送信されるタイムスタンプメッセージ(復路メッセージ)には、そのタイムスタンプメッセージを送信したタイムサーバ14のサーバ時刻のタイムスタンプTmbが格納される。
タイムサーバ14は、復路メッセージに、往路メッセージの送信時刻を記録したタイムスタンプTcd、および、往路メッセージの受信時刻を記録したタイムスタンプTmcを含めて、タイムクライアント16Aに送信する。タイムクライアント16Aは、復路メッセージを受信したクライアント時刻を計測することにより、復路メッセージを受信したクライアント時刻のタイムスタンプTcaを取得する。タイムクライアント16Aは、受信した復路メッセージに格納された、復路メッセージが送信されたサーバ時刻のタイムスタンプTmb、および、往路メッセージの送信時刻および受信時刻を記録したタイムスタンプTcd,Tmcを取り出すことにより、往路メッセージおよび復路メッセージそれぞれの送信時刻および受信時刻を示す4つのタイムスタンプTcd,Tmc,Tmb,Tcaを取得することができる。
タイムスタンプメッセージのプロトコルとしては、例えば、ネットワークタイムプロトコル(NTP)およびIEEE1588 プレシジョンタイムプロトコルを用いることができる。データを伝送するRTP(Real-time Transport Protocol)パケットあるいはUDP(User Datagram Protocol)パケットのヘッダあるいはデータ領域の一部にタイムスタンプを埋め込むことで、データを伝送するパケットにタイムスタンプメッセージの機能を追加してもよい。
タイムクライアント16Aは、パケットネットワーク12を介してタイムサーバ14とタイムスタンプを格納したタイムスタンプメッセージの交換(送受信)を行ってタイムスタンプを取得し、取得したタイムスタンプに基づき、サーバ時刻を推定する。そして、タイムクライアント16Aは、推定したサーバ時刻(サーバ推定時刻)に基づきクライアント時刻を補正し、タイムサーバ14と同期する。タイムクライアント16Aは、例えば、携帯電話無線基地局の無線部、携帯電話無線基地局の制御ベースバンド部、無線伝送装置の高周波部、無線伝送装置の変復調部、ビデオカメラ、ビデオスイッチャー、ミキサー、編集器、録画再生装置、録音再生装置、ルータ、スイッチ、ゲートウェイ、無線アクセスポイント、デスクトップコンピュータ、ラップトップコンピュータなどである。
タイムクライアント16Aは、タイミングプロトコルエンジン26と、クロックオフセット計算部29と、雑音除去フィルタ41と、ダウンサンプラ37と、ループフィルタ40と、発振器42と、クロックカウンタ44とを備える。
タイミングプロトコルエンジン26は、パケットネットワーク12を介してタイムサーバ14とタイムスタンプメッセージの交換を行い、観測間隔Tobsで、タイムスタンプTcd,Tmc,Tmb,Tcaを取得し、クロックオフセット計算部29に出力する。一定の観測間隔Tobsで、タイムスタンプTcd,Tmc,Tmb,Tcaを取得する好適な方法として、タイムクライアント16Aが観測間隔Tobsの間隔で往路メッセージを送信し、タイムサーバ14が観測間隔Tobsの間隔で復路メッセージを送信するように、タイムクライアント16Aおよびタイムサーバ14を構成し、タイミングプロトコルエンジン26が、復路メッセージを受信するたびにタイムスタンプを取り出し、クロックオフセット計算部29に出力する方法がある。パケット遅延変動(PDV)のため、タイムスタンプメッセージが送信されてから、パケットネットワーク12を介して受信されるまでの時間が変動するため、タイムスタンプの出力間隔は観測間隔Tobsからわずかに変動するが、タイムスタンプの出力間隔はほぼ観測間隔Tobsとなる。このように、タイミングプロトコルエンジン26が、復路メッセージを受信するたびにタイムスタンプを出力する構成とすれば、復路メッセージの送信間隔がTobで一定あれば、往路メッセージの間隔は、観測間隔Tobsより大きくしても、小さくしても、タイムスタンプの出力間隔はほぼ一定となる。観測間隔Tobsの逆数(1/Tobs)を、観測周波数Fobsとすると、タイミングプロトコルエンジン26は、タイムサーバ14に送信したタイムスタンプメッセージの送信時刻(タイムスタンプTcd)および受信時刻(タイムスタンプTmc)と、タイムサーバ14から送信されてきたタイムスタンプメッセージの送信時刻(タイムスタンプTmb)および受信時刻(タイムスタンプTca)とを示すタイムスタンプを、所定の観測周波数Fobsで出力する。
クロックオフセット計算部29、雑音除去フィルタ41、ダウンサンプラ37、ループフィルタ40、発振器42およびクロックカウンタ44は、クライアント時刻とサーバ時刻との誤差を補正するように駆動される位相ロックループ34Aを構成する。
クロックオフセット計算部29は、タイミングプロトコルエンジン26から出力されたタイムスタンプTcd,Tmc,Tmb,Tcaに基づき、タイムサーバ14のサーバ時刻とタイムクライアント16Aのクライアント時刻とのクロックオフセットθobsを計算する。
タイムクライアント16からタイムサーバ14に送信されるタイムスタンプメッセージの伝搬遅延と、タイムサーバ14からタイムクライアント16に送信されるタイムスタンプメッセージの伝搬遅延とが等しいと仮定すると、クロックオフセット計算部29は、以下の式に基づき、クロックオフセットθobsを計算することができる。
θobs=(Tcd+Tca)/2−(Tmc+Tmb)/2−θinit
θinitは、定数であり、任意の値でよい。例えば、θinitを、動作開始時の(Tcd+Tca)/2−(Tmc+Tmb)/2とすると、動作開始時のクロックオフセットθobsが0となり、扱いやすくなる。
クロックオフセットθobsの計算方法は、上述した方法に限られるものではない。
クロックオフセット計算部29は、ネットワークタイムプロトコルに基づく方法、IEEE1588 プレシジョンタイムプロトコルに基づく方法、最小遅延時間に基づく方法など、種々の方法を用いて、クロックオフセットθobsを計算することができる。ただし、最小遅延時間に基づく方法では、上述したように、観測時刻の誤差を生じる。
クロックオフセット計算部29は、計算したクロックオフセットθobsを雑音除去フィルタ41に出力する。
雑音除去フィルタ41は、クロックオフセット計算部29から出力されたクロックオフセットθobsの不要周波数成分を除去するフィルタ処理を行う。ここで、雑音除去フィルタ41は、後述するサンプリング周波数(1/Tsp)の1/2以下の周波数で、振幅特性一定かつ直線位相特性を有する雑音除去フィルタである。雑音除去フィルタ41のカットオフ周波数Fcは、サンプリング周波数(1/Tsp)の1/2以上の周波数を有する。ここで、雑音除去フィルタ41は、観測周波数Fobsの逆数をTobsとすると、遅延時間がM×Tobs/2であるM(Mは正の整数)次のFIRフィルタで構成することができる。発信器の周波数誤差である位相雑音は、周波数が高いほど軽減する性質があることから、クロックオフセットθobsの高周波成分をカットすることで雑音を軽減することができる。このため、雑音除去フィルタ31は、簡便には、サンプリング周波数(1/Tsp)の1/2以上のカットオフ周波数を有するM次のローパスFIRフィルタとして構成できる。なお、FIRフィルタは、次数Mが大きくすることで雑音信号の選択性や雑音の抑圧性能を改善し、雑音除去の効果を高めることができる。
上記のような制約により、雑音除去フィルタ41は、サンプリング周波数の1/2以下の帯域の信号に対しては、振幅特性一定かつ直線位相特性をもつことから、一定の遅延時間を有する定遅延回路とみなすことができる。ダウンサンプラ37のダウンサンプル比率をN/D(N,Dは正の整数、かつ、N<D)とすると、サンプリング間隔Tspおよびサンプリング周波数(1/Tsp)は、以下の式で計算することができる。
Tsp=Tobs×D/N
1/Tsp=N/(Tobs×D)=Fobs×N/D
上述したように、雑音除去フィルタ41は、クロックオフセット計算部29から出力されたクロックオフセットθobsから、カットオフ周波数FCより高い周波数成分を持つ雑音をカットし、サンプリング周波数(1/Tsp)の1/2より低い周波数成分を一定時間遅延させて、ダウンサンプラ37に出力する。
ダウンサンプラ37は、雑音除去フィルタ41の出力信号を、所定のダウンサンプル比率N/Dでダウンサンプルし、極性を反転して、位相誤差信号としてループフィルタ40に出力する。ダウンサンプラ37によるダウンサンプル処理により、位相誤差信号の間隔は、サンプリング間隔Tspとなる。雑音除去フィルタ41のフィルタ処理による遅延がM×Tobs/2であるとすると、この遅延はM×N/(2D)×Tspとなる。
ここで、M×N/(2D)が整数となるように設計することで、雑音除去フィルタ41のサンプリング周波数の1/2以下の周波数の信号に対しては、雑音除去フィルタ41は、サンプリング間隔Tspの整数倍の遅延回路とみなすことができる。そのため、上記制約を満たす雑音除去フィルタ41は、伝達関数GLPF(z)を、または、M×N/(2D)をPとすると、z-Pとしてモデル化することができる。
なお、雑音除去フィルタ41およびダウンサンプラ37は、一体的に構成してもよい。また、極性反転処理は、ダウンサンプラ37の代わりに、クロックオフセット計算部29、雑音除去フィルタ41あるいは後述するループフィルタ40で行ってもよい。また、雑音除去フィルタ41が線形フィルタであれば、雑音除去フィルタ41とダウンサンプラ37との順序を入れ換えてもよい。また、雑音除去フィルタ41を、非線形フィルタ部でフィルタ処理を行った後に、線形フィルタ部でフィルタ処理を行う二段階の機能ブロックに分割することができる場合、線形フィルタ部とダウンサンプラ37との順序を入れ換えてもよい。
ループフィルタ40は、ダウンサンプラ37から出力された位相誤差信号に含まれるジッタおよびノイズを除去して、発振器制御信号として発振器42に出力する。発振器制御信号は、サンプリング間隔Tspの間、一定の値に固定される。
上述したように、雑音除去フィルタ41は、サンプリング周波数(1/Tsp)の1/2より低い周波数成分を一定時間遅延させる条件を雑音除去フィルタであれば、周波数特性によらず、サンプリング周波数の1/2以下の周波数では、遅延時間がM×Tobs/2である定遅延回路とみなされる。そのため、サンプリング間隔Tspでのダウンサンプル処理後の雑音除去フィルタ41の伝達関数GLPF(z)は、観測間隔Tobsでの雑音除去フィルタ41の周波数特性によらず、Z-(MN/2D)とみなすことができる。したがって、雑音除去フィルタ41の遅延時間と、ダウンサンプラ37のダウンサンプル比率N/Dとの積が変わらなければ、閉ループ制御モデルは変わらないため、雑音除去フィルタ41の周波数特性によらずループフィルタ40を共通に使用することができる。
発振器42は、ループフィルタ40から出力された発振器制御信号により決定される周波数で発振し、クライアントクロックをクロックカウンタ44に出力する。発振器42は、例えば、制御電圧の大きさを用いて発振周波数を制御する発振器で構成される。このような発振器としては、例えば、水晶発振器(XO:Crystal Oscillator)、シンプルパッケージ水晶発振器(SPXO:Simple Packaged XO)、電圧制御水晶発振器(VCXO:Voltage Controlled XO)、温度保証水晶発振器(TCXO:Temperature Compensated XO)、恒温槽型水晶発振器(OCXO:Oven Controlled XO)などを用いることができる。
クロックカウンタ44は、発振器42から出力されたクライアントクロックをカウントしてクライアント時刻を生成し、タイミングプロトコルエンジン26およびクロックオフセット計算部29に出力する。
ループフィルタ40、発振器42およびクロックカウンタ44は、ダウンサンプラ37から出力された位相誤差信号に基づき、タイムクライアント16Aのローカルなクライアント時刻を補正する補正部45を構成する。
このように本実施形態によれば、同期システム1は、タイムサーバ14と、タイムサーバ14とパケットネットワーク12を介して通信を行うタイムクライアント16Aと備える。タイムクライアント16Aは、パケットネットワーク12を介してタイムサーバ14とタイムスタンプメッセージの送受信を行い、タイムサーバ14に送信したタイムスタンプメッセージの送信時刻および受信時刻と、タイムサーバ14から送信されてきたタイムスタンプメッセージの送信時刻および受信時刻とを示すタイムスタンプを、所定の観測周波数Fobsで出力するタイミングプロトコルエンジン26と、タイムスタンプに基づき、サーバ時刻とクライアント時刻とのクロックオフセットθobsを計算するクロックオフセット計算部29と、クロックオフセットθobsの高周波成分を除去して出力する雑音除去フィルタ41と、雑音除去フィルタ41の出力信号を所定のダウンサンプル比率N/Dでダウンサンプルし、位相誤差信号を生成するダウンサンプラ37と、位相誤差信号に基づき、クライアント時刻を補正する補正部45と、を備える。雑音除去フィルタ41は、観測周波数Fobsにダウンサンプル比率N/Dをかけた周波数の半分より高いカットオフ周波数を有し、観測周波数Fobsにダウンサンプル比率N/Dをかけた周波数の半分より低い周波数において振幅特性一定かつ直線位相特性を有する。
雑音除去フィルタ41が、タイミングプロトコルエンジン26の観測周波数Fobsにダウンサンプル比率N/Dをかけた周波数の半分より高いカットオフ周波数を有することで、雑音除去フィルタ41を、サンプリング周波数の1/2以下の帯域の信号に対しては、定遅延回路とみなすことができる。そのため、雑音除去フィルタ41の遅延に起因する位相の遅れである制御モデル誤差によりPLLが設計通りに動作せず、動作が不安定になる問題が解決されるので、PLLの動作を安定化させ、タイムサーバ14とタイムクライアント16Aとの同期の高精度化を図ることができる。
また、雑音除去フィルタ41を定遅延回路とみなすことができるので、ループフィルタ40の再設計を行うことなく、雑音除去フィルタ41の周波周特性を調整することができる。そのため、ネットワークの速度および混雑度、ネットワークインタフェースおよび伝送路の種類、サンプリング間隔の変化などに柔軟に対応することができる。
また、制御モデル誤差により動作が不安定になる問題が解決されるので、雑音除去フィルタ41の次数(M)を大きくすることができる。そのため、雑音除去フィルタ41による雑音除去の効果を高め、タイムサーバ14とタイムクライアント16Aとの同期の高精度化を図ることができる。
なお、実施形態では特に触れていないが、タイムクライアント16Aは、コンピュータとプログラムとによっても実現することができる。また、当該プログラムは、コンピュータ読取り可能媒体に記録されてもよい。コンピュータ読取り可能媒体を用いれば、コンピュータにインストールすることが可能である。ここで、プログラムが記録されたコンピュータ読取り可能媒体は、非一過性の記録媒体であってもよい。非一過性の記録媒体は、特に限定されるものではないが、例えば、CD−ROMおよびDVD−ROMなどの記録媒体であってもよい。また、当該プログラムは、ネットワークを介して提供することも可能である。
上述の実施形態は代表的な例として説明したが、本発明の趣旨および範囲内で、多くの変更および置換が可能であることは当業者に明らかである。したがって、本発明は、上述の実施形態によって制限するものと解するべきではなく、特許請求の範囲から逸脱することなく、種々の変形および変更が可能である。例えば、実施形態の構成図に記載の複数の構成ブロックを1つに組み合わせたり、あるいは1つの構成ブロックを分割したりすることが可能である。