相関処理の実際 |
---|
相関処理は以下の2段階に分かれる。
フリンジサーチ |
---|
測地VLBI実験の定常相関処理は効率よく処理を行うため遅延ラグ数(サンプリング周期単位) を小さく(32が一般的である)とることが多い。 このラグ範囲の中央付近に相関のピークを持ってくる必要があり、そのためには 2局間の時刻同期誤差(クロックオフセット)の精密な値(少なくともサンプリング周期の数分の1程度の確度) が必要になる。
フリンジサーチとはVLBI観測データ(サンプリングデータ)の相互相関処理を行ない相関を検出して クロックオフセットを決定する作業である。 相関処理を行うには2局に到達する電波の時間差(遅延時間)の予測値が必要であるが、この遅延時間は 地球回転によって時々刻々と変化する。この予測値は局位置と電波源の位置情報およびクロックオフセット から計算によって求められる\footnote{地球姿勢パラメータも予測値に影響を及ぼすが実用的には0として 大丈夫である}が、 2局間の時刻同期誤差(クロックオフセット)は事前に精度よく求めることが難しい。 そこで、クロックオフセットとして``仮の値''を用いて予測値を計算し、 その予測値に基づくフリンジサーチによりクロックオフセットを決定する。 クロックオフセットの``仮の値''としては各局の時計とUTCの比較が可能な場合(通常GPSが用いられる)はその値を、 比較手段がない場合は0を用いる。
測地実験のように実験(セッション)が24時間のような 長時間に及ぶ場合にはクロックレートも求めてやる。 フリンジサーチおよびクロックレート決定の具体的手順を以下に記す。
1.処理する観測(スキャン)を決める
apri_calcをモニターモードで実行する apri_calc -sample.skd または apri_calc sample.skd -monit以下の例のようにスケジュールファイル中の電波源リストおよび参加局IDのリストを 見ることができるので、強い電波源を選ぶ(3C273B, 3C290, 4C39.25など)。
apri_calc -/home/vlbi/sked/sample.skdのように起動する(ではあるが"-monit"オプションの使用を推奨)。
apri_calc (Ver. 2016-10-12) ====================== RUN CONDITION ======================== K5 file naming type is Type 1 : sidDDDNNNN.dat (SKED deflt) ============================================================= SkdMonit: *********** Schedule file monitor ********** SkdMonit: Schedule file = ipvlbi/sked/sample.skd SkdMonit: Expcode = KS07235 SkdMonit: Total Scan # = 593 SkdMonit: Total Star # = 16 SkdMonit: SkdMonit: 1st Scan = 2007/08/23 01:15:00 3C84 SkdMonit: Last Scan = 2007/08/24 00:46:20 3C273B SkdMonit: SkdMonit: ---------- Station ID Table ---------- SkdMonit: G --- KOGANEI SkdMonit: R --- KASHIM11 SkdMonit: Y --- TATEYAMA SkdMonit: -------------------------------------- SkdMonit: ------- Star Table ------------------- SkdMonit: NAME1 NAME2 R.A.(deg) DEC(deg) EPOCH SkdMonit: 1 0059+581 $ 15.690677 58.403093 2000.000000 SkdMonit: 2 0316+413 3C84 49.950667 41.511695 2000.000000 SkdMonit: 3 0420-014 $ 65.815836 -1.342518 2000.000000 SkdMonit: 4 0552+398 $ 88.878357 39.813657 2000.000000 SkdMonit: 5 0727-115 $ 112.579635 -11.686833 2000.000000 SkdMonit: 6 0923+392 4C39.25 141.762558 39.039126 2000.000000 SkdMonit: 7 1226+023 3C273B 187.277915 2.052389 2000.000000 SkdMonit: 8 1253-055 3C279 194.046527 -5.789312 2000.000000 SkdMonit: 9 1308+326 $ 197.619433 32.345495 2000.000000 SkdMonit: 10 1334-127 $ 204.415762 -12.956859 2000.000000 SkdMonit: 11 1641+399 3C345 250.745042 39.810276 2000.000000 SkdMonit: 12 1730-130 NRAO530 263.261274 -13.080430 2000.000000 SkdMonit: 13 1921-293 $ 291.212733 -29.241700 2000.000000 SkdMonit: 14 2134+004 2134+00 324.160776 0.698393 2000.000000 SkdMonit: 15 2145+067 $ 327.022744 6.960723 2000.000000 SkdMonit: 16 2251+158 3C454.3 343.490616 16.148211 2000.000000 SkdMonit: -------------------------------------- SkdMonit: ------- Frequency (MHz) Table -------- SkdMonit: Gr# 1 7714.99 U 7724.99 U 7754.99 U 7814.99 U SkdMonit: Gr# 2 8034.99 U 8234.99 U 8414.99 U 8524.99 U SkdMonit: Gr# 3 8564.99 U 8584.99 U 2154.99 U 2164.99 U SkdMonit: Gr# 4 2234.99 U 2294.99 U 2384.99 U 2414.99 U SkdMonit: -------------------------------------- SkdMonit: ------- PCAL Freq (kHz) Table --------- SkdMonit: Gr# 1 10.0 10.0 10.0 10.0 SkdMonit: Gr# 2 10.0 10.0 10.0 10.0 SkdMonit: Gr# 3 10.0 10.0 10.0 10.0 SkdMonit: Gr# 4 10.0 10.0 10.0 10.0 SkdMonit: --------------------------------------続いてapri_calcを電波源を指定したモニターモードで実行する
apri_calc -sample.skd -source 3C273B または apri_calc sample.skd -monit -source 3C273B指定した電波源のスキャンのみが表示されるので、スキャン番号をメモする。 基線を絞る場合は参加局IDのリストから"-baseid"オプションを使って基線を指定して
apri_calc sample.skd -monit -source 3C273B -basei RYのように実行する。 すると以下のような情報が得られる。
SkdMonit: --------- PICKUP SCAN TABLE ---------- SkdMonit: SCAN# SOURCE YYYY/DDD HH:MM:SS DURA STATION_IDS SkdMonit: 8 3C273B 2003/197 02:40:20 100 T A C J R Y H SkdMonit: 17 3C273B 2003/197 03:56:00 100 T A C J R Y H SkdMonit: 27 3C273B 2003/197 04:54:40 100 T A C J R Y H K SkdMonit: 35 3C273B 2003/197 05:54:10 100 T A C J R Y H SkdMonit: 44 3C273B 2003/197 06:51:40 100 T A C J R Y H SkdMonit: 53 3C273B 2003/197 07:53:10 100 A C J R Y H SkdMonit: 71 3C273B 2003/197 10:11:40 100 A C J R Y H SkdMonit: 81 3C273B 2003/197 11:11:00 100 T A C J R Y H SkdMonit: 94 3C273B 2003/197 12:31:30 100 T A C J R Y H K SkdMonit: --------------------------------------SCAN#で示されている番号が抽出されたスキャン番号である。
2.予測値の計算
1で決めたスキャンに対して予測値計算ソフトapri_calcを使用して予測値を計算する。1で抽出される全スキャン番号の 予測値を計算したいなら、以下のように実行しても良い。
apri_calc sample.skd -source 3C273B -basei RYこの場合は予測値ファイル出力ディレクトリ等はデフォルト値を使用しているが、他のオプション指定の詳細は apri_calcの使用法を参照されたい。 予測値ファイルはテキストファイルなので(フォーマットの詳細はここ)、 必要な場合(例えば生データファイル名やディレクトリの変更)はテキストエディタで簡単に修正できる。
3.相関処理の実行 "fx_cor"(K5/VSSP,VSSP32,VSSP64フォーマット以外のデータの場合は"fx_cor_new")を用いてラグ数を大きく取って (1024またはそれ以上)相関処理を実行する。 具体的に予測値ファイルをapesample.txtとし予測値ファイルのあるディレクトリで作業を行うとすると 以下のように実行する。
fx_cor ./apesample.txt -lag 1024処理が終わると
============================================================== CH# FREQ(MHz) MAX AMP RESIDUAL DELAY (sec) -------------------------------------------------------------- 1 8209.99 0.000651 -3.26108e-06 2 8219.99 0.000443 -3.28622e-06 3 8249.99 0.000589 -3.23678e-06 4 8309.99 0.000480 -3.25464e-06 ============================================================== COUT File is ../cout/cout0005.txtのようにチャンネル毎の相関強度と遅延残差および相関処理結果ファイル(coutファイル)名情報が 表示され、さらに相関関数のグラフ(図1)も表示される。
相関のピークが明瞭な場合はこれらの結果のみでクロックオフセットを決定できるが、 "sdelay"を用いて粗決定サーチまで行うとより確実に判定することができる。 fx_cor出力を使って粗決定サーチを行なうには以下のように実行する。
sdelay ../cout/cout0005.txt実行すると以下のようなサマリーとサーチ関数と呼ばれる3D図(図2)が表示される。
******************** SDELAY (Ver. 2016-08-12) SUMMARY OUT PUT ************ COUT : ../cout/cout0005.txt X DATA : /home/kondo/data/testspeed/Xk5data.10.dat Y DATA : /home/kondo/data/testspeed/Yk5data.10.dat BASELINE : KASHIM11 - TOMAKO11 SOURCE : 3C273B SAMPLING : 1 bit 8 MHz PRT : 2003/197 02:41:10 Tinteg(s) : 9.0 LAG SIZE : 1024 CLOCK : offset 5.735e-06(s) rate 0.000e+00(s/s) EOP : ut1-utc 0.000000(s) : x-wobb 0.000000(asec) : y-wobb 0.000000(asec) ======================================================================== CH# FREQUENCY AMP MAX POSITION RESIDUAL (MHz) (2048x 128) Delay(usec) Rate(ps/s) SNR ------------------------------------------------------------------------ 1 8209.99 U 1.192e-03 ( 973, 65) -3.251 -0.134 10.1 <=相関強度と残差を確認 2 8219.99 U 8.613e-04 ( 973, 68) -3.270 2.482 7.3 3 8249.99 U 1.089e-03 ( 973, 65) -3.239 -0.089 9.2 4 8309.99 U 1.095e-03 ( 973, 66) -3.242 0.943 9.3 ------------------------------------------------------------------------ Note: No amplitude correction is made. ======================================================================== ======================= PCAL SUMMARY ============================ CH# PCAL FREQ(kHz) X-Amp X-Phase Y-Amp Y-Phase ----------------------------------------------------------------- 1 10.00 0.109 70.6 0.251 111.9 2 10.00 0.107 -92.2 0.244 -162.7 3 10.00 0.106 136.2 0.247 84.3 4 10.00 0.104 -143.5 0.259 -43.2 ************************************************************************* Outfile is ./sdelayout.txt
図2.sdelay処理終了後表示されるサーチ関数。ラグ数が大きいためピークが良く分からない。 こうした場合には"-tzoom"および"-tshit"オプションを使って得られた残差遅延付近を拡大すると 良い。"-tzoom 20 -tshift -3.25e-6"オプションで表示したサーチ関数を図3に示す。 |
図3.図2と同じcoutファイルを"-tzoom 20 -tshift -3.25e-6"オプションで sdelay処理した場合のサーチ関数。 |
サマリー表示およびサーチ関数の3D表示からフリンジ検出の判断を行なう。
4.クロックオフセットを決める
予測値計算時に設定したクロックオフセットをco、相関処理後に得られた遅延残差をΔτとすると 実際のクロックオフセットcoffsetは次式で得られる。
5.クロックレートを決める
セッションの最初の方の時刻t1で得られたクロックオフセットをc1、 セッションの最後の方の時刻t2で得られたクロックオフセットをc2とすると クロックレートcrateは次式で計算される。
6.apri_calcでのクロックパラメータの設定
apri_calcではクロックオフセット、クロックレートおよびクロックエポックを設定できるがそれらは 以下のように設定する。
全観測(スキャン)の処理 |
---|
1.予測値の計算
apri_calcを使ってフリンジサーチで得たクロックオフセット、レートおよびエポックを反映させて全スキャンの 予測値を計算する。非会話型で行うには以下の例のようにオプションを指定する。
apri_calc /home/vlbi/sked/jd1606.skd -coffset -3.25e-6 -crate 1.0e-13 -cepoch 2016/197-02:41:10 -baseid RY -g 2 -xdir -ydir /home/vlbi/Y -apedir /home/vlbi/corrapriこの例ではクロックオフセットを-3.25μsec、クロックレートを1.0x10-13(s/s)、クロックエポックを 2016年197日02時41分10秒とし、基線IDは"RY"、X局データのディレクトリは"/home/vlbi/data/R"、 Y局データのディレクトリは"/home/vlbi/data/Y"、予測値ファイルの出力ディレクトリは"/home/vlbi/corrapri"としている。 全スキャンで同じクロックオフセットを使う場合は"-crate"オプションおよび"-cpoch"オプションを省略する。
2.予測値ファイルリストの作成
予測値ファイルのあるディレクトリを"/home/vlbi/corrapri"とする。以下のコマンドを実行する。
ls -1 /home/vlbi/corappri/ape*RYb.txt > apelistRY.txt"ape*RYb.txt"の部分はそのディレクトリに複数基線の予測値があった場合にファイルを抽出するフィルターであるが、 全予測値を対象とする場合は
ls -1 /home/vlbi/corappri/ape*.txt > apelistRY.txtで良い。なお"apelistRY.txt"は作成するリストファイル名で任意である。
3.全スキャンの相関処理
予測値ファイルリストをapelistRY.txtとした場合、以下のように実行する。
cor_all ./apelistRY.txtただし作業ディレクトリに予測値ファイルリストがあるとする。別のディレクトリにある場合は パスを含めて指定する(実行時のオプションについてはここ参照)。 "cor_all" は 1ビットサンプリングデータの処理を行う場合であるが多ビットサンプリングデータの場合は "fx_cor_all"を使用する。またK5/VSSP以外のデータの処理を行う場合は "cor_all_new"や"fx_cor_all_new"を使用する。
K5/VSSP以外のフォーマットデータ(VDIF, Mark5B, ADS)を含む場合の相関処理) |
---|
K5/VSSPデータとそれ以外のフォーマットデータとの混合相関やK5/VSSPフォーマット以外の データ同志での相関処理手順はK5/VSSP同志の場合と同じであるが、予測値計算時に データフォーマットを指定する必要がある。具体的にはapri_calcの実行時に オプション"-format"や"-formX"、"-formY"のオプションでデータフォーマットを指定する。 詳しくはここを参照。