#!/usr/bin/python import math, sys from measure import parse_length, parse_freq #for 50% efficency k = 0.5 def dish_gain(wlen, diam): tmp = math.pi * diam / wlen return 10 * math.log10(tmp * tmp * k) if (len(sys.argv) != 3): print "Usage:\n{} <freq> <diam>".format(sys.argv[0]) else: freq, wlen_in, wlen_m = parse_freq(sys.argv[1], 'frequency') diam_in, diam_m = parse_length(sys.argv[2], 'diameter') gain = dish_gain(wlen_m, diam_m) print "gain: {:f} dB (assuming 50% efficency)\n".format(gain)
#!/usr/bin/python import math, sys from measure import parse_length, parse_freq def loss(wlen, dist): k = math.pi * 4 tmp = k * dist / wlen return 20 * math.log10(tmp) def freq_to_wlen(freq): return light_speed / freq if (len(sys.argv) != 3): print "Usage:\n{} <freq> <distance>".format(sys.argv[0]) else: dist_in, dist_m = parse_length(sys.argv[2]) freq_hz, wlen_in, wlen_m = parse_freq(sys.argv[1]) atten = loss(wlen_m, dist_m) print "atten: {:f} dB\n".format(atten)
#!/usr/bin/python import sys from math import log from measure import parse_length def calc_L(diam_in, len_in, turns): d = diam_in n = turns l = len_in return (d*d * n*n) / (18 * d + 40 * l) if (len(sys.argv) != 4): print "Usage:\n{} <diam> <len> <turns>".format(sys.argv[0]) else: diam_in, diam_m = parse_length(sys.argv[1], 'diam') len_in, len_m = parse_length(sys.argv[2], 'len') turns = int(sys.argv[3]) print "Diam: {:f} m, ({:f} in)".format(diam_m, diam_in) print "Length: {:f} m, ({:f} in)".format(len_m, len_in) print "Turns: {:d}".format(turns) LuH = calc_L(diam_in, len_in, turns) if (LuH < 1): LnH = LuH * 1000.0; print "Inductance {:f} nH".format(LnH) else: print "Inductance {:f} uH".format(LuH)
import sys from math import log from measure import parse_length def calc_L(width_in, distance_in, length_in): w = width_in b = length_in h = distance_in # formula from ARRL handbook. NB log is ln return 0.00508 * b * (log(2 * b / (w + h)) + 0.5 + 0.2235 * (w + h) / b) if (len(sys.argv) != 4): print "Usage:\n{} <track_width> <track_length> <distance>".format(sys.argv[0]) else: width_in, width_m = parse_length(sys.argv[1], 'width') length_in, length_m = parse_length(sys.argv[2], 'length') distance_in, distance_m = parse_length(sys.argv[3], 'distance') print "Width: {:f} m, ({:f} in)".format(width_m, width_in) print "Length: {:f} m, ({:f} in)".format(length_m, length_in) print "Distance: {:f} m, ({:f} in)".format(distance_m, length_in) LuH = calc_L(width_in, distance_in, length_in) if (LuH < 1): LnH = LuH * 1000.0; print "Inductance {:f} nH".format(LnH) else: print "Inductance {:f} uH".format(LuH)