JJY デコーダ
音声から標準電波 JJY のタイムコードを読み取り、信号が表す時刻とフラグに復号します。JJY シミュレータの可聴音のような、正弦波の振幅を高出力と低出力で切り替えた音を読み取れます。
入力
マイク・ライン入力
周波数の決め方。自動は入力から最も振幅の大きい周波数を使います
手動で決める搬送波の周波数
テスト信号をスピーカーで鳴らす
マイクとライン入力は、エコー除去・ノイズ抑制・自動音量調整を切って取り込みます。JJY シミュレータの可聴音を別の端末で鳴らしてマイクに近づけるか、ケーブルでライン入力へつなぎます。テスト信号は、この端末の時計の時刻をシミュレータと同じ規則で符号にした 440 Hz の音で、マイクを通さずにそのまま解読します。
受信
- 同期
- 停止中
- 入力レベル
- —
- 高出力と低出力の比
- —
- 読めた秒
- —
- 立ち上がりのずれ
- —
- 搬送波
- —
タイムコード
- マーカ(M・P)
- 0
- 1
- コールサイン
- 読めない
- 未受信
- 選択された秒
- 符号
- パルス幅
- 意味
復号した時刻
- 日本標準時(JST)
- --:--:--
- 年
- —
- 日付
- —
- 曜日
- —
- 年の通算日
- —
- 現在時刻とのずれ
- —
- 復号した分
- —
フラグ
- PA1時のパリティ
- —
- PA2分のパリティ
- —
- M・Pマーカの位置
- —
- 曜日の照合
- —
- SU1夏時間の予告
- —
- SU2夏時間の実施
- —
- LS1閏秒の予告
- —
- LS2閏秒の種別
- —
- JJYコールサイン
- —
- ST1–3停波の予告
- —
- ST4停波の時間帯
- —
- ST5–6停波の期間
- —
動作原理と式
JJY は搬送波の振幅を毎秒の正秒で高出力(100 %)に上げ、符号ごとに決まった時間 のあと低出力(10 %)に下げます。受信側では、音から振幅の変化(包絡線)だけを取り出し、しきい値で高出力と低出力に分け、高出力が続いた時間 から 1 秒ぶんの符号を決めます。
包絡線は直交検波で求めます。入力に搬送波と同じ周波数の余弦と正弦を掛け、搬送波の整数周期(5 ms 以上)で平均すると、搬送波の成分が消えて振幅だけが残ります。搬送波の周波数を「自動」にすると、FFT で最も振幅の大きい周波数を探し、隣り合う 3 点に放物線を当てはめて求めます。
しきい値 は、直近 3 秒の包絡線の上位 10 % と下位 10 % の点の中間に置きます。上下に 1/10 幅のヒステリシスを付け、20 ms 未満の変化は雑音として捨てます。 は規定の 0.2・0.5・0.8 秒の中間で区切って符号に分けます。
1 秒おきに立ち上がるパルスのうち、マーカが 2 回続いた 2 回目(M)を 0 秒として分に同期します。以降は 1 秒ごとの枠で符号を読み、立ち上がりのずれの 1/10 ずつ枠を合わせ直します。枠の中の立ち上がりが 1 つでない秒や、 が範囲を外れた秒は「読めない」とします。40〜48 秒の 9 秒のうち 5 秒以上が読めなければ、モールス符号のコールサインとみなします。P1〜P5 のうち 2 つがマーカでなければ同期を外して探し直します。パリティ、値の範囲、年と通算日から求めた曜日がすべて合った分だけで時計を合わせ、最初の分がそろうまでは受信中の分の時と分から仮に表示します。コールサインの分は年を送らないため、前の分の年を引き継ぎます。
出典: 情報通信研究機構 日本標準時グループ「標準電波の出し方」、J. O. Smith III「Quadratic Interpolation of Spectral Peaks」(Spectral Audio Signal Processing)。参考: In-phase and quadrature components(Wikipedia)、JJY(Wikipedia)