PlutoSDR #82018/10/28 18:16

GNU Radio + PlutoSDR でFM送信

leaniiorxはスタックしているので,leaniiotxで遊んでみた。

いきなりDATV送信はあり得ないので,r4d10nさんのgithubを参考にFM送信してみた。LeanIIOTx+PlutoSDRで送信するにはIQファイルが必要なんだが,Process RXSamples.wav in GRC for upsampling to 1 MSps and FM modulation (File Source -> Throttle -> Rational Resampler -> NBFM -> Filesink).だけでGRCの添付なし。

自分ではフローグラフを描けず,undertugaさんのをPlutoSDR用に改造した。先ずはGNU Radio+PlutoSDRで送信して,IC-910で受信&音が鳴るのを確認した(添付画像はtone信号を注入したときの画面コピー。Waterfallは流れているのだが,信号は判別できず)。

IQファイルを作るには,フローグラフ中のPlutoSDR sinkをFile sinkに切り替えれば良く,出来上がったIQファイルをGNU RadioでFile sourceから読み込んでNBFM Receiverに食わせたらキッチリ鳴った。

しかし,そのIQファイルをleaniiotx@PlutoSDRに食わせたらエラーになった。症状は下記URLのコメント欄と同じだ...

# ./leaniiotx -s 1000000.0 --bw 200000.0 -f 145400000.0 -v -d --bufsize 0x8000 --nbufs 32 < /tmp/TXSample-test.iq 
Using AD936x FIR interpolator x4
Setting RF bandwidth 200 kHz
** IIO: out_voltage_filter_fir_en failed with Unknown error -22

だが,IQファイルをleaniiorx@PlutoSDRで受信して作成し,そのIQファイルをleaniiotx@PlutoSDRで送信→IC-910で受信したら,キッチリ再生できた。

# ./leaniiorx --bufsize 65536 --nbufs 32 -f 145400000 -s 1000000.0 --bw 200000.0  -v  > /tmp/foo.iq 
Using AD936x FIR decimator /4
Setting RF bandwidth 200 kHz
Setting sampling rate 1000 kHz
Tuning to 145.400000 MHz
...
^C
# ./leaniiotx --bufsize 65536 --nbufs 32 -f 145400000 -s 1000000.0 --bw 200000.0  -v  < /tmp/foo.iq 
Using AD936x FIR interpolator x4
Setting RF bandwidth 200 kHz
Setting sample rate 1000 kHz
Upconverting to 145.400000 MHz
...
Shutting down TX channels

どうやらIQファイルの互換性が問題みたい。予想通り,このIQファイルはGNU Radioでは復調できなかった(音は鳴らず)。