fc2ブログ

除算もどきでSWR算出を攻略!?

2011-05-28      
 そもそも、SWRとして求めるべき数の桁数は、小数点以下2桁程度です。また、実数部分もあまり巨大な数までは扱いませんから、加減算だけでもある程度の速度で求められるかも知れないなぁ・・・ちょっと考えてみたいと思います。

 まずは肝となるA/D変換ですが、10ビットの分解能に加え、「進行電圧+反射電圧」で桁上がりが生じると、結果的に11ビットになることから16ビット長の処理は必須ですが、ここでは「8ビットマイコンに16ビットを計算させること」の説明は端折ります。そして、しつこく下記の式には登場願いましょう。

 SWR = (進行電圧+反射電圧) / (進行電圧-反射電圧)
               ①                 ②

 まずは、単純に①から②を減算します。最低1回は減算できますよね ここで、減算された残りをどうするか・・・ここからが本題。さらにもう一度減算しようとすると、以下の2つの事象の何れかが生じます。

 ・ 減算できない(マイナスになってしまう)・・・A
 ・ 減算できる・・・B

 Bは残念ながら「SWRが2以上」ということになります。さらに減算できれば3、4・・・と、大きくなります。つまり「何回引けたか」を記憶しておけば、それこそSWR100でも1000でも・・・なんですが、まぁ10回ぐらいで諦めた方が良いでしょうね

 一方、Aの方は引けないわけですから、10倍した値から減算できるか・・・ここで減算できれば、小数点第一位の計算ができるということです。割り算の筆算を思い出してください。

 さて、この「10倍」ですが、乗算ができないPICでは「10回足す」という必殺技でも良いのですが、もう少し簡単にする方法があります。10倍したい数を仮に「X」とします。

<シフトを使った10倍法>
 1) Xを3ビット左シフト ・・・イ ← 8倍
 2) Xを1ビット左シフト ・・・ロ ← 2倍
 3) イとロを加算

 簡単ですね こうして得られた数から②を減算し、その回数を小数第一位の数にします。引けなくなったら、さらに10倍して小数第二位を求めます。もし小数第三位を四捨五入するなら、5回まで減算できたところで第二位に1加算して終了です(桁上がりがあれば、下の桁から順に1加算します)。
 もし、9.99まで求めたいとすると、そのループ回数の最大は「9+9+9+5(四捨五入分)」で33回です。勿論、切り捨てで良ければ四捨五入分は要りません。さらにSWR計算故、3.00以上は丸めても(少数計算しなくても)良いでしょう・・・これで、25回以下に抑えられます。桁上がりは最後の四捨五入で全桁の繰り上がりがあったとすると、小数第二位から逆方向に最大3回です。

 一方、シフトを使った10倍法にも、8ビット→16ビットへの橋渡しとなる桁上がりが発生し得ます。この辺りの処理を考えていくと案外ステップ数を食ってしまい、あまり速い計算は難しくなってきます。

 ただ、まぁSWRの測定は「測定できるまでは待たされる」という当たり前の部分があって、そんなに高速な処理は不要でしょうから、実は今回のカップラのSWR算出論理は変に凝らずにこの技法でも良いかなぁ・・・と思っていたりして
関連記事

コメントの投稿

非公開コメント

Calendar
04 | 2023/05 | 06
Sun Mon Tue Wed Thu Fri Sat
- 1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31 - - -
New !
Category
Comments
Monthly Archives
Track Backs
Counter
Sunspot Now !

 


Survey Results

 

Profile

どよよん無線技士

Author :どよよん無線技士
こおるさいん:JM1DPL

アパマンというハンデにさらにQRPまで課し、失敗連続のヘッポコリグや周辺機器の製作・・・趣味というより「荒行」か!?

メールは「JARL経由」でお願いします。

Links
Follow me !
RSS Links
QR Code
QR