#author("2024-11-14T16:49:54+09:00","default:JR1GDY","JR1GDY")
#author("2024-11-14T16:52:56+09:00","default:JR1GDY","JR1GDY")
[[ハム活動記]]

*SWRとミスマッチロスの関係 [#ad7c1760]

久々のプログラミングネタです

SWRの計算です&mimetex(\frac{SWR-1}{SWR+1});で反射係数が求められます。~
それを2乗して100掛けたものが、ロス割合ですので、下記の様な計算式になります。

perlでは浮動小数点が苦手なのでそのままprint関数せずにprintf関数を使って浮動小数点を明記してあげます~
下記の様になります

なお、四捨五入も下記の様なルーチンです

アマチュアではSWRが3迄は許容範囲と言われる所以です、私は2.5以下に抑えています。
-144MHzと433MHzはSWR計のメーターは振れずSWR=1です
-3.5MHzは1.5
-7.1MHzは1.2
-10.1MHzは1.5
-14〜28は2.0以下
-50MHzは1.2付近です
----
perl で計算 1〜10迄0.1刻みで
perl で計算 1〜10迄0.1刻みです~
下記ソースをフィルにコピペして、ファイル名はswr.plとし、ターミナルから
 perl swr.pl
これで画面にSWRリストが出力されるはずです。試してみてネ

 my $hansya_keisuu;
 my $swr;
 
 for ($swr=1; $swr<10; $swr+=0.1){
 	$hansya_keisuu = ($swr-1) / ($swr+1);
 	my $loss = ($hansya_keisuu**2) * 100;
 	$loss = round($loss,1);
 	printf ("swr:%.01f  loss:%.01f%\n",$swr,$loss);
 }
 
 ### 四捨五入 -------------------------------------------------
 sub round {
     my $val = shift;    # 四捨五入する数
     my $col = shift;    # 小数点以下のどこまで残すか
     my $r = 10 ** $col;
     my $a = ($val > 0) ? 0.5 : -0.5;
     return int($val * $r + $a) / $r;
 }


小数点以下削除(int)整数表示

 swr=1  loss=0 %
 swr=1.1  loss=0 %
 swr=1.2  loss=0 %
 swr=1.3  loss=1 %
 swr=1.4  loss=2 %
 swr=1.5  loss=4 %
 swr=1.6  loss=5 %
 swr=1.7  loss=6 %
 swr=1.8  loss=8 %
 swr=1.9  loss=9 %

 swr=2  loss=11 %
 swr=2.1  loss=12 %
 swr=2.2  loss=14 %
 swr=2.3  loss=15 %
 swr=2.4  loss=16 %
 swr=2.5  loss=18 %
 swr=2.6  loss=19 %
 swr=2.7  loss=21 %
 swr=2.8  loss=22 %
 swr=2.9  loss=23 %

 swr=3  loss=25 %
 swr=3.1  loss=26 %
 swr=3.2  loss=27 %
 swr=3.3  loss=28 %
 swr=3.4  loss=29 %
 swr=3.5  loss=30 %
 swr=3.6  loss=31 %
 swr=3.7  loss=33 %
 swr=3.8  loss=34 %
 swr=3.9  loss=35 %

 swr=4  loss=36 %
 swr=4.1  loss=36 %
 swr=4.2  loss=37 %
 swr=4.3  loss=38 %
 swr=4.4  loss=39 %
 swr=4.5  loss=40 %
 swr=4.6  loss=41 %
 swr=4.7  loss=42 %
 swr=4.8  loss=42 %
 swr=4.9  loss=43 %
 swr=5  loss=44 %

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS