osmo-fl2kの実験メモ

2018年04月24日21:58カテゴリSDR

RTL-SDR.COMで紹介されていたosmo-fl2kを試してみました。

基本波としてHF~約157MHzまでの周波数を生成することができ、その高調波でさらに1.7GHz程度まで利用できるらしい、、、
osmo-fl2kのWikiはこちら:SDR (Software Defined Radio) osmo-fl2k
https://osmocom.org/projects/osmo-fl2k/wiki

Patech USB3.0 to VGA変換アダプター ビデオグラフィックカード。アマゾンで1780円で購入。

VGAコネクタの①端子へアンテナ用の短いリード線を接続

実験環境
VirtualBOX内のUbuntu16.04で実験(ホストWindows10)
仮想マシンのUSBデバイスとして接続すると、不明なデバイスDevice 002: ID 1d5c:2000 として検出される。

$ lsusb
Bus 002 Device 002: ID 1d5c:2000

次の手順でosmo-fl2kをインストール

$ git clone git://git.osmocom.org/osmo-fl2k
$ cd osmo-fl2k/
$ mkdir build
$ cd build
$ cmake .. -DINSTALL_UDEV_RULES=ON
$ make
$ sudo make install

デバイス名の確認

$ pacmd list-sources | grep name | grep monitor
name:

この時に、permission errorなどとなったら、インストールしたユーザのディレクトリのパーミッションをチェックし、必要に応じて次を実行(ユーザ名 user1の場合)
 $sudo chown  -R user1:user1 /home/user1

サンプルのWBFM信号の生成に必要なpv, soxをインストール

$ sudo apt install pv sox

WBFM信号生成のテスト;
例えばRhymbox(ミュージックプレイヤー)などで音楽を再生すると、その音声で変調された信号が生成される。簡単なshell scriptを作る

$ cat start.sh #!/bin/bashpacat -r -d alsa_output.pci-0000_00_05.0.analog-stereo.monitor | \pv -B 256k | \sox -t raw -r 44100 -e signed-integer -L -b 16 -c 2 - -c 1 -e signed-integer -b 16 -t raw - \biquad 4.76963 -2.98129 0 1 0.78833 0 sinc -15k loudness 5 | \fl2k_fm - -s 130e6 -c 35e6 -i 44100

$ ./start.sh./start.sh Samplerate: 130.00 MHzCarrier: 35.00 MHzFrequencies: 95.00 MHz, 165.00 MHz

この例ではキャリアー周波数を -c 35e6(=35MHz)としているが、試してみると多数の他の周波数でも受信できてしまう。スプリアスが多いようなので実験には注意が必要。(アンテナは5cm程度のリード線で十分)
スペクトラムを観測した動画 (youtube)

VirtualBOXの中で実験している影響のせいか、他のプロセスの起動や操作を行うと、buffer underrunが
発生することがあり、buffer underrunが発生すると信号の生成が停止するようだ。

 wavファイルがあれば、次のように実行するこもできる。


$ fl2k_fm strings.wavSamplerate:     100.00 MHzCarrier:        97.00 MHzFrequencies:    3.00 MHz, 197.00 MHz


他に用意されているコマンドのhelpを表示

$ fl2k_test -helpfl2k_test, clock accuracy test for FL2K VGA dongles,also outputs a square wave at fs/2
Usage: [-d device_index (default: 0)] [-s samplerate (default: 100 MS/s)]
$ fl2k_fm --fl2k_fm, an FM modulator for FL2K VGA dongles
Usage: [-d device index (default: 0)] [-c carrier frequency (default: 9.7 MHz)] [-f FM deviation (default: 75000 Hz, WBFM)] [-i input audio sample rate (default: 44100 Hz for mono FM)] [-s samplerate in Hz (default: 100 MS/s)] filename (use '-' to read from stdin)
$ fl2k_file --fl2k_file, a sample player for FL2K VGA dongles
Usage: [-d device_index (default: 0)] [-r repeat file (default: 1)] [-s samplerate (default: 100 MS/s)] filename (use '-' to read from stdin)


fl2k_file コマンドを利用してGPS信号なども生成できるようなので試してみたが、周波数がずれてしまう。 (https://youtu.be/Xh6Xl3mB0c8)

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です