Thetisを使ってみてーThetis料理手帳ー

 1.はじめに

Thetisをインストールして従来のmRXPSと較べてみるとバンドスコープ画面は流れるようで帯域フィルターの切れもよく魅力的である。しかしながらやはりhoney trapはある。慎重に原因を探りながらの忍耐運用が続く。PCのCPUはIntel i7-8700@3.2GHzでグラボなしである。

2.送信時の音声の途切れ

送信音声に数秒ごとに途切れが発生する。途切れはMONでも確認できるしDUPで画面でも一瞬帯域が広がるのでこれを確認できる。AUDIO CODEC使用時でも発生するがVAC利用時のほうがはるかに発生頻度が高くなる。特にPURESIGNALを利用すると発生頻度が高くなる。同じ設定でmRXPSの場合は発生しないためThetis固有の問題である。

発生理由の原因はThetisはProtocol2を前提に設計しておりProtocol1を処理するためにコンバージェンスレイヤーを設けてプロトコル変換していることをPavelに教えてもらったのを思い出した。このレイヤーの実現はnetworkprotol1.cである。プログラムのソースを見るとvoid twistである。このひねりでパイプは詰まらないの?である。

当面の対策としてタスクマネージャーでThetisの優先度を高(H)にしたら発生は少なくなった。原因も対処法もだいたいわかったが、HPSDRの機能を表示のみに限定し変復調機能をPCからFPGA側に持って行ったFlexRadioのエンジニアの高笑いが聞こえるようだ。金欠のアマチュアとしてはここで踏ん張らなくてはと思うが、トホホである。

Windowsで優先度の設定は「https://itpc.blog.fc2.com/blog-entry-186.html」が役立つ。

今回は/HIGHと/ABOVEBORMALを試してみた。

  1. 任意の場所(デスクトップ等)に優先度を変更したいアプリのショートカットを作成。
  2. 作成したショートカットを右クリックしてプロパティを選択。
  3. 「リンク先」の先頭に cmd /c start "" /BELOWNORMAL を追加。

    入力例 cmd /c start "" /BELOWNORMAL "C:\Program Files\foo\bar.exe"

オプション名優先度
/REALTIME最高 ※
/HIGH高 ※
/ABOVENORMAL通常以上
/NORMAL通常
/BELOWNORMAL通常以下
/LOW
優先度の設定はThetisのSetup-->Options--> Process Priotityでも設定可能である。敢えて外部で変更する必要はない。(3/24/2011)

3.RedPitayaとコンピュータの接続

これも音切れに属することだがRedPitayaとPCの間では60Mbpsぐらいのデータが常時飛び交っている。なぜこのように多くのデータが使われるかというとRedPitayaには5つの独立した受信機があり一つの受信機はハイレゾ音源に相当する量(2 x 24bit x 192kbps=9.2Mbps)のデータがPCに常時送られている。5つの受信機であるからこれだけで46Mbpsになる。言ってみればイーサネットを介してハイレゾ5音源と48kbpsのマイク音声5本をリアルタイムで遅延なくミキシングする作業をPCで行っているのである。

そのためRedPitayaとPCのネットワーク構成は慎重でなればならない。小生の場合RedPitayaを2つのPCに接続したいと思っているので直結は出来ないのでMACアドレスでスイッチするSWITCH HUBを介して接続している。くれぐれも2つの間を無線LANで接続するようなことはしないでほしい。いやハイビジョンのデータを無線LANで飛ばしているよと言われるかもしれないが我々の場合はリアルタイム接続をしていることを忘れないで欲しい。

(2021年3月5日記)

4.VACの設定がリセットされてしまう

デジタル運用では全く不便でAudio Codecを使わずにVAC経由でPCのスピーカーとマイクを使う時にVACの設定がオフになるのは全くいらいらする。仕方ないのでdatabaseの関連部分を書き換えて置くことで当面の対応とした。

Thetisのdatabaseはユーザ\ユーザー\Appdata\Roaming\OpenHPSDR\Thetis\Thetis-64

