USRP N210でコツをつかんだので,bladeRFでのrecord & playbackに再挑戦.
GPS信号の受信では,USRPと同様にBPF付きのLNAを追加.ゲインは40dBです.
bladeRFでは,I/Q信号の分布を確認しながら,rxvga1を30dBに,rxvga2を18dBに
調整しました.
このrxvga1とrxvga2は,それぞれLMS6002DのMixerとLPFの後段のゲインになります.
(クリックで拡大)
Recordの手順は以下の通り.
$ bladeRF-cli -i
bladeRF> set frequency 1575.42M
Set RX frequency: 1575420000Hz
Set TX frequency: 1575420000Hz
bladeRF> set samplerate 4M
Setting RX sample rate - req: 4000000 0/1Hz, actual: 4000000 0/1Hz
Setting TX sample rate - req: 4000000 0/1Hz, actual: 4000000 0/1Hz
bladeRF> set bandwidth 2.5M
Set RX bandwidth - req: 2500000Hz actual: 2500000Hz
Set TX bandwidth - req: 2500000Hz actual: 2500000Hz
bladeRF> set rxvga1 30
bladeRF> print rxvga1
RXVGA1 Gain: 30dB
bladeRF> set rxvga2 20
bladeRF> print rxvga2
RXVGA2 Gain: 18dB
bladeRF> cal lms
Calibrating LMS LPF tuning module...
LPF tuning module: 23
Calibrating LMS TX LPF modules...
TX LPF I filter: 35
TX LPF Q filter: 27
Calibrating LMS RX LPF modules...
RX LPF I filter: 1
RX LPF Q filter: 35
Calibrating LMS RXVGA2 modules...
RX VGA2 DC reference module: 25
RX VGA2 stage 1, I channel: 37
RX VGA2 stage 1, Q channel: 21
RX VGA2 stage 2, I channel: 33
RX VGA2 stage 2, Q channel: 27
bladeRF> cal dc rx
RX DC I Setting = 38, error ~= -2
RX DC Q Setting = 34, error ~= 6
bladeRF> rx config format=bin file=gps.bin n=400000000
bladeRF> rx start
bladeRF> rx
State: Running
Last error: None
File: gps.bin
File format: SC16 Q11, Binary
# Samples: 400000000
# Buffers: 32
# Samples per buffer: 32768
# Transfers: 16
Timeout (ms): 1000
DCのキャリブレーションが上手く行き,オフセットのない信号が受信できました.
(クリックで拡大)
(クリックで拡大)
GPS信号の受信も確認できます.
(クリックで拡大)
次は,記録したデータを同じRFの設定で再生します.
bladeRFでは,TXのゲイン設定でattenuationもできます.
RFラインに挿入した50dBのattenuatorに加えて,txvga1を-10dBに設定しました.
Playbackの手順は以下の通り.
bladeRF> set txvga1 -10
bladeRF> print txvga1
TXVGA1 Gain: -10dB
bladeRF> print txvga2
TXVGA2 Gain: 0dB
bladeRF> cal dc tx
TX DC I Setting = -147, error ~= 25.489208
TX DC Q Setting = 474, error ~= 10.132919
bladeRF> tx config file=gps.bin format=bin
bladeRF> tx start
bladeRF> tx
State: Running
Last error: None
File: gps.bin
File format: SC16 Q11, Binary
Repetitions: 1
Repetition delay: none
# Buffers: 32
# Samples per buffer: 32768
# Transfers: 16
Timeout (ms): 1000
TXのDCオフセットのキャリブレーションがあまり上手くいっていません.
それでも,bladeRFのTXに接続されたubloxの受信機で無事に受信を確認.
(クリックで拡大)
しかし,信号を捕捉するのですが,しばらくするとロックが外れてしまいます.
コールドスタートをかけると再捕捉するので,信号は途切れずに出力されているようです.
搬送波信号のQiを見ると,多くの信号で3となっており,あまり良い品質ではありません.
どうやら,再生されている信号の周波数の安定性がいまひとつのようです.
USRPでも外部クロックを推奨されていたので,OCXO搭載のGPSDOでも購入しようかな.
【追記】Myriad RFのプロジェクトが増えている.
https://myriadrf.org/
【追記2】TXが不安定なのはクロックではなくUSB 3.0の問題か?
USB 3.0が正常に動作しているかどうかチェックが必要.
bladeRF: Debugging dropped samples and identifying achievable sample rates
GPS信号の受信では,USRPと同様にBPF付きのLNAを追加.ゲインは40dBです.
bladeRFでは,I/Q信号の分布を確認しながら,rxvga1を30dBに,rxvga2を18dBに
調整しました.
このrxvga1とrxvga2は,それぞれLMS6002DのMixerとLPFの後段のゲインになります.
(クリックで拡大)
Recordの手順は以下の通り.
$ bladeRF-cli -i
bladeRF> set frequency 1575.42M
Set RX frequency: 1575420000Hz
Set TX frequency: 1575420000Hz
bladeRF> set samplerate 4M
Setting RX sample rate - req: 4000000 0/1Hz, actual: 4000000 0/1Hz
Setting TX sample rate - req: 4000000 0/1Hz, actual: 4000000 0/1Hz
bladeRF> set bandwidth 2.5M
Set RX bandwidth - req: 2500000Hz actual: 2500000Hz
Set TX bandwidth - req: 2500000Hz actual: 2500000Hz
bladeRF> set rxvga1 30
bladeRF> print rxvga1
RXVGA1 Gain: 30dB
bladeRF> set rxvga2 20
bladeRF> print rxvga2
RXVGA2 Gain: 18dB
bladeRF> cal lms
Calibrating LMS LPF tuning module...
LPF tuning module: 23
Calibrating LMS TX LPF modules...
TX LPF I filter: 35
TX LPF Q filter: 27
Calibrating LMS RX LPF modules...
RX LPF I filter: 1
RX LPF Q filter: 35
Calibrating LMS RXVGA2 modules...
RX VGA2 DC reference module: 25
RX VGA2 stage 1, I channel: 37
RX VGA2 stage 1, Q channel: 21
RX VGA2 stage 2, I channel: 33
RX VGA2 stage 2, Q channel: 27
bladeRF> cal dc rx
RX DC I Setting = 38, error ~= -2
RX DC Q Setting = 34, error ~= 6
bladeRF> rx config format=bin file=gps.bin n=400000000
bladeRF> rx start
bladeRF> rx
State: Running
Last error: None
File: gps.bin
File format: SC16 Q11, Binary
# Samples: 400000000
# Buffers: 32
# Samples per buffer: 32768
# Transfers: 16
Timeout (ms): 1000
DCのキャリブレーションが上手く行き,オフセットのない信号が受信できました.
(クリックで拡大)
(クリックで拡大)
GPS信号の受信も確認できます.
(クリックで拡大)
次は,記録したデータを同じRFの設定で再生します.
bladeRFでは,TXのゲイン設定でattenuationもできます.
RFラインに挿入した50dBのattenuatorに加えて,txvga1を-10dBに設定しました.
Playbackの手順は以下の通り.
bladeRF> set txvga1 -10
bladeRF> print txvga1
TXVGA1 Gain: -10dB
bladeRF> print txvga2
TXVGA2 Gain: 0dB
bladeRF> cal dc tx
TX DC I Setting = -147, error ~= 25.489208
TX DC Q Setting = 474, error ~= 10.132919
bladeRF> tx config file=gps.bin format=bin
bladeRF> tx start
bladeRF> tx
State: Running
Last error: None
File: gps.bin
File format: SC16 Q11, Binary
Repetitions: 1
Repetition delay: none
# Buffers: 32
# Samples per buffer: 32768
# Transfers: 16
Timeout (ms): 1000
TXのDCオフセットのキャリブレーションがあまり上手くいっていません.
それでも,bladeRFのTXに接続されたubloxの受信機で無事に受信を確認.
(クリックで拡大)
しかし,信号を捕捉するのですが,しばらくするとロックが外れてしまいます.
コールドスタートをかけると再捕捉するので,信号は途切れずに出力されているようです.
搬送波信号のQiを見ると,多くの信号で3となっており,あまり良い品質ではありません.
どうやら,再生されている信号の周波数の安定性がいまひとつのようです.
USRPでも外部クロックを推奨されていたので,OCXO搭載のGPSDOでも購入しようかな.
【追記】Myriad RFのプロジェクトが増えている.
https://myriadrf.org/
【追記2】TXが不安定なのはクロックではなくUSB 3.0の問題か?
USB 3.0が正常に動作しているかどうかチェックが必要.
bladeRF: Debugging dropped samples and identifying achievable sample rates