Custom RF Scripts
CommentsScripts Based on Pozar's Microwave Engineering
See Resources for a link to Pozar's book.
Series Stub Impedance Matching
This (crude) script can be used to calculate single, series stubs (both open and short) as described in Chapter 5. It may be refined in time, but it works for now.
import math print("") # Blank line ZL = 100 - 100j YL = 1.0/ZL RL = ZL.real XL = ZL.imag GL = YL.real BL = YL.imag Z0 = 50.0 Y0 = 1.0/Z0 # Calculating t root = math.sqrt((GL*(((Y0-GL)**2.0)+(BL**2.0)))/Y0) den = GL - Y0 t1 = (BL + root)/den t2 = (BL - root)/den print("t1 is " + str(t1)) print("t2 is " + str(t2)) # Calculate d if t1<0: d1 = (1.0/(2.0*math.pi)) * (math.pi+math.atan(t1)) else: d1 = (1.0/(2.0*math.pi)) * (math.atan(t1)) print("d1 is: "+ str(d1) + " *lambda") if d1 < 0: print("Since d1<0, d1 actually is: " + str(d1+.5) + " *lambda") if t2<0: d2 = (1.0/(2.0*math.pi)) * (math.pi+math.atan(t2)) else: d2 = (1.0/(2.0*math.pi)) * (math.atan(t2)) print("d2 is: "+ str(d2) + " *lambda") if d2 < 0: print("Since d1<0, d1 actually is: " + str(d1+.5) + " *lambda") # Calc X x1 = (((GL**2.0)*t1)-((Y0-(t1*BL))*(BL+(t1*Y0))))/(Y0*((GL**2.0)+((BL+(Y0*t1))**2.0))) x2 = (((GL**2.0)*t2)-((Y0-(t2*BL))*(BL+(t2*Y0))))/(Y0*((GL**2.0)+((BL+(Y0*t2))**2.0))) print("x1 is: "+str(x1)) print("x2 is: "+str(x2)) # Calc l lo1 = (1.0/(2.0*math.pi))*math.atan(Z0/x1) lo2 = (1.0/(2.0*math.pi))*math.atan(Z0/x2) print("lo1 is: "+str(lo1)) print("lo2 is: "+str(lo2+.5)) # Calc l ls1 = (-1.0/(2.0*math.pi))*math.atan(x1/Z0) ls2 = (-1.0/(2.0*math.pi))*math.atan(x2/Z0) print("ls1 is: "+str(ls1+.5)) print("ls2 is: "+str(ls2))
Backlinks:
High Speed Design Wiki:Software Tools
Contact Stephen with any questions: Stephen@ShieldDigitalDesign.com
© Shield Digital Design