SDRとスペクトル — LimeSDR XTRXでGPS L1を見る

スペクトルのページのSDR版。信号源・アッテネータ・RXゲインを変えて、SDRの画面にGPS L1がどう映るかを見る

⚠ 前提: 実験はGPS信号源(gps-sdr-sim等でSDR送信、または校正用の信号発生器)と受信用LimeSDRを同軸ケーブル+アッテネータで直結して行う想定です。GNSS帯を空間に放射するのは電波法違反です(SDRでGNSS送信参照)。

受信スペクトル @ 1575.42 MHz

プリセット:
信号源の出力 0 dBm
アッテネータ ATT −50 dB
LimeSDR RXゲイン 40 dB

縦軸はアンテナ端(入力)換算のパワー[dBm]。数値はLMS7002M/XTRXの代表値を用いた教材用モデルで、実機の設定・個体で変わります。GPS L1(C/A+P(Y))は幅約2/20MHzの sinc² の裾で、受信機入力=信号源+ATT

LimeSDR XTRX(LMS7002M)の受信諸元(目安)

項目目安スペクトルへの効き方
周波数範囲30 MHz – 3.8 GHzL1 1575.42 MHz を含む(L2/L5/L6も)
RX雑音指数 NF約 3.5 dB雑音床を決める(低いほど弱信号が見える)
RXゲイン0 – 約66 dB低いとADC雑音に埋もれ、高いとクリップ
ADC分解能12 bitダイナミックレンジ ~74 dB。強弱の同時扱い
基準クロックVCTCXO ±0.5ppm級L1で±0.8kHz程度の周波数ずれ(TXページ
帯域幅最大 ~120 MHz(PCIe)本例は数MHz。広いほどRBWも広がる

出典の目安: LimeSDR XTRX 製品ページ / LMS7002M データシート。NF・ゲイン・最大入力はゲイン配分や周波数で変わるため、正確な設計は必ずデータシートで確認してください。

ゲインの「ちょうどいい」を探す — 弱すぎ / 強すぎの間

SDRのスペクトルは、生の電波そのものではなく「フロントエンド+ADCを通した後」の姿です。ここには2つの壁があります。

下の壁(雑音床): ゲインが低いとADCの量子化雑音が入力換算で高くなり、弱い信号がその下に沈みます。ゲインを上げると量子化雑音は下がり、やがてフロントエンドの熱雑音(NF)で決まる本来の床に到達します。ここが弱信号を見る限界。

上の壁(ADCフルスケール): ゲインを上げすぎると強い成分がADCの上限を超え、クリップ(飽和)して波形が潰れ、スペクトルに偽のスプリアスが立ちます。ゲイン下げかATT追加が必要。

だから正解は「クリップしない範囲でできるだけゲインを上げ、熱雑音床まで下げきる」。上のシミュレーターでゲインを動かすと、雑音床(紫)とフルスケール線(ピンク)の間にGPSの台形を収める感覚がつかめます。

RBW(サンプルレート)で見え方が変わる

スペクトルの1本1本(ビン)の雑音は、その幅(分解能帯域幅 RBW)に比例します: 雑音 = −174 dBm/Hz + NF + 10log₁₀(RBW)。RBWを狭くする(サンプルレートを下げる/FFT点数を増やす)ほど1ビンあたりの雑音が下がり、弱い信号が浮かびやすくなります。

ただしGPSは拡散信号なので、狭いRBWでも「鋭いピーク」にはならず、なだらかな台形のまま床がわずかに持ち上がる程度です。実衛星(−130dBm級)の生をSDRの単発スペクトルで見るのはやはり困難で、はっきり見たいなら受信機で相関(逆拡散)して処理利得を得ます(スペクトルのページ擬似距離参照)。

実際の手順(LimeSuite / GQRX などで)

① 中心周波数を 1575.42 MHz に、サンプルレートを数Msps(例2.5〜10)に設定。② RXゲインを低めから上げていき、雑音床が持ち上がり始める手前(熱雑音床に到達したあたり)で止める。③ 信号源(gps-sdr-sim+SDR TX や信号発生器)を有線でつなぎ、ATTで −50dB 前後に落として入力する。④ 信号が強すぎてクリップ(スプリアス多発・床が全体的に上昇)したらゲインかATTで下げる。

受信して測位までやるなら、スペクトル確認のあと GNSS-SDR / PocketSDR に生I/Qを流し込み、相関・追尾・復調させます。受信の流れの各ブロックが実際に動きます。