home *** CD-ROM | disk | FTP | other *** search
GW-BASIC | 1989-01-22 | 4.1 KB | 76 lines |
- 10 CLS: PRINT "COMBLINE FILTER DESIGN V1.1M (8/18/86)"
- 20 PRINT " *********************************************
- 30 PRINT " * *
- 40 PRINT " * BY DR. ALLEN KATZ, CHAIRMAN *
- 50 PRINT " * DEPT ELECTRONICS ENGINEERING TECHNOLOGY *
- 60 PRINT " * TRENTON STATE COLLEGE, CN550 *
- 70 PRINT " * TRENTON, NEW JERSEY 8625 *
- 80 PRINT " * *
- 90 PRINT " * THE AUTHOR RESERVES THE RIGHTS TO THIS *
- 100 PRINT " * PROGRAM; HOWEVER, COPYING AND USE FOR *
- 110 PRINT " * EDUCATIONAL PURPOSES IS ENCOURAGED. *
- 120 PRINT " * *
- 130 PRINT " * PLEASE REPORT ANY ERRORS OR PROBLEMS *
- 140 PRINT " * WITH THIS PROGRAM TO THE AUTHOR. *
- 150 PRINT " * TEL (609) 771 2487 *
- 160 PRINT " * *
- 170 PRINT " *********************************************
- 210 PRINT" Calculates the demensions of band pass microstrip comb line filters.
- 220 PRINT" Normalized low pass prototype values for the desired filter required.
- 240 PRINT:PRINT "CAPACITIVE-TAPED EQUAL END SECTION CASE": PRINT
- 250 DIM G(10), C(10), Z(10), ZO(10,10), ZE(10,10), A(10,10): REM PRECISION 5
- 260 PRINT: INPUT "CAPACITOR OR STUB LOADED CASE (C/S)"; C$
- 270 PRINT: INPUT "NUMBER OF FILTER SECTIONS"; N: PI=4*ATN(1): DR=PI/180
- 280 PRINT: PRINT "LOW PASS PROTOTYPE ELEMENTS:"
- 290 FOR I=0 TO N+1: PRINT "G("; I; ") ";: INPUT G(I): NEXT
- 300 PRINT: INPUT "FILTER CENTER FREQ IN MHZ AND FRACTIONAL BW"; F0, Q: W0=F0*2*PI*1E+06
- 310 INPUT "TERMINAL Z0 AND UNMATCHED Z"; RT, R
- 320 INPUT "RESONATOR LENGTH IN DEGREES"; AR
- 330 IF C$="C" THEN AS=45: GOTO 350
- 340 INPUT "TUNING STUB LENGTH IN DEGREES"; AS
- 350 LR=AR*DR: LS=AS*DR: G=1/R
- 360 TR=SIN(LR)/COS(LR): TS=SIN(LS)/COS(LS): PRINT
- 370 IF C$="C" THEN LF=2*LR/SIN(2*LR)+1: B=G*SQR(R/RT-1): GOTO 390
- 380 LF=2*LR/SIN(2*LR)+2*LS/SIN(2*LS): B=G*SQR(R/RT-1)
- 390 GX=Q*R/(G(0)*G(1)*2): K=B*GX*LF*TS/(1-B*GX*2*LR/SIN(2*LR))
- 400 Z(1)=K/B: Z(N)=Z(1): C=1/(1+K/TS): C(1)=B/(K*W0): C(N)=C(1)
- 410 IF C$="C" THEN LC=2*LR/SIN(2*LR)+C ELSE LC=2*LR/SIN(2*LR)+C*2*LS/SIN(2*LS)
- 420 A(1,2)=Q*SQR(LF*LC)/(2*SQR(G(1)*G(2))): A(N-1,N)=A(1,2)
- 430 ZR=GX*LC/(TR*(1-A(1,2)^2)): PRINT "RESONATOR Z =", ZR: PRINT
- 440 IF N<=3 THEN 490 ELSE FOR I=1 TO 6: FOR J=2 TO N-2: ZT(J)=Z(J)
- 450 A(J,J+1)=Q*LF*(1+(A(J-1,J)^2+A(J+1,J+2)^2)/2)/(2*SQR(G(J)*G(J+1)))
- 460 Z(J)=ZR*TS*TR*(1-A(J-1,J)^2-A(J,J+1)^2): C(J)=1/(W0*Z(J)): NEXT: NEXT
- 470 FOR J=2 TO N-2
- 480 IF ABS((ZT(J)-Z(J))/Z(J))>0.01 THEN PRINT "CONV. ER": END ELSE NEXT
- 490 IF N=2 THEN 500 ELSE J=N-1: Z(J)=ZR*TS*TR*(1-A(J-1,J)^2-A(J,J+1)^2): C(J)=1/(W0*Z(J))
- 495 IF C$="C" THEN 542
- 500 FOR J=1 TO N-1: ZE(J,J+1)=ZR*(1+A(J,J+1)): ZO(J,J+1)=ZR*(1-A(J,J+1))
- 520 PRINT "N"; J; TAB(6); "Z STUB"; Z(J); TAB(22); "Z0 EVEN ("; J; J+1; ")"; ZE(J,J+1); TAB(49); "Z0 ODD ("; J; J+1; ")"; ZO(J,J+1): NEXT
- 530 J=N: PRINT "N"; J; TAB(6); "Z STUB"; Z(J): GOTO 560
- 540 PRINT "N"; J; TAB(6); "CAP"; C(J); TAB(22); "Z0 EVEN ("; J; J+1; ")"; ZE(J,J+1); TAB(49); "Z0 ODD ("; J; J+1; ")"; ZO(J,J+1): NEXT
- 541 GOTO 550
- 542 FOR J=1 TO N-1: ZE(J,J+1)=ZR*(1+A(J,J+1)): ZO(J,J+1)=ZR*(1-A(J,J+1))
- 543 PRINT "N"; J; TAB(6); "CAP"; C(J); TAB(22); "Z0 EVEN ("; J; J+1; ")"; ZE(J,J+1); TAB(49); "Z0 ODD ("; J; J+1; ")"; ZO(J,J+1): NEXT
- 550 J=N: PRINT "N"; J; TAB(6); "CAP"; C(J)
- 560 PRINT: CC=G/(RT*B*F0*1E+06): PRINT "COUPLING CAPACITORS"; CC
- 570 PRINT: PRINT "WANT TO CHANGE: NOTHING (N), UNMATCHED Z (Z)
- 580 PRINT "LENGTH RESONATOR (LR), LENGTH STUB (LS)";: INPUT Q$
- 590 IF Q$="N" THEN 640 ELSE IF Q$="Z" THEN INPUT "NEW Z"; R: GOTO 350
- 600 IF Q$="LR" THEN INPUT "NEW RESONATOR LENGTH IN DEG"; AR: GOTO 350
- 610 IF Q$="LS" AND C$="C" THEN 570
- 620 IF Q$="LS" THEN INPUT "NEW STUB LENGTH IN DEG"; AS: GOTO 350
- 630 IF Q$="END" THEN END ELSE 570
- 640 PRINT: INPUT "WANT HARD COPY (Y/N)"; Q$
- 650 IF Q$="N" THEN END ELSE LPRINT
- 660 LPRINT, "COMBLINE FILTER DESIGN": LPRINT
- 670 LPRINT, "CENTER FREQ"; F0, "BANDWIDTH"; Q*F0
- 680 LPRINT, "Z TERMINAL"; RT,"Z UNMATCHED"; R
- 690 LPRINT, "LENGTH RESONATOR"; LR/DR, "LENGTH STUB"; LS/DR
- 700 LPRINT, "RESONATOR Z=", ZR: LPRINT: FOR J=1 TO N-1
- 710 IF C$<>"C" THEN 740
- 720 LPRINT, "N"; J; TAB(6); "CAP"; C(J); TAB(22); "Z0 EVEN ("; J; J+1; ")"; ZE(J,J+1); TAB(49); "Z0 ODD ("; J; J+1; ")"; ZO(J,J+1): NEXT
- 730 J=N: LPRINT, "N"; J; TAB(6); "CAP"; C(J): GOTO 760
- 740 LPRINT, "N"; J; TAB(6); "Z STUB"; Z(J); TAB(22); "Z0 EVEN ("; J; J+1; ")"; ZE(J,J+1); TAB(49); "Z0 ODD ("; J; J+1; ")"; ZO(J,J+1): NEXT
- 750 J=N: LPRINT, "N"; J; TAB(6); "Z STUB"; Z(J)
- 760 LPRINT: LPRINT, "COUPLING CAPACITORS"; CC: GOTO 570
-