K6BEZアンテナアナライザの校正

このブログにK6BEZアンテナアナライザーで検索してたどりつく人が少なからずいる。あまり十分な情報を提供できずに申し訳ないと思う。
いろいろと実験した結果、このタイプのアナライザは誤差が大きく、校正して使わなければSWR値は信頼が置けない。共振点を見つけるくらい、ディップメータ程度にしか実用にならないと考えている。なので、実用に供すべくアンテナアナライザの校正についてのまとめとめてみた。
 
・誤差の原因
K6BEZタイプに代表されるダイオード検波型アンテナアナライザはダイオードの特性により系統誤差がある。このアナライザに使用されるGeダイオードは一般的に図のような特性となっている。SWRの値は、進行波の電圧をFWD、反射波の電圧をREVとすると、
  SWR=FWDREV)/(FWD-REV
で計算される。
イメージ 1

FWD ダイオードの特性の1のあたりで検出され、REV は上図の2のところで検出されることになる。この結果、ダイオードの非直線性のため、SWRは実際よりも低く表示されることになる。
また、広く使用されているAD9850 DDSユニットは、フィルターの特性、Qが低いためか広域での減衰が大きい。下図はDDSの特性を測定したものでY軸はAD変換値をダイレクト10Bit 0-1023に表示しているが、ほぼmVと見て良い。赤がオリジナルで青 MLA48は、フィルターを改修して高域の特性を改善したものである。

イメージ 2

これから分るように、周波数が高くなるとFWD出力が低下し、それにつれてREVも低下するためダイオード特性グラフのVに近いほうで検出されるため、ますます誤差が大きくなる。

・校正表を作る
インピーダンスが純抵抗 (実数) 成分のみで構成される場合には、そのインピーダンスの比がそのままVSWRの値となる。したがって特性インピーダンス 50 Ω、負荷のインピーダンス 25ΩであればVSWR = 2となる。このことを利用して、市販の抵抗で各SWR値のダミーロードを作る

イメージ 3

得られた校正値から、下図のように、グラフを作成する。これから、区間を区切って、SW値の真値を校正値の補正率値を直線で近似する。一次関数近似には、統計ソフトを使用したが、Excelでも可能だと思う。

イメージ 4
これらの値をもとにした、Arduino のデータ補正主要部分のスケッチは以下の通り。

   REV = analogRead(A1);        // Read the forward and reverse voltages
   FWD = analogRead(A0);
   
   if(REV>=FWD) VSWR = 99.99;      // To avoid a divide by zero or negative VSWR then set to max 999
    else VSWR =(FWD+REV)/(FWD-REV);         // Calculate VSWR
 
// Adjust VSWR data by approximationformula
   if ( VSWR < 1.10 )  VSWRratio =-4.0065 + 4.8971 * VSWR;
    else if ( VSWR < 1.33 ) VSWRratio = 0.8162 + 0.5034 * VSWR;
      else if ( VSWR < 1.65 ) VSWRratio = 1.2501 + 0.1764 * VSWR;
       else if ( VSWR < 30.0 ) VSWRratio = 1.5481 - 0.0064 * VSWR;
         else VSWRratio = 1.36 ;
    VSWR= VSWR * VSWRratio;
   if (VSWR < 1.00) VSWR = 1.00;
   if (VSWR > 99.9) VSWR = 99.99;

DDSの周波数/出力特性が良くないときには、周波数帯を区切って、それぞれのBANDについて校正すると良い結果が得られる。