1  REM  ****  HP BASIC PROGRAM LIBRARY  ***********************
2  REM
3  REM        GENFIL:  DESIGNS PASSIVE FILTERS
4  REM
5  REM        36784  REV A  --  2/74
6  REM
7  REM  *****  CONTRIBUTED PROGRAM  *****************************
10  PRINT " BUTTERWORTH (0) OR CHEBISHEV (1) ";
11  DIM A[20]
12  DIM B[20]
13  DIM G[20]
20  INPUT A
30  PRINT "NO. OF ELEMENTS ";
40  INPUT N
50  IF A=1 THEN 90
60  FOR K=1 TO N
70  LET G[K]=2*(SIN((((2*K)-1)*3.142)/(2*N)))
80  NEXT K
82  GOTO 205
90  PRINT "WHAT IS ALLOWED RIPPLE ";
100  INPUT E
105  LET E=E/17.37
110  LET B=LOG((2.718^E+2.718^(-E))/(2.718^E-2.718^(-E)))
120  LET D=(2.718^(B/(2*N))-2.718^(-B/(2*N)))/2
130  FOR K=1 TO N
140  LET A[K]=SIN((((2*K)-1)*3.142)/(2*N))
150  LET B[K]=D^2+(SIN((K*3.142)/N))^2
160  NEXT K
170  LET G[1]=(2*A[1])/D
180  FOR K=2 TO N
190  LET G[K]=((4*A[K-1])*A[K])/(B[K-1]*G[K-1])
200  NEXT K
205  DIM C[20]
206  DIM L[20]
207  DIM M[21]
210  PRINT "LOW-PASS = 0, HIGH-PASS = 1, COHN BAND-PASS = 2"
220  PRINT "TYPE OF FILTER ";
221  INPUT Z
230  PRINT "CENTRE OR CUT-OFF FREQ. ";
231  INPUT W
232  PRINT "TERMINATING IMPEDANCE ";
233  INPUT R
234  LET W=2*3.142*W
240  IF Z=0 THEN 243
241  IF Z=1 THEN 260
242  IF Z=2 THEN 280
243  FOR I=1 TO N
244  LET C[I]=G[I]/(R*W)
246  LET L[I]=(G[I]*R)/W
248  NEXT I
249  PRINT 
250  PRINT "LOW-PASS FILTER"
251  PRINT "C INPUT";TAB(36);"L INPUT"
252  PRINT TAB(5)"C";TAB(21);"L";TAB(37);"L";TAB(54);"C"
253  FOR I=1 TO (N-2) STEP 2
254  PRINT C[I];TAB(17);L[I+1];TAB(34);L[I];TAB(50);C[I+1]
255  NEXT I
256  PRINT C[N];TAB(34);L[N]
257  PRINT 
258  PRINT 
259  GOTO 10
260  FOR I=1 TO N
261  LET C[I]=1/(G[I]*R*W)
262  LET L[I]=(R*1/G[I])/W
265  NEXT I
270  PRINT "HIGH-PASS FILTER"
271  PRINT 
272  GOTO 251
280  PRINT "REQUIRED BANDWIDTH ";
281  INPUT F
282  PRINT "INTENDED INDUCTANCES ";
283  INPUT H
284  LET F=2*3.142*F
285  LET W1=W+F/2
286  LET W2=W-F/2
287  LET W=W1+W2-SQR((W2-W1)^2+W1*W2)
288  LET F=(1/W2-1/W1)*W^2
290  LET P=1/((W^2)*H)
300  LET X=1-(F*P*R/G[1])
305  LET U=F*P/R*G[1]
310  LET Y=SQR(U)/(SQR(X)*W)
320  LET Z=(SQR(U)*SQR(X))/W
330  LET M[1]=Y
350  FOR I=2 TO N
360  LET M[I]=(F/W)*(P/SQR(G[I-1]*G[I]))
370  NEXT I
380  LET M[N+1]=M[1]
390  LET C[1]=P-(Z+M[2])
400  LET C[N]=C[1]
410  FOR I=2 TO (N-1)
420  LET C[I]=P-(M[I]+M[I+1])
425  NEXT I
426  PRINT 
430  PRINT "COHN STRUCTURE BAND-PASS FILTER"
440  PRINT "RESONATOR INDUCTANCE ="H
450  PRINT "RESONATOR CAPACITIES";TAB(30);"SERIES CAPACITIES"
470  FOR I=1 TO N
480  PRINT C[I];TAB(30);M[I]
490  NEXT I
500  PRINT TAB(30);M[N+1]
501  PRINT 
502  PRINT 
510  GOTO 10
520  END 
