ハム活動記

SWRとミスマッチロスの関係

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

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

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

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

アマチュアではSWRが3迄は許容範囲と言われる所以です、私は2.5以下に抑えています。


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
Last-modified: 2024-11-14 (木) 16:52:56