お気に入りのSDR製作 「SDRStudyにSメーターを組み込んでみる」


 写真は、本プロジェクトのきっかけとなった「RFワールド#22 らくらく! SDR無線機入門」。本書で紹介されているSDRStudyはSDRの動作原理からソフトでの処理 方法が解説されています。またソフトのソースコードも判り易くコメント挿入されており、SDR開発の参考書としてお奨めです。

2018.9.5

はじめに
 「お気に入りのSDR」をソフトも含めて自作するプロジェクトは、なかなか進みませんが、今回はSDRstudyに前回製作したS_Meterを組み込んでみます。
 SDRStudyの画面は下図のような構成になっており、SDRの動作学習を目的とした操作画面になっていますので、無線機に必要な機能がすべて実装されているわけでは ありません。

 SDRStudyの基本ソフトを利用して、自分なりのSDRトランシーバーを製作していきます。

SDRStudyのソースコード
 SDRStudyは主に4つのソースファイルで構成され、それぞれの処理機能に応じて判り易くクラス分けされています。
 今回は、ユーザーインターフェイス部のForm1クラスにSメーターの絵を貼り付け、Sメーターの針を動かすパラメーターを、信号処理部のSignalクラスから取り出す 改造を盛り込みます。
 ソースコードはこちらからダウンロードできます。

画面を作ってみる

 STEP1 Form1にTextBoxとSメーターの絵を貼り付ける。Formのサイズを少し広げ、TextBoxを配置。次にForm1.csにSメーターのコードを追加。一旦デバックして 画面表示を確認。

 STEP2 Sメーターを動かすパラメーターを調べる。信号強度のパラメータとして信号処理スレッドの中の

 level = signal.GetAbs(null, SignalReal, SignalImag); // このパケット内で最大の信号強度を求める 

このlevelに応じてSメーターを動かす。叉はSignalクラスのApplyAgc( )の中の

 gain = gainavarage / agctime; // AGCに時定数を持たせる

このgainはApplyAgc( )の中で、gain = 0.1/level と計算しておりlevelとの相関があり、かつAGCと連動しているので、Sメーターのパラメーターとして利用できそうです。

sm_level = Math.Log10(gain) * 20; //Sメーター表示用 をTextBoxに表示させ、数値を確認する。

 信号処理部は、メインFormとは別スレッドになっているため、デリゲードで表示するようにします。
 画面はクリックで拡大します。

 

ANT入力レベルとgainの相関を調べてみる SDRに使用するフロントエンド構成やSDRStudyのLevel設定(デフォルト値 = 0.1)によって相関値は変わりますが ANT入力にSSG信号を印加し、そのレベルとgainの相関を調べてみました。

S Level S=9 S=8 S=7 S=6 S=5 S=4 S=3 S=2 S=1 S=0
SSG dbm -73 -79 -85 -91 -97 -103 -109 -115 -121 -127
gain 43 47 53 59 64 68 71 72 72 72
gain(理想値) 43 49 55 61 67 73 79 85 91 97

   ANT入力-73dbm時、S=9を基準とすると入力-6db毎にgainは+6dbアップしていくはずですが、S=4辺りから内部雑音の影響で相関が悪くなってきますが、まずはgainをパラメーターとして Sメーターを動かせそうです。
   

  ソフトの説明
FormソースリストSignalソースリストを参考まで
ソースコード中のコメントに日付挿入された部分が、追加変更部です。
 FormのソースにSメーター表示関数として、 private void smeter(double sm_level) //Sメーター表示 、とTextBox6に表示の、 public void SetText(double sm_level)で、sm_levelを他の引き数に変えれば、信号処理スレッドの変数を表示することができます。

   結果
 SSBモード受信時はメーターの動作ピークのタイミングと、実際の信号ピークのタイミングが少しずれているようで、今後の検討課題ですがまずは、Sメーターの組み込みについては 一旦終了です。 動作試験用lsbファイルを受信した様子をYouTubeにアップしました。デバッグモードでテストしているのでスペクトラム表示がうまく出ていません。

SDR S Meter demo(動画 YOUTUBEへ)Sメーターの動きの様子を動画にしてみました。

画面を作ってみるへ

   Top Menu