SDRで使われるソフトウェア環境

前回に引き続きNI Days 2018の技術セッションで講演した内容を、お送りします。

前回は「SDRで使われるソフトウェア無線機の概要」についてご紹介しました。

今回は、"SDRのソフトウェア環境"についてお送りします。


SDR#

こちらはSDR#と呼ばれるフリーのソフトウェア受信機で、AM/FMラジオを聞くことや簡易的なスペクトラムアナライザとして利用できます。

RTLSDRと一緒に使われることが多く、RTLSDRをPCに接続しSDR#で80MHzを受信すると東京FMを聞くことが出来ます。

アマチュア無線の方々が安価な広帯域受信機として使っており、SDR入門に最適です。

clip_image001


GNU Radio

こちらは世界的にメジャーなGNURadioです。オープンソースでコミュニティで開発されている環境で、Pythonとライブラリで構成されておりPythonでプログラミングすることで信号処理部を実装します。

またGNU Radio Compaion(GRC)と呼ばれる「プログラミングレスでブロックをつないでいって開発できる」環境も用意されていて、以前に比べ導入のハードルは低くなっています。Windowsもインストーラーがあり、問題なくインストール可能です。

GNU Radio Compaion(GRC)は、ウィンドウ右側に変調復調などの関数が並んでおり、関数をつないで信号処理部を実装します。LabVIEWやSimulinkのような感覚で実装が可能です。

多くのソフトウェア無線機に対応していてUSRPはもちろん、BladeRFもRTLSDRにも対応しています。

clip_image002

clip_image003


LabVIEW

次にLabVIEWです。ナショナルインスツルメンツが開発販売している商用ソフトウェア開発環境です。

上記2点はフリーで利用可能ですが、こちらは費用がかかります。

ですが、ものすごく開発効率が高く、またトレーニングやテクニカルサポートが充実していますし、実施している日本ナショナルインスツルメンツの体制がしっかりしているため、仕事で利用するには安心です。

またLabVIEWは、プロセッサ上で動作するソフトウェアも開発できますし、FPGAもソフトウェアと同じようにブロック線図で開発します。

通常FPGAは、VHDLなどのハードウェア記述言語というテキスト言語で開発しなければならないのですが、LabVIEWならブロック線図で開発できるため、ソフトウェアエンジニアでもFPGA開発をするハードルが低いのが特徴です。

株式会社ドルフィンシステムは、LabVIEWを利用したソフトウェア無線機の開発を数多く手がけております。こちらをご覧ください。

clip_image004


ソフトウェア無線機の弱点

clip_image005

ソフトウェア無線機の弱点は、時間確定性が無いことです。

つまりソフトウェアで信号処理するわけですから間に合わない場合があります。

OSからの割込発生等で確実な定期処理(例えば100ms毎に処理する等)が出来ない可能性があります。

対処として、間欠的な処理を行うか(つまり間に合わない場合は諦める)、信号処理部をプログラマブルなハードウェアであるFPGA上に実装することで、確実に間に合うように実装することが必要です。


まとめ

  • SDR#を使うと、RTLSDRがAM/FMラジオの受信機やスペクトラムアナライザのように使える。
  • GNURadioは、オープンソースでコミュニティで開発されている環境。
  • プログラミングレスのGNU Radio Companion(GRC)も用意されている。
  • LabVIEWはナショナルインスツルメンツの商用ソフトウェア開発環境。
  • ものすごく開発効率が高く、またトレーニングやテクニカルサポートが充実している。
  • LabVIEWは、プロセッサ上で動作するソフトウェアも開発可能で、FPGA開発もソフトウェアと同じくブロック線図で開発する。
  • VHDL言語をマスターする必要が無いため、ソフトウェアエンジニアでもFPGA開発が可能
  • ソフトウェア無線機の弱点は、処理が間に合わない場合がある事と、定期的な処理が出来ない場合がある。
  • 対処は、間欠的な処理をするか、FPGA上で実装する。

これまでの回でソフトウェア無線機のハードとソフトの両面を見てきました。次にオープンなSDRの世界はどのようなものかご紹介します。

コメント