Computer & RF Technology

RFワールド誌特別評価版のLabVIEWをRTLドングルで試してみる

CQ出版社の雑誌RFワールドはLabVIEWとUSRPによるSDRの特集でした。LabVIEWの名はよく耳にし、展示会等でも見かけていましたが使ったことはありませんでした。今回特別評価版ということでダウンロードサービスが提供されていますので試してみることにしました。

本来ならUSRPのハードウェアがあればもっと色々試せるのでしょうけれども、今回の特集ではハードウェア無しでも試せるように、サンプルデータが添付されていたり、疑似的に無線パスのエミュレーションするよう構成されています。ですので、ソフトウェアのみでも一通り試せるよう工夫されているのですが、ちょっと残念でもありますので、少し調べてみたところLabVIEWとRTLドングルを組み合わせて受信機を構成している実例がありましたのでこれもあわせて紹介します。

LabVIEWを実行するにはWindows環境が必要ですが、残念ながら手元にはPCがありません。そのため今回はVMwareで試してみることにします。LabVIEWは現在ではWindows専用のソフトウェアですが、実は80年代当初にはMac OSで開発されていたことを記事を読んで知りました。このへんの事情はExcelと似ているようですね。

さっそくRFワールド誌のサイトからファイルをダウンロードします。その際に若干のフォームへの記入が必要なようです(^^;。

RFワールドのサイトでフォームを記入すると、National Instrumentsのサイトに移動し、またそこでもフォームの記入を求められます(^^;。NIからダウンロードするファイルは、本体のダウンローダに加えて、追加するツールキットとサンプルなどです。このサンプルには、3章、4章のサンプルが含まれています。ダウンローダを実行すると追加でさらに1.5Gほどをダウンロードします。トータルで3GB程度になります。

  • LabVIEWインストーラのダウンローダ (154k + 1.4G)
  • NI_LabVIEW_Modulation_Toolkit (667M)
  • NI_Spectral_Measurements_Toolkit (950M)
  • SampleVI.zip (15M)

RFワールドのサイトからダウンロードしておくファイルがもう一つあります。5章、6章のサンプルと図表が入ったzipファイルです。ここでもフォームの記入が必要です(^^;。

  • RFW27A.zip (5M)

インストールの手順は、念のため記事を参照したほうが良いと思います。インストールの最後には再起動が要求されます。またLabVIEWのインストール後には、OSの起動時に自動でLabVIEWのアップデートの確認を行うようになります(^^;。いろいろとインストールされてしまうようですので、どうもLabVIEWは専用のPCを用意して使うことが想定されているような気がします。

さて、準備が整ったら起動してみます。ライセンスの確認画面が表示されたのち、こんな画面が現れます。ライセンスは当初7日間有効で、延長には登録が必要とのことです(^^;。

サンプルのフォルダを開いて、まずは3章FM復調のサンプルを開いてみます。llbという拡張子のファイルを開きます。

そうすると、こんなウィンドウが現れます。いくつか選択肢がありますが、まずは動かしてみたいのでPlaybackRecordedFMRadioMT.viをダブルクリックします。

そうすると部品が並んだウィンドウが現れます。さっそく実行してみたいところですが、動作させるためにはIQデータファイルを読み込ませる必要があります。パスの欄に、同フォルダにあったFMRadioIQData200k_Short.binファイルを指定します。そして上の矢印ボタンを押して実行します。そうすると波形とスペクトラムが画面に表示され、ファイルに記録されていたFM変調されていた音楽が聞こえてきます。無事動作しました。最初パスを指定しないとうんともすんともいわず、エラーも表示されません(^^;。最初はあれ?と思いました。それから、聞こえてくる音声ですが、VMwareを使用している関係上スムーズに再生されません。これはあくまでVMwareが原因です。

Ctrl-Eを入力(またはメニューからウィンドウ>ブロックダイアグラムを表示を選択)すると、中身の構成が表示されます。いろんな部品が接続されていますが、思ったよりも細かな要素がたくさん必要なようです。

続いて、4章のサンプルも試してみます。同様にファイルを開くと、こんなフロントパネルが現れます。こちらのサンプルは、テキストデータを送るというものです。適当にHelloWorldと入力してみると、それが変調波になり、途中ノイズ等の影響を受け、復調処理を行いテキストに戻る動作が実現されています。スペクトラムとコンステレーションも表示されています。

これの中身です。なんとなくはわかりますが、一見しただけでは細かい部品の存在理由がすぐには判断つきません。このダイアグラムを編集操作できるようになるまでには特に語彙を習得するのに慣れが必要そうです。

同様に5章のQAMのサンプルです。同様にテキストを、変調、外乱、復調してデコードしているようです。

6章はOFDMの例です。スペクトラムが角張っているのがOFDMらしいです。

記事では、未完成のものを完成させる手順も解説されています。記事でも言及されていますが、理論だけでは動く物は作れないので、このような実例があることで良い入り口になるのではないでしょうか。

さて、USRPがあれば実際の実験も可能なはずですが、残念ながら手近にはありません。既に皆さんがお持ちであるはずのRTLドングルを使った方法を探してみたところ、SDRLabというLabVIEWでの実装例がありました。これはlibrtlsdrのrtl_tcpを使い、TCP接続を介してドングルからデータを受け取り、後の復調処理をLabVIEWで行っています。

さっそくダウンロードして試してみます。まずはドングルを接続したホストでrtl_tcpを動作させておきます。LinuxでもWindowsでもかまいませんが、私はMacを使いました。別のホストから接続可能なように、待ち受けアドレスとしてINADDR_ANY(0.0.0.0)を指定しておきます。

$ rtl\_tcp -a 0.0.0.0
Found 1 device(s).
Found Rafael Micro R820T tuner
Using Generic RTL2832U
Tuned to 100000000 Hz.
listening...
Use the device argument 'rtl\_tcp=0.0.0.0:1234' in OsmoSDR (gr-osmosdr) source
to receive samples in GRC and control rtl\_tcp parameters (frequency, gain, ...).

ダウンロードしてきた sdrlab-rtl_tcp-interface-v0.1.zip を展開し、sdrlab.lvprojをLabVIEWで開きます。プロジェクトの中の sdrlab.lvlpsを開くと下のウィンドウが表示されます。rtl_tcpが動いているホストのIPアドレスを指定する必要があります。周波数を指定するフィールドがあるので、ここに適当にFM放送の周波数を入れ開始ボタンを押します。

ところがここでエラーが発生してしまいました。なぜかtask idという部品の接続がうまくいっていないようです。あれこれやってみると、ダイアグラムの画面でtask idをクリックしての選択し直しを2箇所すると正常に実行できるようになりました。バージョンに差異があったのかもしれません。

Playボタンを押すと若干遅れて復調されたFM放送の音声が聞こえてきます。バッファが大きいようで若干遅延が大きいです。各段階でバッファに蓄積されているかが表示されるのが特徴的です。

中身はちょっと複雑です。rtl_tcpとのTCP接続もダイアグラムで実装しています。

チューニングの操作性など実用的とはちょっと言いにくいですが、SDR受信ソフトウェアをLabVIEWで構成する試みとしては、まとまった形になっていると思います。このプロジェクトはBSDライセンスで公開されています。下のリファレンスにあるサイトからダウンロードすることができます。

以上、RFワールド誌特別版LabVIEWを試してみましたが、簡単ではないテーマですので、記事の内容やサンプルには苦労が伺い知れます。初めて使ってみてツールの雰囲気をつかむことはできました。グラフィカルな環境とはいえ、なかなか「誰でも使える」というわけにはなかなかいかないと思いますが、大学や研究機関などで既に利用できる環境やコード資産があったり、ソリューションやサポートが必要なのであれば良い環境なのだと思います。それから、LabVIEWは、FPGAで実装されたSDR受信機のプログラミングも可能と聞いたことがありますが、このあたりの状況についても伺い知りたかったところです。

リファレンス

Load more