電波時計モジュールが「使えない」理由
JJYの秒信号を電波時計モジュールで受信してみたら不正確な「秒」しか得られませんでした。そのときの感想は「ええっ!」という驚きではなく「やっぱりね」という落胆でした。
組み立てる前にJJYの秒信号の取得に使った電波時計モジュールCME6005のデータシートをざっとながめてみたのですが、どうしても正確な秒信号を取得できるようには思えませんでした。
データシートの中にBPF(バンドパスフィルター)とAGC(オートゲインコントロール)という二つの言葉を見つけたからです。
JJYの電波はこのような形をしているはずです(これは電波そのものではなく電波の強度という意味です)
出力振幅10%で送信されている電波は毎秒100%振幅出力になります。出力振幅が55%になったときが正確な「秒」を示します。実際問題として電波の強さが55%になった瞬間をとらえるとなるとけっこうたいへんです。ただ電波の強さがこういう形であれば55%のところでなくても20%だろうが80%だろうが実用的には__つまり0.001秒位の精度を要求しているのであれば__問題ないはずです。
「標準電波JJY - 変調波振幅の「最大100%、最小10%」の意味」
-------
NICTに問い合わせたところ波形の立ち上がりは“2msくらい”とのことです(“2ms”じゃなくてあくまで“2msくらい”だそうです。何をもって立ち上がり時間とするかということもありますし... なお立ち下がりやパルス幅に関してはもっとアバウトみたいです。)
このあたりの具体的な事情は
「JJYの秒信号の送出方法についてNICTに聞いてみた」
「(非公式)JJY(標準電波/電波時計)の呼び出し符号(コールサイン)送出方法 」
などにあります。
-------
ところがBPFが使われると事情が違ってきます。特にCME6005のように狭帯域BPF(半値幅10Hz)を使っていると受信された電波の強さはこんなことになってしまいます。
その後実際にクリスタルフィルターの影響を調べてみました。
「クリスタルフィルターの効果を目と耳で確かめる - JJY受信機を作る」
クリスタルフィルターなし
「標準電波・長波JJYが停波するとき」 より
簡単なクリスタルフィルター
「標準電波・長波JJYが停波するとき」 より
よりシャープなクリスタルフィルター
「標準電波・長波JJYが停波するとき」 より
これではどのくらいの強さを出力上昇のタイミングと見るかで秒信号の出力時刻はぜんぜん違ってきます。電波がちょっとだけ強くなったところで秒信号を検出すれば「秒」は早めに出力されじゅうぶん強くなったところで秒信号を検出すれば「秒」は遅めに出力されます。
これを裏付ける内容がデータシートにあります。それは200msのパルスが与えられたときの出力パルス幅を示した資料です。もちろん入力が200msですから出力もぴったり200msにならなければならないのですが実際は違っています。
Min. 170ms
Typ. 195ms
Max. 230ms
どうやら電波の強度が十分強くなったところで秒信号を取り出すように作ってあるみたいです。これだと秒信号は実際の「秒」より遅れて出力されてしまいます。
実際のJJYの受信はについては“ぴったり200msにならなければならない”というのは正確ではありません。このことについても「JJYの秒信号の送出方法についてNICTに聞いてみた」にあります
ちなみに私がこれまで使ったことがあるGPS受信モジュールの1PPS信号のパルス幅100msをこの形式で書くとこうなります。
Min. 99.98msより小さいことはない(私の検出限界以下)
Typ. 100.00ms
Max. 100.02msよりおおきいことはない(私の検出限界以下)
AGCがこの問題をさらに複雑にします。JJYは長波を使っていて電離層の影響を受けにくいので電波の受信状況は比較的安定しているはずです。もしAGCがなければAGCの時定数がじゅうぶん大きければ多少秒信号に遅れがあっても秒信号の間隔はおおむね1秒ジャストになるはずです。
JJYの場合秒信号は各秒ごとに幅が違います。もし時定数が小さくてAGCがこれに反応してしまうと各秒の電波の実質的な強度が違ってきます。この結果何が起きるかというと短い秒信号(マーカー)の後の信号は強度が上がり秒信号が長めに出力され、長い秒信号(データ0を表す0.8秒幅のパルス)が続くと信号の強度は弱くなり出力される秒信号は短めになります。
(電波時計をあちこち移動するようとときのことを考えるとAGCの時定数はあんまり大きくはないでしょう)
時計を固定していれば電波の強さは安定しているという前提で上のように書いてしまったのですが、実際は変動していました。
「標準電波JJYの電界強度の時間変化 - 電波時計をいつ合わせたらいいか」
「標準電波JJYの電界強度の時間変化を測ってみた(1)」
AGCあるいはそれに相当する機能は必要でしょうが、注意深い設計が必要だと思います。
-------
これらの推論が正しければこんな現象がおきるはずで。
1. 秒信号の出力が実際の「秒」より遅れる(進むこともあるかもしれません)
2. 秒信号の幅が変化する(例えば短い秒信号の後は長く、長い秒信号のあとは短くなる等)
3. 秒信号の間隔が一定しない(つまり秒信号の間隔が正確に1秒にならない)
実際に電波時計モジュールの出力を詳細に検討すると上の1.、2.、3.の現象がすべて起きています。
----------------------
ということで電波時計モジュールから正確な時刻、「秒」を取り出すのはあきらめた方がよさそうです。
ところでなぜこんなことになっているかということなんですが、おそらく製品の目的が
できるだけ正確な秒信号を取り出す
ということではなく
できるだけ確実に秒信号を取り出す
ことにあるからでしょう。(日常的に必要な精度しか必要としない)電波時計の部品として使われる以上これはあたりまえの話です。BPFやAGCは周囲の雑音の影響を取り除いたり電波の強度の変化に対応するのにとても効果がありますから。
じっさい多少「秒」が不正確であるとしてもタイムコードは正しく取り出せています。
なお電波時計モジュールから正確な時刻が取り出せないとしてもJJYは極めて正確な秒信号を送り続けているわけですからそれなりの方法を使えば正確な「秒」が取り出せるはずです。
電波時計モジュールを使わずJJY受信機を自分で一から作ってみるのもおもしろいと思います。
作り始めました。
「JJY受信機で作る高精度発振器と時刻標準 - はじめに」
-------------------------
以上いろいろ書きましたが、電波時計モジュールの秒信号は正確に出ないというより(コストを考えると)出せないというのが正しいような気がしてきました。
40kHzを検波した後に時定数の大きなLPFが入っていると思います。こうしないと雑音の影響を受けにくくするのが難しいようです。実際自分でJJY受信機を作り始めてわかりました。
つまりこの記事に書いたようなレベルよりずっと前のところに最初のハードルがあるのだと思います。
-------------------------
JJYの時刻・周波数の精度について検討した資料を見つけました。
「国立天文台 水沢観測センター - 佐藤克久、浅利一善 - 長波標準電波(JJY)の受信信号特性について」
AGCに原因があるのではないかということも書いてあります。ただAGCの影響に関する解釈は私とはちょっと違っているようです。
(2014.11.28)
--------
関連記事
「時刻標準について」
「JJY受信機で作る高精度発振器と時刻標準 - はじめに」
JJY受信機を一から作り周波数標準、時刻標準にしようという一連の記事です。
「GPS受信モジュールあれこれ」
「GPSモジュールを使ってみた」 (GPS受信モジュール1PPSとの比較)
「GPS受信モジュール(GE-612T) vs 電波時計モジュール(CME6005) 1PPS対決」
「時刻と時間・記事目次」
「趣味の電子工作・記事目次」
「掩蔽(星食)・記事目次」
参考
「やもり - Quiita - FreeBSDの時間(VDSOのこと、時間の仕組み、ppsの仕組み、JJY)」
FreeBSDでの時刻管理についての具体的、実用的な内容です。JJYの受信(電波時計モジュールの利用法)についても詳細な説明や充実した参考リンクがあります。
« GPSとBPM | トップページ | JOAKとGPS »
「編集用」カテゴリの記事
- メモ(2013.11.04)
- 天体望遠鏡・拡大撮影の原理 (1)(2013.07.26)
- 天体望遠鏡・拡大撮影の原理 (2)(2013.07.26)
- 天体望遠鏡・拡大撮影の原理 (3)(2013.07.26)
- 天体望遠鏡・拡大撮影の原理 (0)(2013.07.26)
コメント
この記事へのコメントは終了しました。
はじめまして。
Aitendoで購入したCME6005と思われるモジュールに自作デコーダーを付けてntpdのソースとしているのですが、安定しないのでいろいろ調べていて、こちらのページを見つけました。大変参考になります。ありがとうございます。
投稿: やもり | 2017年7月17日 (月) 10時04分
コメントありがとうございます m(._.)m
お役にたてて幸いです。
JJY・電波時計は趣味・遊びとしてはおもしろいのですが、実用という面からは(水中を除けば?)GPS一択という感じがします。
時刻標準について
http://seppina.cocolog-nifty.com/blog/2014/04/post-7316.html
投稿: セッピーナ | 2017年7月17日 (月) 11時12分
こんばんは。
少し前にたまたま手に入ったDCF77のモジュールをJJY 40KHzに改造して新しいモジュールを作ってみました。デコーダーにはArduinoを使い59秒でのみ同期をとり他はArduinoのmsecのタイマーで処理するようにしました。この結果ntpdのoffsetの絶対値が1msec台でJitterも2msecくらいで動作しています。
先日NICTのオープンハウスがあり、行ってきました。JJY担当の方に秒の揺れについて話したところ、送信側は位相も合わせて送信しているが、送信所からの距離や、マルチパスの影響によるものではないかということでした。
上の実装も話してみたのですが、良いのではないかと言ってもらえました。
前のURLのページに実装の簡単な説明書きました。プログラムはgithubに置いてあります。
投稿: やもり | 2017年11月13日 (月) 21時59分
https://qiita.com/yamori813/items/d9b0a451f1e115de893f の記事、拝見しました。
実装方法がなかなかに興味深いです。こういうのを公開されているとこれからやってみようと
いう方にも大いに参考になると思います。
「JJY受信機で作る高精度発振器と時刻標準 - 1. はじめに」 の記事の方にやもりさんの記事への
リンクを入れさせていただきたいと思います。
確かに59秒前後のところは安定してパルスが出ててそうですね。
ジッター2msecであればJJYの利用としては大成功ではないでしょうか。
私のところではノイズが尋常ではなくさらにフェージングも強くてJJYを時刻標準とするのはあきらめてしまいました (^^;;
投稿: セッピーナ | 2017年11月14日 (火) 09時03分
こんにちは
今年の夏は暑い日が続いたためか、JJYのntpdのJitterが大きくなっていました。グラフ化して
傾向を見ているのですが、おそらく近隣の複数箇所のエアコン系のノイズが影響しているよう
に思われます。これは深夜に毎日同じ時間にJitterが減る傾向が見受けられ、おそらくタイマー
でエアコンを消しているのではないかと推測されます。我が家ではエアコンは使わないのですが、
住宅地では仕方ないのかもしれません。
投稿: やもり | 2019年9月 5日 (木) 08時57分
エアコンのノイズが原因でジッターですか。
市街地は雑音源が多いのでどうしようもないですね。アマチュア無線やってる方もいろいろ苦労があるみたいですし。
わざわざお知らせいただきありがとうございます m(._.)m
投稿: セッピーナ | 2019年9月 5日 (木) 15時46分