電波の受信自体は適法ですが、電波法第59条により傍受した通信の内容を窃用・漏洩することは禁止されています。本アプリは技術研究・教育・適法な受信を目的とします。暗号化(秘話)された通信は復号できません。利用は各自の責任で、関係法令を遵守してください。
1. 受信機を接続
RTL-SDR (RTL2832U + R820T/T2) を USB 接続し、ボタンを押してブラウザに許可します。
対応: Android Chrome / Edge / デスクトップ Chrome。iOS Safari は WebUSB 非対応(ファイル再生のみ可)。
2. 周波数と受信
基地局が折り返さない移動局同士の通話は上り (FL) で聞こえます。上りは下りのちょうど 9 MHz 下です。
3. 音量
T61 モードでは復調器が同期し、かつ TCH が音声の符号語として復号できたときだけ音声を出します。 M-CELP デコーダはどんな 18 バイトからも「声っぽい」音を作ってしまうためです。
スペクトラム
同調周波数を中心に ±480 kHz。チャネルフィルタの手前で見ているので、 数 kHz ずれた電波もここに現れます。中央の縦線が同調点です。
ズーム ±25 kHz(同調点付近)
6 kHz 幅の T61 バーストはここに山として見えます。オレンジの破線が近傍ピーク、 緑の破線が AFC で補正中の位置です。
シンボル (コンスタレーション)
差動検波後のシンボル配置。ロックしていれば ±45°/±135° の 4 点にまとまります。原点付近に固まる/全体に散らばるなら信号が無いか未同期です。
フレーム解析
フレーム構造(40 ms = 384 bit)はビット列から自動で学習します。 毎フレーム同じ値の位置(プリアンブル・同期語)でフレーム位相を取り、 全国共通の無音パターンを手掛かりに TCH (256 bit) の配置(実信号では 2 か所に分かれている)とビット割当を決めます。 TCH の各チャンクがどの送信フレームに属するか(フレーム差)と、チャンク境界の候補は、音声ブロックの ビタビ経路メトリックで自動判定します。符号語として成立したブロックだけを音声として再生します。
上: 384 ビット位置ごとの安定度(明るいほど毎フレーム同じ値)。緑=同期に使っている固定ビット、 青=TCH と判定した範囲。
フレーム判定(新しいものが上)
M-CELP フレーム (18 バイト)
生ビット列(直近 384 bit)
動作確認 / ファイル再生
ハードが無くても M-CELP デコードを確認できます。.mcelp(16進)または生18バイトフレーム。
録音した電波から復調(デバッグ用)
受信機の IF 出力や SDR で録音した音源を、ライブ受信と同じ経路 (チャネルフィルタ → RRC → π/4-DQPSK 復調 → フレーム解析 → M-CELP)に流します。実際の電波が無くても 復調とフレーム解析を試せます。WAV / FLAC などのロスレス形式を使ってください。 MP3 等の非可逆圧縮は位相を壊すので、ビットレートが低いと復調できません(320 kbps でも劣化します)。 WMA はブラウザがデコードできないため、WAV か FLAC に変換してください。 FM 復調後(ディスクリ出力)の音声では復調できません — 検波前の IF が必要です。
実信号 IF の場合のみ使用します。auto にすると録音のスペクトルから中心周波数を推定します
(DJ-X100 の IF 出力を 48 kHz で録音した実例では 12.5 kHz 前後)。左右が同じ信号のステレオファイルは
モノラルの実信号 IF として自動的に扱います。
詳細設定 (T61 フレーム解析)
通常は「自動」のままで動きます。5ch 復調スレで公開された解析には未確定の点が残っているため、 音声が崩れる場合はここで切り替えて試せます(docs/arib-std-t61-fdma.md §4c)。
統計
ログ
不具合があったら「📨 共有」でこのログをそのまま送ってください(発生時刻・エラー詳細・受信設定が自動で含まれます)。