最初の設定
アプリを起動すると設定画面が出ます。ここで無線機と出力先を決め、「確定して開始 →」を押すと受信が始まります。
1. 無線機を追加する
SDR を PC につないでから、「+ 無線機を追加」を押します。無線機カードが 1 枚増えるので、「デバイス」で使う SDR を選びます。
SDR をあとからつないだときは、「デバイス再検出」を押すと一覧を読み直します。
一覧の「(native)」と「(SoapySDR)」
一覧のラベルの末尾には、機種へ接続する経路が出ます。
| 末尾 | 経路 | 例 |
|---|---|---|
| (native) | アプリが直接つなぐ経路(RTL-SDR、HackRF One、Airspy R2 / Mini) | RTL-SDR Blog V4 (serial=00000001) (native) |
| (SoapySDR) | SoapySDR 経由の経路 | AirSpy One [644064dc2f8c39cf] (SoapySDR) |
SoapySDR を入れていると、RTL-SDR と HackRF One が両方の経路で一覧に出ます。この 2 機種は「(native)」を選んでください。追加の導入が要らず、実機で確認済みの経路です。同じ個体を両方の経路で同時には開けません。後から開いたほうが失敗します。
Airspy R2 / Mini は libairspy を入れると「(native)」も選べます。Linux と Windows 11 の R2 で実機確認済みです。初期値と調整する欄は、このページの Airspy の初期設定にまとめています。Pluto は「(SoapySDR)」を選びます。SoapySDR 経由の各機種は実機未確認です。SoapySDR の導入はmacOSとWindowsにあります。
一覧に出ないとき
Airspy の native 入力は Airspy が見つからないときを参照してください。次は SoapySDR 経由の機種を調べる手順です。
- 設定画面の無線機の一覧の下に、SoapySDR の状態が 1 行で出ます。「SoapySDR 0.8.1 を読み込みました」のように出れば読み込めています。「SoapySDR は見つかりません(Pluto などを SoapySDR 経由で使うときに入れます)」は、入っていないか、場所が違います。0.8 系でない版だけが入っているときも、macOS と Linux ではこの表示になります。「SoapySDR を読み込めません: 理由」は、ファイルは見つかったのに使えない場合です。Windows で 0.8 系でない版を入れたときもここに出ます。
- 機種をつないだ状態で、ターミナルから
SoapySDRUtil --findを実行します。ここに出ない機種は、アプリにも出ません。 - SoapySDR のモジュールの不具合で、一覧がいつまでも出ないことがあります。その場合も
SoapySDRUtil --findで原因を切り分けてください。
rtl_tcp のサーバーにつなぐ
ネットワーク上の rtl_tcp のサーバーを、受信機として使えます。RTL-SDR を挿した機械で rtl_tcp を動かし、別の PC のアプリから受信する使い方です。rtlmux のような分配のソフトを挟むと、1 本の RTL-SDR を複数の PC で同時に受けられます。
- 「デバイス」で「rtl_tcp(ネットワーク)…」を選びます。
- サーバーのホスト(IP アドレスかホスト名)とポートを入力します。ポートの既定は、
rtl_tcpが 1234、rtlmux が 7878 です。 - チューナーを制御する PC では、中心周波数、窓幅、ゲインを、RTL-SDR と同じように設定します。
rtl_tcp のサーバーは一覧に自動では出ません。接続先は手で入力します。
複数の PC で共有するとき
rtl_tcp では、つないだどのクライアントからも、チューナーの設定(周波数、窓幅、ゲイン)を変えられます。あとからつないだ PC が設定を送ると、先に受信していた PC の受信が乱れます。
そこで、設定を送る PC を 1 台に決めます。
| PC | 「チューナーを制御する」 | 動き |
|---|---|---|
| 設定を決める 1 台 | 入れる | 周波数、窓幅、ゲインをサーバーへ送ります |
| それ以外 | 切る | 何も送らず、受信だけをします。ゲインと周波数補正の欄は使えなくなります |
「チューナーを制御する」を切った PC では、中心周波数と窓幅を、制御している PC と同じ値にしてください。rtl_tcp には今の設定を読み出す仕組みがないので、アプリは入力された値をそのまま信じます。値が違うと、波の位置がずれて復号できません。
接続が切れたとき
受信中に接続が切れると、無線機の状態が「再接続中」になり、3 秒おきに自動でつなぎ直します。つながると、そのまま受信に戻ります。切れていたあいだの受信内容は残りません。サーバーにつながってもサンプルが届かないあいだは、「再接続中」のままです。サーバーの側の受信機(USB の接続など)を確かめてください。
受信を始めるときにつながらなかった場合は、エラーになります。ホストとポートを確かめてください。
注意
- rtl_tcp には認証も暗号化もありません。自宅の LAN など、信頼できるネットワークの中で使ってください。
- 必要な帯域の目安は、窓幅 2.048 Msps で約 33 Mbps、1.024 Msps で約 16 Mbps です。無線 LAN では取りこぼしが出ることがあります。有線をおすすめします。
- サーバーの側で取りこぼした分は、アプリの「overflow」には出ません。
- rtlmux を挟むと、「バイアスT」と「ダイレクトサンプリング」の設定はサーバーへ届きません(rtlmux が転送しないためです)。必要なら、
rtl_tcpの起動時の引数で設定してください。 - rtlmux を挟んだ構成は、接続、設定の転送、2 台への分配までを確かめています。実際の電波の受信は確かめていません。動作の報告を歓迎します。
2. プリセットを選ぶ
無線機カードの「プリセット」で、受信する側を選びます。
| プリセット | 受信する波 |
|---|---|
| JR東基地局(352.526250 MHz / D1〜D7+共用波) | 下り(基地局側)のデータ波と共用波 |
| JR東基地局・音声込み(352.526250 MHz / 音声14波+D1〜D7+共用波) | 下りの音声波 14 波、データ波、共用波 |
| JR東移動局(336.026250 MHz / D1〜D7+共用波) | 上り(移動局側)のデータ波と共用波 |
| JR東移動局・音声込み(336.026250 MHz / 音声14波+D1〜D7+共用波) | 上りの音声波 14 波、データ波、共用波 |
音声波を聞くときは「音声込み」を選びます。選び方は音声を聞くにあります。JR東海、JR西日本、京急・京成のプリセットも同梱しています(プリセット)。
プリセットを選ぶと、中心周波数と監視するチャンネルが入ります。そのあと中心周波数や監視するチャンネルを変えても、プリセットの選択は外れません。自分で作るときはプリセットを参照してください。
「監視するチャンネル」では、受信窓の外にあるチャンネルがグレーで表示され、選べません。受信窓は、中心周波数と窓幅で決まります。
3. ゲインと周波数補正を合わせる
ゲインと ppm は、SDR の個体に合わせて調整します。周波数補正は、信号が本来の位置より高い側に見えるときに正の値を指定します。RTL-SDR(USB・rtl_tcp・SoapySDR 経由)は、入力値を最も近い整数 ppm に丸めてドライバへ設定します。たとえば 3.3 ppm は 3 ppm、3.7 ppm は 4 ppm として適用されます。rtl_tcp では、チューナーの制御が有効なら 0 ppm も送るため、サーバーで設定済みの補正値はアプリの値に置き換わります。HackRF と周波数補正 API に対応しない SoapySDR の機種は、従来どおり同調周波数で補正します。それ以外の対応する SoapySDR の機種では、小数を含む値をドライバへ設定します。
| SDR | 調整する欄 |
|---|---|
| RTL-SDR | 「チューナーゲイン」。dB の値か「AGC(自動)」を選びます |
| HackRF One | 「AMP」「LNA」「VGA」 |
| Airspy(native) | LNA は 0〜14、MIX / VGA は 0〜15 の段数です。LNA と MIX の自動ゲインを独立して選べます。バイアス T の既定値はオフです |
| SoapySDR の機種 | 機種が申告するゲインの項目ごとのスライダー。Airspy は LNA、MIX、VGA、Pluto は PGA です。自動(AGC)に対応する機種には「自動」のチェックも出ます |
| 共通 | 「周波数補正 [ppm]」 |
Airspy R2 / Mini の初期設定(native)
- OS に合わせて libairspy を導入し、Airspy を USB でつないでアプリを起動します。
- 「+ 無線機を追加」を押し、「デバイス」で「Airspy R2 / Mini … (native)」を選びます。複数台ある場合は、一覧のシリアル番号で区別します。
- 受けたい方向のプリセットを選び、監視するチャンネルが受信窓に収まるように「窓幅」を選びます。
- 初回は LNA、MIX、VGA をそれぞれ
8、LNA 自動と MIX 自動をオフ、周波数補正を0ppm、アンテナ給電をオフにして受信を始めます。 - 出力先を決めて「確定して開始 →」を押し、ウォーターフォールと受信率を見ながらゲインと周波数補正を調整します。
| 欄 | 範囲と初期値 | 使い方 |
|---|---|---|
| LNA | 0〜14、初期値 8 | 入力段の手動ゲインです。「LNA 自動」がオンのときはスライダーを操作できません |
| MIX | 0〜15、初期値 8 | ミキサー段の手動ゲインです。「MIX 自動」がオンのときはスライダーを操作できません |
| VGA | 0〜15、初期値 8 | 可変増幅段の手動ゲインです。LNA と MIX の自動設定にかかわらず手動で調整します |
| LNA 自動 / MIX 自動 | それぞれ初期値オフ | 対応する段の自動ゲイン(AGC)を個別に有効にします |
| アンテナ給電(バイアスT) | 初期値オフ | アンテナ端子から給電します。給電が必要なアンテナや外部アンプを接続するときに有効にします |
| 周波数補正 [ppm] | 初回は 0 | 信号が本来の位置より高い側に見えるときは正の値を指定します。小数も使えます。native 入力では同調周波数を補正します |
| 窓幅 | 256 ksps / 1.024 Msps / 1.536 Msps / 2.048 Msps | アプリが処理するサンプルレートです。監視したいチャンネルが収まる値を選びます |
ゲインの数値は段数で、dB ではありません。手動で調整するときは、一度に変える欄を 1 つにし、反映前後のウォーターフォールと受信率を比べます。自動で調整する段は「LNA 自動」「MIX 自動」で選び、VGA は手動で合わせます。
R2 では機器が申告する 2.5 / 10 Msps からアプリ側で変換するため、ハードのサンプルレートを手で指定する必要はありません。Mini も機器が申告するレートから選びますが、実機動作は未確認です。
受信中は「⚙ 設定」で値を変え、「確定して反映 →」を押します。ゲインと AGC だけの変更は受信を続けたまま反映します。中心周波数、窓幅、ppm、アンテナ給電を変えると、対象の無線機を一度閉じて開き直すため、その間は受信が途切れます。
Airspy が見つからないとき
libairspyの導入先を確認します。Windows ではairspy.dllと依存する 2 つの DLL を同じフォルダに置きます。詳しくは導入手順にあります。- ライブラリの導入や
JRD_AIRSPY_LIBの変更後は、アプリを再起動します。USB をあとからつないだ場合は「デバイス再検出」を押します。 - ほかの SDR アプリで同じ Airspy を使っている場合は、そちらの受信を停止してデバイスを解放します。同じ個体を native と SoapySDR の両方で同時に使うこともできません。
- Linux で USB のアクセス権限がない場合は、導入手順の USB 権限設定を確認し、USB を挿し直します。
- WSL に USB を接続している間は Windows 側から使えません。Windows の PowerShell で
usbipd listを実行して Airspy の BUSID を調べ、usbipd detach --busid <BUSID>で WSL から切り離します。Windows 側の受信を終了してからusbipd attach --wsl --busid <BUSID>で WSL に戻せます。前提となる設定は Microsoft の USB 接続手順にあります。
窓幅と対応する周波数(SoapySDR の機種)
Airspy はハードのサンプルレートが固定です(R2 は 2.5 と 10 Msps、Mini は 3 と 6 Msps)。窓幅の選択肢には、アプリが内部で変換するハードのレートと比が添えられます(例「2.048 Msps(HW 2.500 M → 512/625)」)。機種が受けられない窓幅の選択肢は選べません。
周波数にも制限があります。Airspy HF+ 系は 260 MHz までなので、352 MHz 帯は受けられません。Pluto は標準で 325 MHz からです。アプリはこの制限を検査しません。
4. 出力を決める
「出力」欄で、記録のしかたを決めます。
| 欄 | 内容 |
|---|---|
| 保存先フォルダ | JSONL と WAV を書き出すフォルダです。「選択…」から選べます。既定はホームフォルダーの jrd-captures です |
| 生フレーム JSONL、復号情報 JSONL | それぞれを書き出すかどうかを決めます |
| 音声を WAV に録音する | 音声を通話ごとの WAV に書き出すかどうかを決めます。既定はオンです |
| 日付の境界時刻 | ファイル名の日付が変わる時刻です。既定は 3 時です |
書き出されるファイルの名前と中身は出力ファイルにあります。
5. 確定して受信を始める
「確定して開始 →」を押すと受信が始まり、メイン画面に移ります。設定は自動で保存されます。
メイン画面の「⚙ 設定」から戻って変更した場合は、「確定して反映 →」を押すと差分だけが反映されます。ゲインなどは受信を続けたまま反映し、中心周波数や窓幅などの変更では対象の無線機を開き直します。変更をやめるときは「キャンセル」を押します。
受信できていることを確かめる
「JR東基地局」のプリセットでは、ウォーターフォールの D1↓〜D7↓ と共用↓ に連続した搬送波が見えます。「生フレーム」欄には slot 付きの行が、「復号情報」欄には call、in_zone、registration などの行が流れます。
上りは、バーストが来たときだけ行が増えます。
画面の各欄の読み方はメイン画面の見方にあります。
無線機カードの欄
| 欄 | 内容 |
|---|---|
| ラベル | メイン画面でその無線機を表す名前です。最初の 1 台には「下り」、2 台目には「上り」が入ります |
| デバイス | つないである SDR か、「rtl_tcp(ネットワーク)…」、「cu8 ファイルを再生…」を選びます。ラベルの末尾の「(native)」「(SoapySDR)」は接続の経路です |
| プリセット | 中心周波数と監視するチャンネルの組です |
| 中心周波数 [MHz] | SDR を合わせる周波数です |
| 窓幅 | 受信する帯域の幅(サンプルレート)です |
| 周波数補正 [ppm] | SDR の周波数のずれを補正します |
| チューナーゲイン | RTL-SDR のゲインです |
| ゲインの項目 | SoapySDR の機種のゲインです。機種が申告する項目ごとにスライダーが並びます。機種を取得できないとき(未接続など)は、数値の入力欄になります |
| オプション | RTL-SDR の「バイアスT」と「ダイレクトサンプリング」です。ダイレクトサンプリングは HF 用で、352 MHz 帯の受信では使いません |
| AMP、LNA、VGA | HackRF One のゲインです。「アンテナ給電(バイアスT)」も同じ場所にあります |
| 監視するチャンネル | 復号して記録するチャンネルです。音声波も選べます |
カードの左上には、デバイスがつながっているかどうかが「接続中」「未接続」で出ます。