#!/usr/bin/env perl # J-Pole Antenna Design # Assumes 1/2 inch copper pipe for all sections # and 50 ohm coax for feedline and balun. # Element C length is not critical. # Refer to ARRL Antenna Handbook for more information. # and http://qrp.cc.nd.edu/qrp-l/hints/jpole/JPOLE.HTML sub Cent { 2.54 * $inch; } sub Print { print "\33[H\33[J". " To Antenna ^ ^ \n". " ____| | \n". " ____ | | | \n". " | * | | | \n". " | * | |--| |--| | \n". " | * | | | | | | \n". " | * ____ | | | | | | Balun \n". " | * * | | | | |__| | 50 ohm\n". " A | * * | | | |______| \n". " | * * | B | | \n". " |____ * * ____| | | \n". " ***** | To Transmitter \n". " * 50 ohm \n". " * | \n". " ___| C \n\n"; } print "\n\n\t\tJ-Pole Antenna Design\n\n"; while (!$frq) { print "Enter center frequency (in MHz): "; chomp($frq = ); $frq =~ tr/0-9.//csd; } print "\n"; while (!$_) { print "Do you want to enter your own K factor? [y|n]: "; chomp($_ = ); tr/ynYN//csd; } print "\n"; if (/y/i) { while (!$k) { print "Enter K factor (0.??): "; chomp($k = ); $k =~ tr/0-9.//csd; } } elsif (/n/i) { $a = (((491.8 / $frq) * 2) * 12) / 0.5; if ($a < 20) { $k = 0.92; } elsif ($a >= 21 && $a <= 40) { $k = 0.93 } elsif ($a >= 41 && $a <= 100) { $k = 0.95; } elsif ($a >= 101 && $a <= 400) { $k = 0.96; } elsif ($a >= 401 && $a <= 2000) { $k = 0.97; } elsif ($a >= 2001 && $a <= 40000) { $k = 0.98; } elsif ($a > 40001) { $k = 0.99; } } print "\n"; while (!$vf) { print "Enter velocity factor for the coax (0.??): "; chomp($vf = ); $vf =~ tr/0-9.//csd; } $shrt_in = 2878 / $frq; $lng_in = $k * ((5904 / $frq) + $shrt_in); $balun = ($vf * 5904) / $frq; $space = (22 / $frq) * 12; $feed = (23 / $frq) * 12; &Print; print " K factor : $k\n"; printf " Element A : %.2f inches (%.2f cm)\n", $lng_in, &Cent($inch = $lng_in); printf " Element B : %.2f inches (%.2f cm)\n", $shrt_in, &Cent($inch = $shrt_in); printf " Element C : %.2f inches (%.2f cm)\n", $space, &Cent($inch = $space); printf " Balun : %.2f inches (%.2f cm)\n", $balun, &Cent($inch = $balun); printf " Feed point : %.2f inches (%.2f cm)\n\n", $feed, &Cent($inch = $feed);