示例#1
0
#!/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)
示例#2
0
#!/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)
示例#3
0
#!/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)
示例#4
0
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)