OSQZSS

オープンソース準天頂衛星(QZSS)受信機

HackRFでもRecord & Playback

2014-12-02 09:22:14 | GPS Signal Simulator
勢いに任せて,HackRF OneでもGPS信号のrecord & playbackに挑戦.



GPS信号の受信では,帯域が2.5MHzになるように,サンプリングレートを2.6MHzに設定.
ゲインは,I/Q信号の分布を確認しながら,ベースバンドを30dB,LNAを40dBにしました.

$ hackrf_transfer -r gps.bin -f 1575420000 -s 2600000 -n 260000000 -g 30 -l 40 -a 0
call hackrf_sample_rate_set(2600000 Hz/2.600 MHz)
call hackrf_baseband_filter_bandwidth_set(2500000 Hz/2.500 MHz)
call hackrf_set_freq(1575420000 Hz/1575.420 MHz)
call hackrf_set_amp_enable(0)
samples_to_xfer 260000000/260Mio
Stop with Ctrl-C
5.0 MiB / 1.000 sec = 5.0 MiB/second
5.2 MiB / 1.000 sec = 5.2 MiB/second
5.2 MiB / 1.000 sec = 5.2 MiB/second
5.2 MiB / 1.000 sec = 5.2 MiB/second
5.2 MiB / 1.000 sec = 5.2 MiB/second
2.6 MiB / 1.000 sec = 2.6 MiB/second
2.4 MiB / 1.000 sec = 2.4 MiB/second
5.2 MiB / 1.000 sec = 5.2 MiB/second
5.2 MiB / 1.000 sec = 5.2 MiB/second
5.0 MiB / 1.000 sec = 5.0 MiB/second
4.5 MiB / 1.000 sec = 4.5 MiB/second
3.1 MiB / 1.000 sec = 3.1 MiB/second
1.0 MiB / 1.000 sec = 1.0 MiB/second
5.0 MiB / 1.000 sec = 5.0 MiB/second
5.2 MiB / 1.000 sec = 5.2 MiB/second
4.7 MiB / 1.000 sec = 4.7 MiB/second


受信は確認できるものの,ゼロ近辺の値の頻度だけが突出しています.
気になりますが,いまのところ原因不明.

 (クリックで拡大)

 (クリックで拡大)

 (クリックで拡大)

また,長時間連続してデータを記録していると,ときおり転送レートが低下しており,
取りこぼしがありそうです.この転送レートの低下は,TXのときには発生しません.
USB 2.0ではなく,HDDへの書き込みの問題?

hackrf_transfer -t gps.bin -f 1575420000 -s 2600000 -a 1 -x 0
call hackrf_sample_rate_set(2600000 Hz/2.600 MHz)
call hackrf_baseband_filter_bandwidth_set(2500000 Hz/2.500 MHz)
call hackrf_set_freq(1575420000 Hz/1575.420 MHz)
call hackrf_set_amp_enable(1)
Stop with Ctrl-C
5.0 MiB / 1.000 sec = 5.0 MiB/second
5.2 MiB / 1.000 sec = 5.2 MiB/second
5.2 MiB / 1.000 sec = 5.2 MiB/second
5.2 MiB / 1.000 sec = 5.2 MiB/second
5.2 MiB / 1.000 sec = 5.2 MiB/second
5.2 MiB / 1.000 sec = 5.2 MiB/second
5.0 MiB / 1.000 sec = 5.0 MiB/second
5.2 MiB / 1.000 sec = 5.2 MiB/second
5.2 MiB / 1.000 sec = 5.2 MiB/second
5.2 MiB / 1.000 sec = 5.2 MiB/second
5.2 MiB / 1.000 sec = 5.2 MiB/second

User cancel, exiting...
Total time: 100.01574 s
hackrf_stop_tx() done
hackrf_close() done
hackrf_exit() done
fclose(fd) done
exit


TXのRFゲインとして14dBのMGA-81563をオンにしています.
このときのRFラインに挿入したattenuatorは60dBです.

ubloxの受信機で信号を確認すると,問題なく受信できました.
しかし,やはり記録したファイルにデータの取りこぼしがあるようで,
そのタイミングで信号が落ちてしまいます.

 (クリックで拡大)

HackRF Oneに搭載されている25MHzの基準クロックは水晶振動子で,周波数偏差は20ppmです.

Kyocera: Surface Mount Type CX3225GB

bladeRFに搭載されている38.4MHz+/-1ppmのVCTCXOと比較すると許容偏差が大きいのですが,
受信信号のQiは6を示すこともあり,比較的良好です.

HackRF Oneの受信ポートは,アクティブアンテナ用に3.3VのDCを供給できるのが魅力的.
送信時もMGA-81563をオフにすれば,必要なattenuatorの数も減らせる?
受信データの取りこぼしさえなければ,かなり使えそうです.
SSDで試してみるかな.

【追記】HackRFの基板にアクセスしたかったので,ケースを取り外す.



上側に爪がついていて,下側の穴に引っかけています.
かなりキツイので,ケースにキズを付けずに外すのは難しそう.

P22にCLKINとVCC,GNDのピンが出ているので,ここにTCXOを搭載した
子基板を差し込んで,クロックの精度を改善しよう.

CLKINは10MHzのCMOS入力.Digikeyで探してみたけれど,あまり選択肢はない.

FOX924B: OSC TCXO 10.000MHZ HCMOS SMD

【追記2】アナログ部のRFシールドは未実装.これもDigikeyで購入できる.

BMI-S-230-F-R: BOARD SHIELD 2INX1.5IN FRAME
BMI-S-230-C: BOARD SHIELD 2INX1.5IN COVER

【追記3】アクリルケースを付ける.OSH Stensilsから購入できます.



コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする