SDR動作の負荷状況

先の記事の通り、SDRを使ったラジオ受信をしています。

SDRのUSBダングルを Raspberry Pi 2 B に挿して、そこで rdl_tcp でデータストリームをネット配信し、デスクトップPC(Intel NUCですが)で受信し、SDR#ソフトウェアで聞くという構成です。

それらを稼働させている時のPCの負荷状況について少し書いてみようかと思います(ハードウェア系の記事ではないかもしれませんが…)

まず SDR# 上での設定ですが、この画像で示される設定等で受信しています。

FM802にチューニングを合わせています。

画面上に表示されている波形は、上から順に

  • Spectrum Analyser (FFT Display/View)
  • Waterfall (FFT Display/View)
  • Audio Spectrum (Zoom FFT/Enable Audio)

です。括弧の文字は SDR# アプリでのメニュー設定箇所を表しています。あと、メニューの Radio の所で [FM Stereo] にチェックしていまして、あとは [Audio Noise Reduction] を Enabled にしています。

色々と電磁ノイズが多い環境で使ってますので、これについてはまた改善していきたいと思っています。

この時のデスクトップPCの負荷状況は以下の通りです。


少しだけCPU負荷が高めのタイミングでキャプチャしましたが、Intel Core の i5-3427U の NUC マシンで、2.60GHz で動作しながら、見ているとだいたい 65% ぐらいのCPU利用率ですね。データストリームサーバの Raspberry Pi との通信としては、だいたい 34Mbps あたりで通信しています。共通のスイッチングハブの下にぶら下げていますので、一定の通信帯域で通信しているように見受けられます。

その時の Raspberry Pi 2 側(Ubuntu 22.04 Server LTS)の負荷はこんな感じです。

load average 的には 0.44あたりですかね。受信信号のデータストリームサーバである rdl_tcp が 10.5% ぐらいCPUを使っています。なお、ソフトウェア割り込み処理(ハーフボトム)関係の ksoftirqd で 9.2%、kworker が複数起動されており合計で 7.6% ぐらい使っているのが気になります。実際、Raspberry Pi 2 ではスペック的にしんどいかな、とは感じています。今使っている理由は、
  • 手元にあった
  • 消費電力が少ない(Pi3やPi4に比べて)
なのですが、
  • 性能が少し弱い
ことや、もう一つ、
  • 64bit-ARMカーネルが対応しておらず、Ubuntu Pro による Realtime Kernel が使用できない
という問題があります。このような定サンプリングでの受信データを配信するという用途としては、Realtime Kernelを使いたい所ですが、現状の Ubuntu で Realtime Kernel を使いたい場合には、Ubuntu Pro に対応させる必要があり、また Ubuntu Pro は 64bit Kernel のみに対応しているという状況のため、本当なら Pi3なりPi4を使って、64bit ARM Kernel の Ubuntu を使いたい所なのですが。

家庭用ということもあり消費電力を結構気にしてはいますが、どこかのタイミングで SDRサーバ側は Realtime Kernel で試してみたいな、とは思っています。

コメント

人気の投稿