にあり3538行から始まるVAC1とVAC2の記述を変えて置く。これでThetisの起動時にVACは生きている。運用でVACの設定を臨時に変えても再起動時は変更が反映されずVACは生きたままであるので面倒な再設定は不要である。小生の変更点を赤字で示す。

    <VAC1_On>true</VAC1_On>
    <VAC1_Auto_On>false</VAC1_Auto_On>
    <VAC1_RX_Gain>0</VAC1_RX_Gain>
    <VAC1_TX_Gain>0</VAC1_TX_Gain>
    <VAC1_Stereo_On>true</VAC1_Stereo_On>
    <VAC1_Sample_Rate>48000</VAC1_Sample_Rate>
    <VAC1_Buffer_Size>512</VAC1_Buffer_Size>
    <VAC1_IQ_Output>false</VAC1_IQ_Output>
    <VAC1_IQ_Correct>true</VAC1_IQ_Correct>
    <VAC1_PTT_OverRide>true</VAC1_PTT_OverRide>
    <VAC1_Combine_Input_Channels>false</VAC1_Combine_Input_Channels>
    <VAC1_Latency_On>true</VAC1_Latency_On>
    <VAC1_Latency_Duration>120</VAC1_Latency_Duration>
    <VAC2_On>true</VAC2_On>
    <VAC2_Auto_On>false</VAC2_Auto_On>
    <VAC2_RX_Gain>0</VAC2_RX_Gain>
    <VAC2_TX_Gain>0</VAC2_TX_Gain>
    <VAC2_Stereo_On>true</VAC2_Stereo_On>
    <VAC2_Sample_Rate>48000</VAC2_Sample_Rate>
    <VAC2_Buffer_Size>512</VAC2_Buffer_Size>
    <VAC2_IQ_Output>false</VAC2_IQ_Output>
    <VAC2_IQ_Correct>true</VAC2_IQ_Correct>
    <VAC2_Combine_Input_Channels>false</VAC2_Combine_Input_Channels>
    <VAC2_Latency_On>true</VAC2_Latency_On>
    <VAC2_Latency_Duration>120</VAC2_Latency_Duration>

(2012年3月7日)

5.20dB Mic Boostがいつも入る、TXFLがいつもON RX2をONにするとSDもON e.t.c.

VACの設定はTransmitタグのAuto Saveの2つのチェックすればよいとのこと。なんでVACの設定がTX Profileに分類するのかわからないけど、この方がdatabaseをいじるよりスマート。このAUTO Saveのチェックは効果絶大で本来のAUDIO Codecの20dB Mic Boostがいつも入るのに往生していたのも解決。なんでデフォールトで2つのチェックを入れておかないのかと思うけど結果オーライ。だいぶ使い心地はよくなった。

(2012年3月7日)

MOXとPTT(E1 PTT In)の使い方でQSO中にVACとMICの設定が突然変わるのも驚いた。これはVAC1の3つのAllow...のどれかにチェックが入っているときに起こる。あれば便利なのかもしれないけれどデフォールトでチェックを入っておく神経はどうなっているのかと思う。

(2012年3月8日)

6.VACとAUDIO CODECの違い

Voicemeeter BananaでVAC接続の場合mRXPSでは標準の512bitのBuffer Sizeで問題なかったがやはり音が途切れるようなので1024bitに変えてみた。少し良くなったような気がする。MONをONにしてみると送信時の定常的な同期はずれが起きるのが救済されるのがわかる。VACの影響はCPU利用率に1%程度の影響。VB-AUDIOが2%程度なのでVAC関連で3%程度となる。この点でPCに依存しないAUDIO CODECを利用するのが有利。

(2012年3月8日)

7.DiversityとRX2とPS

タスクマネージャーでCPUの使用率を見るとRX1のみでは8%前後であるがこれを基本に負荷の増加を見るとDiversity受信ではあまり増加は認められないがRX2を押すと+5%は増加する。RX2の増加は受信機を1つ追加するのだから仕方ない。その点Diversityは2つの受信機のうち復調回路以降は1つの受信系なので処理は楽である。

送信にすると少し増加はあるがPSを動かすと更に+2%ほど増加する。PSのAmpviewでLow Resのチェックを外すと数%増加して全部ごった煮で動かすとCPUの負荷は25%まで上がって音切れが発生する。送信時にRX2をオンにしているとこの分CPUの使用率は上がるから要注意である。またPSを動かすのは仕方ないとして試験時以外はAmpviewを動作させないほうが安全である。

SDRは汎用PCとフリーのソフトを使っているので資源ゼロのようものだけどPCの使用率ぐらいは大事なリソースとして大切にするのはエコかもしれない。

(2021年3月8日)

8.GPUの使用率について

GPUの使用率は25%である。ゲームアプリでは100%もあるようだけどYoutubeの画像再生では10%ぐらいなので確かに高い。Setup->Display->Reflesh Ratesで現状60をFPSをmRXPS並みの15まで落としても画面はきれい。これでGPU使用率は6%まで下がる。FPSを下げるとCPUの使用率も4%ほど下がるのがわかった。これはありがたい。

