home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1987-05-24 | 6.7 KB | 178 lines |
- 10 CLS
- 20 PRINT "PARALLEL COUPLED FILTER DESIGN PROGRAM USING MICROSTRIP"
- 30 PRINT "....BY LESTER STINES......VERSION 1.00......5/1/87.... "
- 40 PRINT ""
- 50 PRINT "EXPLANATION : "
- 60 PRINT " THIS PROGRAM USES DESIGN EQUATIONS FOR FILTERS "
- 70 PRINT "USING HALF-WAVELENGTH MICROSTRIP RESONATORS, POSITIONED "
- 80 PRINT "SO THAT EACH RESONATOR IS PARALLEL TO A ADJACENT "
- 90 PRINT "RESONATOR ALONG HALF OF THEIR LENGTH. THE PARALLEL "
- 100 PRINT "COUPLED RESONATOR CONFIGURATION IS ATTRACTIVE FOR THE "
- 110 PRINT "DESIGN OF BANDPASS FILTERS USING MICROSTRIP. THIS PARALLEL"
- 120 PRINT "ARRANGEMENT ALLOWS FOR LARGER COUPLING BETWEEN A GIVEN "
- 130 PRINT "SPACING OF RESONATOR STRIPS. THE USE OF THIS COUPLING "
- 140 PRINT "CONFIGURATION PERMITS FILTER BANDWIDTHS UP TO "
- 150 PRINT "APPROXIMATELY 15 PERCENT. A LARGER BANDWIDTH WOULD "
- 160 PRINT "REQUIRE A TIGHTER COUPLING METHOD. "
- 170 PRINT ""
- 180 INPUT"DO YOU WISH TO CONTINUE (Y/N) :";C$
- 190 IF C$="Y" OR C$="y" THEN GOTO 210 ELSE GOTO 1770
- 200 REM ************************INPUT DATA**********************************
- 210 CLS
- 220 INPUT "ENTER THE DESIRED CENTER FREQUENCY OF THE FILTER (MHZ) :";FO
- 230 PRINT ""
- 240 INPUT "ENTER THE DESIRED STOPBAND FREQUENCY OF THE FILTER (MHZ) :";FS
- 250 PRINT ""
- 260 INPUT "ENTER THE 3 dB FRACTIONAL BANDWIDTH OF THE FILTER :";WB
- 270 PRINT ""
- 280 BM = 2/WB*ABS((FS-FO)/FO)
- 290 PRINT "DETERMINE THE REQUIRED BANDPASS FILTER CHARACTERISTICS"
- 300 PRINT "FROM THE TCHEBYSHEV FAMILY OF ATTENUATION CURVES FOR"
- 310 PRINT " | W'/W1'| - 1 =";BM-1,"WHERE W1'= 1"
- 320 PRINT ""
- 330 INPUT "ENTER THE NUMBER OF ELEMENTS REQUIRED IN THE DESIGN :";N1
- 340 PRINT ""
- 350 PRINT "FROM TABLE ENTER THE DESIRED N =";N1;"PROTOTYPE PARAMETERS"
- 360 DIM G(N1+1)
- 370 PRINT ""
- 380 FOR P = 1 TO N1
- 390 PRINT "ENTER PARAMETER G";P;" :" : INPUT G(P)
- 400 NEXT P
- 410 PRINT""
- 420 PRINT"IF G1 = C1' ENTER THE GENERATOR RESISTANCE, IF G1 = L1' THEN"
- 430 INPUT"ENTER THE GENERATOR CONDUCTANCE. ENTER Ro'OR Go':";G(0)
- 440 PRINT ""
- 450 PRINT"IF Gn = Cn' ENTER THE LOAD RESISTANCE, IF Gn = Ln' THEN ENTER"
- 460 INPUT"THE LOAD CONDUCTANCE. ENTER Rn'+1 OR GN'+1 :";G(N1+1)
- 470 PRINT ""
- 480 INPUT"ENTER THE CHARACTERISTIC IMPEDANCE OF THE TERMINATING LINES :";Z0
- 490 PRINT ""
- 500 INPUT"ENTER THE DIELECTRIC CONSTANT OF THE CIRCUIT BOARD :";ER
- 510 PRINT ""
- 520 INPUT"ENTER THE BOARD HEIGHT IN INCHES :";H1
- 530 PRINT""
- 540 INPUT"DO YOU WANT TO CONSIDER STRIP THICKNESS (Y/N) :";Q$
- 550 IF Q$="Y" OR Q$="y" THEN GOTO 560 ELSE GOTO 590
- 560 PRINT""
- 570 INPUT"ENTER THE STRIP THICKNESS IN INCHES :";T1
- 580 REM *********************CALCULATIONS***********************************
- 590 CLS
- 600 PRINT"CALCULATING..."
- 610 REM PROGRAM CALCULATIONS
- 620 PI = 3.14159
- 630 HP=PI/2
- 640 W2 = 1
- 650 DIM ZO1(N1) : DIM ZE1(N1)
- 660 FOR I = 1 TO (N1-1)
- 670 J1 = PI*WB/(SQR(G(I)*G(I+1))*2*W2)
- 680 ZE1(I) = Z0*(1+J1+J1^2)
- 690 ZO1(I) = Z0*(1-J1+J1^2)
- 700 NEXT I
- 710 J01 = SQR(PI*WB/(2*G(0)*G(1)))
- 720 ZE1(0) = Z0*(1+J01+J01^2)
- 730 ZO1(0) = Z0*(1-J01+J01^2)
- 740 JN1 = SQR(PI*WB/(2*G(N1)*G(N1+1)))
- 750 ZE1(N1) = Z0*(1+JN1+JN1^2)
- 760 ZO1(N1) = Z0*(1-JN1+JN1^2)
- 770 REM ******************WIDTH AND SPACING*********************************
- 780 DIM SP(N1) :DIM WT(N1) :DIM OEC(N1)
- 790 DEF FNCH(X)=(EXP(X)+EXP(-X))/2
- 800 DEF FNAC(X)=LOG(X+SQR(X*X-1))
- 810 DEF FNG(Y)=FNCH(HP*Y)
- 820 DEF FNH(X,Y)=FNCH(PI*X+HP*Y)
- 830 REM ******CALCULATE WAVELENGTH AND INPUT,OUTPUT WIDTHS******************
- 840 ZZ = Z0 :GOSUB 1390
- 850 EW = WD :VF = 1/SQR(EF) :WL = VF*11808/FO
- 860 REM *******************************************************************
- 870 FOR C = 0 TO N1
- 880 PRINT" ITERATION -";C
- 890 IF ER<=6 THEN K=4/(PI*(1+ER/2)) ELSE K=1/PI
- 900 ZZ=ZE1(C)/2 :GOSUB 1390 :RE=R :ZZ=ZO1(C)/2 :GOSUB 1390 :RO=R
- 910 G=(FNCH(HP*RE)+FNCH(HP*RO)-2)/(FNCH(HP*RO)-FNCH(HP*RE))
- 920 S1= FNAC(G)/HP :RP= FNCH(RE*HP) :HC=(G+G*RP+RP-1)/2
- 930 W1=(FNAC(HC)-HP*S1)/PI
- 940 REM **********************SEARCH****************************************
- 950 I=0
- 960 G=FNG(S1)
- 970 HC=FNH(W1,S1) :WE=FNAC((2*HC-G+1)/(G+1))/HP
- 980 WO=FNAC((2*HC-G-1)/(G-1))/HP+K*FNAC(1+2*(W1/S1))
- 990 DE=(WE-RE)/RE :DO=(WO-RO)/RO :I=I+1
- 1000 IF I=100 THEN PRINT "SECTION -";C;"DOES NOT CONVERGE !!!" :GOTO 1070
- 1010 IF DE>0.01 AND DO>0.01 THEN W1=W1-W1*(DO+DE) :GOTO 970
- 1020 IF DE<-0.01 AND DO<-0.01 THEN W1=W1-W1*(DO+DE) :GOTO 970
- 1030 IF DE>0.01 AND DO<-0.01 THEN S1=S1-S1*(DE-DO) :GOTO 960
- 1040 IF DE<-0.01 AND DO>0.01 THEN S1=S1+S1*(DO-DE) :GOTO 960
- 1050 IF ABS(DE)<=0.01 AND ABS(DO)>0.01 THEN S1=S1+S1*DO :GOTO 960
- 1060 IF ABS(DO)<=0.01 AND ABS(DE)>0.01 THEN S1=S1-S1*DO :GOTO 960
- 1070 REM ***********************FOUND****************************************
- 1080 R=WE :GOSUB 1440 :TE=ZT*2 :VT=EF :R=WO :GOSUB 1440 :OO=ZT*2 :OT=EF
- 1090 R=W1 :GOSUB 1440 :EF=SQR(VT*OT) :S=S1*H1
- 1100 SP(C)=S :WT(C)=WD
- 1110 OEC(C)=0.412*H1*(EF+0.3)*(WD/H1+0.262)/(EF-0.258)/(WD/H1+0.813)
- 1120 NEXT C
- 1130 FOR LP= 0 TO N1
- 1140 IF LP=0 THEN GOTO 1160 ELSE GOTO 1230
- 1150 REM *******************OUTPUT TO SCREEN*********************************
- 1160 CLS
- 1170 PRINT"BANDPASS FILTER DIMENSIONS FOR A PARALLEL COUPLED MICROSTRIP FILTER"
- 1180 PRINT""
- 1190 PRINT "CENTER FREQUENCY =";FO;"MHZ,","FREQUENCY OF STOPBAND =";FS;"MHZ"
- 1200 PRINT ""
- 1210 PRINT"SEC ";" SPACING";" WIDTH";" O.E.CORRECT"
- 1220 PRINT""
- 1230 PRINT "";LP;" ";SP(LP),WT(LP),OEC(LP)
- 1240 NEXT LP
- 1250 PRINT ""
- 1260 PRINT "INPUT AND OUTPUT WIDTHS FOR A ZO OF ";Z0;" OHMS =";EW
- 1270 PRINT ""
- 1280 PRINT "ALL FILTER DIMENSIONS ARE IN INCHES."
- 1290 PRINT ""
- 1300 PRINT "ONE WAVELENGTH =";WL;"INCHES"
- 1310 PRINT "3 dB BANDWIDTH OF FILTER =";WB*100;"%"
- 1320 PRINT "DIELECTRIC CONSTANT =";ER
- 1330 PRINT "BOARD HEIGHT =";H1;"INCHES"
- 1340 PRINT ""
- 1350 PRINT ""
- 1360 INPUT "DO YOU WANT A HARD COPY (Y/N) :";R$
- 1370 IF R$="Y" OR R$="y" THEN GOSUB 1540
- 1380 GOTO 1770
- 1390 REM ***********************SUB #1**************************************
- 1400 A=ZZ/60*SQR((ER+1)/2)+(ER-1)/(ER+1)*(0.23+0.11/ER)
- 1410 B=337*PI/(2*ZZ*SQR(ER))
- 1420 R=2*(B-1-LOG(2*B-1)+(ER-1)*(LOG(B-1)+0.39-0.61/ER)/(2*ER))/PI
- 1430 IF R>2 THEN 1440 ELSE R=8*EXP(A)/(EXP(2*A)-2)
- 1440 WD = R*H1 : X=1/R
- 1450 GOSUB 1490 :IF Q$<>"Y" OR Q$<>"y" THEN RETURN
- 1460 IF R>0.16 THEN Q=2*H1/T1 ELSE Q=4*PI*WD/T1
- 1470 DR=T1*(1+LOG(Q))/(PI*H1) :R=R-DR
- 1480 WD=R*H1 :RETURN
- 1490 REM ***********************SUB #2**************************************
- 1500 IF R<1 THEN 1520 ELSE EF=(ER+1)/2+(ER-1)/(2*SQR(1+12*X))
- 1510 ZT=120*PI/(SQR(EF)*(R+1.393+2*LOG(R+1.444)/3)) :RETURN
- 1520 EF=(ER+1)/2+(ER-1)/2*(1/SQR(1+12*X)+0.04*(1-R)^2)
- 1530 ZT=60*LOG(8*X+R/4)/SQR(EF) :RETURN
- 1540 REM ********************PRINTER ROUTINE********************************
- 1550 LPRINT ""
- 1560 FOR PP = 0 TO N1
- 1570 IF PP=0 THEN GOTO 1580 ELSE GOTO 1640
- 1580 LPRINT"BANDPASS FILTER DIMENSIONS A FOR PARALLEL COUPLED MICROSTRIP FILTER"
- 1590 LPRINT ""
- 1600 LPRINT "CENTER FREQUENCY =";FO;"MHZ,","FREQUENCY OF STOPBAND =";FS;"MHZ"
- 1610 LPRINT ""
- 1620 LPRINT"SEC ";" SPACING";" WIDTH";" O.E.CORRECT"
- 1630 LPRINT ""
- 1640 LPRINT "";PP;" ";SP(PP),WT(PP),OEC(PP)
- 1650 NEXT PP
- 1660 LPRINT ""
- 1670 LPRINT "INPUT AND OUTPUT WIDTHS FOR A ZO OF ";Z0;" OHMS =";EW
- 1680 LPRINT ""
- 1690 LPRINT "ALL FILTER DIMENSIONS ARE IN INCHES."
- 1700 LPRINT""
- 1710 LPRINT "ONE WAVELENGTH =";WL;"INCHES"
- 1720 LPRINT "3 dB BANDWIDTH OF FILTER =";WB*100;"%"
- 1730 LPRINT "DIELECTRIC CONSTANT =";ER
- 1740 LPRINT "BOARD HEIGHT =";H1;"INCHES"
- 1750 LPRINT ""
- 1760 RETURN
- 1770 END
-