home *** CD-ROM | disk | FTP | other *** search
/ HAM Radio 1 / HamRadio.cdr / tech / design1 / filt-pc.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1987-05-24  |  6.7 KB  |  178 lines

  1. 10  CLS
  2. 20  PRINT "PARALLEL COUPLED FILTER DESIGN PROGRAM USING MICROSTRIP"
  3. 30  PRINT "....BY LESTER STINES......VERSION 1.00......5/1/87.... "
  4. 40  PRINT ""
  5. 50  PRINT "EXPLANATION :                                            "
  6. 60  PRINT "    THIS PROGRAM USES DESIGN EQUATIONS FOR FILTERS        "
  7. 70  PRINT "USING HALF-WAVELENGTH MICROSTRIP RESONATORS, POSITIONED   "
  8. 80  PRINT "SO THAT EACH RESONATOR IS PARALLEL TO A ADJACENT          "
  9. 90  PRINT "RESONATOR ALONG HALF OF THEIR LENGTH. THE PARALLEL        "
  10. 100  PRINT "COUPLED RESONATOR CONFIGURATION IS ATTRACTIVE FOR THE     "
  11. 110  PRINT "DESIGN OF BANDPASS FILTERS USING MICROSTRIP. THIS PARALLEL"
  12. 120  PRINT "ARRANGEMENT ALLOWS FOR LARGER COUPLING BETWEEN A GIVEN   "
  13. 130  PRINT "SPACING OF RESONATOR STRIPS. THE USE OF THIS COUPLING    "
  14. 140  PRINT "CONFIGURATION PERMITS FILTER BANDWIDTHS UP TO            "
  15. 150  PRINT "APPROXIMATELY 15 PERCENT. A LARGER BANDWIDTH WOULD       "
  16. 160  PRINT "REQUIRE A TIGHTER COUPLING METHOD.                       "
  17. 170  PRINT ""
  18. 180  INPUT"DO YOU WISH TO CONTINUE (Y/N) :";C$
  19. 190  IF C$="Y" OR C$="y" THEN GOTO 210 ELSE GOTO 1770
  20. 200  REM ************************INPUT DATA**********************************
  21. 210  CLS
  22. 220  INPUT "ENTER THE DESIRED CENTER FREQUENCY OF THE FILTER (MHZ) :";FO
  23. 230  PRINT ""
  24. 240  INPUT "ENTER THE DESIRED STOPBAND FREQUENCY OF THE FILTER (MHZ) :";FS
  25. 250  PRINT ""
  26. 260  INPUT "ENTER THE 3 dB FRACTIONAL BANDWIDTH OF THE FILTER :";WB
  27. 270  PRINT ""
  28. 280  BM = 2/WB*ABS((FS-FO)/FO)
  29. 290  PRINT "DETERMINE THE REQUIRED BANDPASS FILTER CHARACTERISTICS"
  30. 300  PRINT "FROM THE TCHEBYSHEV FAMILY OF ATTENUATION CURVES FOR"
  31. 310  PRINT " | W'/W1'| - 1 =";BM-1,"WHERE W1'= 1"
  32. 320  PRINT ""
  33. 330  INPUT "ENTER THE NUMBER OF ELEMENTS REQUIRED IN THE DESIGN :";N1
  34. 340  PRINT ""
  35. 350  PRINT "FROM TABLE ENTER THE DESIRED N =";N1;"PROTOTYPE PARAMETERS"
  36. 360  DIM G(N1+1)
  37. 370  PRINT ""
  38. 380  FOR P = 1 TO N1
  39. 390  PRINT "ENTER PARAMETER G";P;" :" : INPUT G(P)
  40. 400  NEXT P
  41. 410  PRINT""
  42. 420  PRINT"IF G1 = C1' ENTER THE GENERATOR RESISTANCE, IF G1 = L1' THEN"
  43. 430  INPUT"ENTER THE GENERATOR CONDUCTANCE. ENTER Ro'OR Go':";G(0)
  44. 440  PRINT ""
  45. 450  PRINT"IF Gn = Cn' ENTER THE LOAD RESISTANCE, IF Gn = Ln' THEN ENTER"
  46. 460  INPUT"THE LOAD CONDUCTANCE. ENTER Rn'+1 OR GN'+1 :";G(N1+1)
  47. 470  PRINT ""
  48. 480  INPUT"ENTER THE CHARACTERISTIC IMPEDANCE OF THE TERMINATING LINES :";Z0
  49. 490  PRINT ""
  50. 500  INPUT"ENTER THE DIELECTRIC CONSTANT OF THE CIRCUIT BOARD :";ER
  51. 510  PRINT ""
  52. 520  INPUT"ENTER THE BOARD HEIGHT IN INCHES :";H1
  53. 530  PRINT""
  54. 540  INPUT"DO YOU WANT TO CONSIDER STRIP THICKNESS (Y/N) :";Q$
  55. 550  IF Q$="Y" OR Q$="y" THEN GOTO 560 ELSE GOTO 590
  56. 560  PRINT""
  57. 570  INPUT"ENTER THE STRIP THICKNESS IN INCHES :";T1
  58. 580  REM *********************CALCULATIONS***********************************
  59. 590  CLS
  60. 600  PRINT"CALCULATING..."
  61. 610  REM PROGRAM CALCULATIONS
  62. 620  PI = 3.14159
  63. 630  HP=PI/2
  64. 640  W2 = 1
  65. 650  DIM ZO1(N1) : DIM ZE1(N1)
  66. 660  FOR I = 1 TO (N1-1)
  67. 670  J1 = PI*WB/(SQR(G(I)*G(I+1))*2*W2)
  68. 680  ZE1(I) = Z0*(1+J1+J1^2)
  69. 690  ZO1(I) = Z0*(1-J1+J1^2)
  70. 700  NEXT I
  71. 710  J01 = SQR(PI*WB/(2*G(0)*G(1)))
  72. 720  ZE1(0) = Z0*(1+J01+J01^2)
  73. 730  ZO1(0) = Z0*(1-J01+J01^2)
  74. 740  JN1 = SQR(PI*WB/(2*G(N1)*G(N1+1)))
  75. 750  ZE1(N1) = Z0*(1+JN1+JN1^2)
  76. 760  ZO1(N1) = Z0*(1-JN1+JN1^2)
  77. 770  REM ******************WIDTH AND SPACING*********************************
  78. 780  DIM SP(N1) :DIM WT(N1) :DIM OEC(N1)
  79. 790  DEF FNCH(X)=(EXP(X)+EXP(-X))/2
  80. 800  DEF FNAC(X)=LOG(X+SQR(X*X-1))
  81. 810  DEF FNG(Y)=FNCH(HP*Y)
  82. 820  DEF FNH(X,Y)=FNCH(PI*X+HP*Y)
  83. 830  REM ******CALCULATE WAVELENGTH AND INPUT,OUTPUT WIDTHS******************
  84. 840  ZZ = Z0 :GOSUB 1390
  85. 850  EW = WD :VF = 1/SQR(EF) :WL = VF*11808/FO
  86. 860  REM *******************************************************************
  87. 870  FOR C = 0 TO N1
  88. 880  PRINT"                 ITERATION -";C
  89. 890  IF ER<=6 THEN K=4/(PI*(1+ER/2)) ELSE K=1/PI
  90. 900  ZZ=ZE1(C)/2 :GOSUB 1390 :RE=R :ZZ=ZO1(C)/2 :GOSUB 1390 :RO=R
  91. 910  G=(FNCH(HP*RE)+FNCH(HP*RO)-2)/(FNCH(HP*RO)-FNCH(HP*RE))
  92. 920  S1= FNAC(G)/HP :RP= FNCH(RE*HP) :HC=(G+G*RP+RP-1)/2
  93. 930  W1=(FNAC(HC)-HP*S1)/PI
  94. 940  REM **********************SEARCH****************************************
  95. 950  I=0
  96. 960  G=FNG(S1)
  97. 970  HC=FNH(W1,S1) :WE=FNAC((2*HC-G+1)/(G+1))/HP
  98. 980  WO=FNAC((2*HC-G-1)/(G-1))/HP+K*FNAC(1+2*(W1/S1))
  99. 990  DE=(WE-RE)/RE :DO=(WO-RO)/RO :I=I+1
  100. 1000  IF I=100 THEN PRINT "SECTION -";C;"DOES NOT CONVERGE !!!" :GOTO 1070
  101. 1010  IF DE>0.01 AND DO>0.01 THEN W1=W1-W1*(DO+DE) :GOTO 970
  102. 1020  IF DE<-0.01 AND DO<-0.01 THEN W1=W1-W1*(DO+DE) :GOTO 970
  103. 1030  IF DE>0.01 AND DO<-0.01 THEN S1=S1-S1*(DE-DO) :GOTO 960
  104. 1040  IF DE<-0.01 AND DO>0.01 THEN S1=S1+S1*(DO-DE) :GOTO 960
  105. 1050  IF ABS(DE)<=0.01 AND ABS(DO)>0.01 THEN S1=S1+S1*DO :GOTO 960
  106. 1060  IF ABS(DO)<=0.01 AND ABS(DE)>0.01 THEN S1=S1-S1*DO :GOTO 960
  107. 1070  REM ***********************FOUND****************************************
  108. 1080  R=WE :GOSUB 1440 :TE=ZT*2 :VT=EF :R=WO :GOSUB 1440 :OO=ZT*2 :OT=EF
  109. 1090  R=W1 :GOSUB 1440 :EF=SQR(VT*OT) :S=S1*H1
  110. 1100  SP(C)=S :WT(C)=WD
  111. 1110  OEC(C)=0.412*H1*(EF+0.3)*(WD/H1+0.262)/(EF-0.258)/(WD/H1+0.813)
  112. 1120  NEXT C
  113. 1130  FOR LP= 0 TO N1
  114. 1140  IF LP=0 THEN GOTO 1160 ELSE GOTO 1230
  115. 1150  REM *******************OUTPUT TO SCREEN*********************************
  116. 1160  CLS
  117. 1170  PRINT"BANDPASS FILTER DIMENSIONS FOR A PARALLEL COUPLED MICROSTRIP FILTER"
  118. 1180  PRINT""
  119. 1190  PRINT "CENTER FREQUENCY =";FO;"MHZ,","FREQUENCY OF STOPBAND =";FS;"MHZ"
  120. 1200  PRINT ""
  121. 1210  PRINT"SEC     ";"  SPACING";"              WIDTH";"       O.E.CORRECT"
  122. 1220  PRINT""
  123. 1230  PRINT "";LP;"    ";SP(LP),WT(LP),OEC(LP)
  124. 1240  NEXT LP
  125. 1250  PRINT ""
  126. 1260  PRINT "INPUT AND OUTPUT WIDTHS FOR A ZO OF ";Z0;" OHMS =";EW
  127. 1270  PRINT ""
  128. 1280  PRINT "ALL FILTER DIMENSIONS ARE IN INCHES."
  129. 1290  PRINT ""
  130. 1300  PRINT "ONE WAVELENGTH           =";WL;"INCHES"
  131. 1310  PRINT "3 dB BANDWIDTH OF FILTER =";WB*100;"%"
  132. 1320  PRINT "DIELECTRIC CONSTANT      =";ER
  133. 1330  PRINT "BOARD HEIGHT             =";H1;"INCHES"
  134. 1340  PRINT ""
  135. 1350  PRINT ""
  136. 1360  INPUT "DO YOU WANT A HARD COPY (Y/N) :";R$
  137. 1370  IF R$="Y" OR R$="y" THEN GOSUB 1540
  138. 1380  GOTO 1770
  139. 1390  REM ***********************SUB #1**************************************
  140. 1400  A=ZZ/60*SQR((ER+1)/2)+(ER-1)/(ER+1)*(0.23+0.11/ER)
  141. 1410  B=337*PI/(2*ZZ*SQR(ER))
  142. 1420  R=2*(B-1-LOG(2*B-1)+(ER-1)*(LOG(B-1)+0.39-0.61/ER)/(2*ER))/PI
  143. 1430  IF R>2 THEN 1440 ELSE R=8*EXP(A)/(EXP(2*A)-2)
  144. 1440  WD = R*H1 : X=1/R
  145. 1450  GOSUB 1490 :IF Q$<>"Y" OR Q$<>"y" THEN RETURN
  146. 1460  IF R>0.16 THEN Q=2*H1/T1 ELSE Q=4*PI*WD/T1
  147. 1470  DR=T1*(1+LOG(Q))/(PI*H1) :R=R-DR
  148. 1480  WD=R*H1 :RETURN
  149. 1490  REM ***********************SUB #2**************************************
  150. 1500  IF R<1 THEN 1520 ELSE EF=(ER+1)/2+(ER-1)/(2*SQR(1+12*X))
  151. 1510  ZT=120*PI/(SQR(EF)*(R+1.393+2*LOG(R+1.444)/3)) :RETURN
  152. 1520  EF=(ER+1)/2+(ER-1)/2*(1/SQR(1+12*X)+0.04*(1-R)^2)
  153. 1530  ZT=60*LOG(8*X+R/4)/SQR(EF) :RETURN
  154. 1540  REM ********************PRINTER ROUTINE********************************
  155. 1550  LPRINT ""
  156. 1560  FOR PP = 0 TO N1
  157. 1570  IF PP=0 THEN GOTO 1580 ELSE GOTO 1640
  158. 1580  LPRINT"BANDPASS FILTER DIMENSIONS A FOR PARALLEL COUPLED MICROSTRIP FILTER"
  159. 1590  LPRINT ""
  160. 1600  LPRINT "CENTER FREQUENCY =";FO;"MHZ,","FREQUENCY OF STOPBAND =";FS;"MHZ"
  161. 1610  LPRINT ""
  162. 1620  LPRINT"SEC     ";"  SPACING";"              WIDTH";"       O.E.CORRECT"
  163. 1630  LPRINT ""
  164. 1640  LPRINT "";PP;"    ";SP(PP),WT(PP),OEC(PP)
  165. 1650  NEXT PP
  166. 1660  LPRINT ""
  167. 1670  LPRINT "INPUT AND OUTPUT WIDTHS FOR A ZO OF ";Z0;" OHMS =";EW
  168. 1680  LPRINT ""
  169. 1690  LPRINT "ALL FILTER DIMENSIONS ARE IN INCHES."
  170. 1700  LPRINT""
  171. 1710  LPRINT "ONE WAVELENGTH           =";WL;"INCHES"
  172. 1720  LPRINT "3 dB BANDWIDTH OF FILTER =";WB*100;"%"
  173. 1730  LPRINT "DIELECTRIC CONSTANT      =";ER
  174. 1740  LPRINT "BOARD HEIGHT             =";H1;"INCHES"
  175. 1750  LPRINT ""
  176. 1760  RETURN
  177. 1770  END
  178.