電力消費が背景色が赤で「非常に高い」となっている。一方電力の使用率は「低」である。定義を調べてみると

「電力消費」ではアプリ/サービスの瞬時の消費電力状況を、「電源の使用率」ではアプリ/サービスにおける2分以上の消費電力傾向が表示されている

ということで2つとも同じ消費電力のパラメーターであるが気になる「非常に高い」は他のアプリに較べてThetisが極めて高いということを意味していると思われるので気にしないことにした。

mRXPSは画像処理もCPUで行っていたがThetisではこれをGPUに移したのは大いに評価できるがFPUをいじってCPUの利用率もありがたく下がるのはいただけない。

(2021年3月8日)

9.Filter系パラメーター

DSPのSSB/AMのFilterパラメーターをmRXPSに変えてみた。CPU使用率は約1%減少した。RXのフィルター特性は保持したいのでTXのみmRXPS として運用してみている。CPUの利用率はRX1のみ受信で約7% PS-Aオンの送信で10%、GPUの利用率は6%、


(2021年3月8日)

10.Protocol2とThetisに関しての感想

Protocol2の仕様書のPage7を読んでいるとProtocol1に比較して'Second-system effect'にならないように気を付ければならないという趣旨の言葉が書かれている。参照しているWikiを読んだところこの言葉は

The second-system effect or second-system syndrome is the tendency of small, elegant, and successful systems to be succeeded by over-engineered, bloated systems, due to inflated expectations and overconfidence.

とある。これはエンジニアとして気を付けなければいけない金言だと思うけどProtocol2を使ったThetisはこの金言には当てはまらないと言えるのかなあ?

(2021年3月8日)

11.チューニング後の設定状況

プログラムの優先度はAbove Normal。VACのバッファーはASIOの1024bit。RedPitayaとの接続はSWITCHING HUB。Diverityは無制限に利用、RX2は受信時のみ、PS運用時LinearityタグをクリックしないでSSBモードで様子見。

(2021年3月9日)

12.まとめ

OpenHPSDRプログラムは最も高性能・高機能なSDRプログラムである。FlexRadio以来長い歴史を持つ。ソースはオープンなので中身も見れる。他のSDRプログラムの著者も個人的な趣味で作っているので実用にはOpenHPSDRを使って欲しい的なコメントを敢えて付けているほどである。よってこれを使いたいがためにSDRを運用している局も多い。この中でもThetisはずば抜けており使用するSDRハードとPCへの要求は厳しい。小生も例外でなくThetisを使ってみようとRedpitaya側の対応をPavelに依頼した経緯がある。

OpenHPSDRのSetupは他のSDRプログラムに較べて複雑怪奇である。かつデフォルトの設定値が無茶苦茶である。書いてある説明をよく読んでチャックを入れたり外したりしないと予想外の動作をするので注意が必要である。

読んでニヤッとされる向きもあると思うので過激なまとめをすると、いやしくもRedPitayaでThetisで遊ぼうと思っている方は同じアキバ系ではあるがラジオ会館とか千国電商とかでなくドスパラとかTSUKUMO exとかで徘徊する設定パラメータをチューンできるPCゲーマーでなければいけないことを自覚すべきである。それでも自作でSDRを触ってみたいと思われる方にはRadioBerryのようなボックス的なものとか1ADCのHL2をトライするとよい。どうしても2ADCのRedPitayaでやりたい場合でもSDRソフトは1ADC対応のみでPSも対応しないQUISKとかおとなし系でなれるのが良いと思う。QUISKならCPU使用率はわずか2%以下、メモリーは52MBytetとThetisの1/10以下、Ethernetは12Mbpsである。音も柔らかくてよい。

以上からThetisをSSBで使おうと思う向きには事務用のPCではなくゲーミングPCを選ぶのが正解であると思う。そしてSetupのパラメーターをどんどん上げてハイレゾを自慢するのである。いやいや今さらツクモに出入するにはジジイすぎて恥ずかしいと思う方はSSBモードなんかやめて小生のようにスローなデジタルモードで遊ぶのも手である。

最後にmRXPSを問題なく使って今手持ちのPCで引き続きThetisを使いたい方は本料理手帳を参考にパラメーターをどんどん落としてみて欲しい。そうすれば満足か否かは別として動作は正常にすると思っている。

(2021年3月9日)





コメント

このブログの人気の投稿

RedPitayaを使ったSDR構成のまとめ

Thetis完全対応:sdr-transceiver-hpsdr-ananxd(3月1日改定)

DAIWA CNW-518 アンテナチューナのフィルター特性