Even Order Passive Elliptic
Main Software Page

10 DEFDBL A-Z
20 PRINT "ANTIMETRIC ELLIPIC FILTERS, CCT12/78, 1008"
30 FILTY=0:FILCHAR=0:SLR=1:DUAL=1:DENORM2=1
1030 DIM B(16),C(16),D(16),E(30),F(16),R(15),S(15),DB(16),TB(16)
1031 DIM  ZER(60,2),POLE(60,2)
1032 IZERO=0:IPOLE=0
1040 DN=LOG(10)/10:PI=3.1415926#
1050 PRINT
1060 PRINT "REJECTION, RIPPLE(DB),1/2-DEG(2-15), TYPE (A,B, OR C):"
1065 INPUT AS2,AP,M,T$
1066 NUMX = 20
1070 IF AS2 <= AP THEN STOP
1090 N=2*M
2010 ES=EXP(DN*AS2)-1
2020 EP=EXP(DN*AP)-1
2030 V=SQR(ES/EP)+SQR(ES/EP-1)
2040 U=PI*PI/(2*LOG(V+V))
2050 V=V/(SQR(ES)+SQR(ES+1))
2060 W=U*LOG(V+SQR(V*V+1))/PI
2070 W=SIN(W)/COS(W):AO=W:W=W*W
2080 Y=EXP(-U):Z=Y:K=M-1
2090 FOR J = 1 TO N
2100 E(J)=1:NEXT J
2110 FOR J = 1 TO 1024
2120 IF K<>M THEN GOTO 2150
2130 X=((1-Z)/(1+Z))^2
2140 AO=AO*(W+X)/(1+W*X)
2150 E(K)=E(K)*(1-Z)/(1+Z)
2160 Z=Z*Y: IF Z<2.5E-19 THEN GOTO 2180
2165 K=K-1
2170 IF K = 0 THEN K=N
2175 NEXT J
2180 E(M)=0:E(N)=E(N)*E(N)
2190 PRINT "U=";U;"AO=";AO;"EP=";E(N)
2200 FOR J = 1 TO M-1
2210 E(J)=-E(J)*E(N-J)
2220 PRINT "E=";-E(J)
2230 E(N-J)=-E(J):NEXT J
2250 X= SQR(AO*AO+1/(AO*AO)+E(N)*E(N)+1/(E(N)*E(N)))
2260 FOR J = 1 TO M-1 STEP 2: K=(J+1)/2
2270 Y=AO*E(J):Y=Y+1/Y
2280 Z=E(N)*E(J)
2290 R(K)=E(M-J)*(1/Z-Z)/Y:S(K)=-X/Y
2300 PRINT "RE=";R(K);"SE=";S(K)
2310 R(M-K+1)=R(K)
2320 S(M-K+1)=-S(K):NEXT J
2330 IF K+K=M THEN GOTO 3010
2340 R(K+1)=-AO:S(K+1)=0
2350 PRINT "RE=";-AO
3010 IT=2:IF T$="A" THEN IT=1
3020 EB=-E(1):IF T$="A" THEN EB=E(N)
3030 EO=E(N): IF T$="C" THEN EO=-E(1)
3040 FP=SQR((E(N)+EO)/(1+E(N)*EB))
3050 FS=SQR((1+E(N)*EO)/(E(N)+EB))
3060 D(1)=0
3065 FOR J = IT TO M
3070 D(J)=(E(2*J-1)+EB)/(1+E(2*J-1)*EO)
3080 F(J)=SQR(1/D(J)):NEXT J
3100 SR=0:TQ=0:T0=0:B(1)=0:I=1
3110 FOR J = 1 TO M
3120 W=(AO^2+E(2*J-1)^2)/(1+(AO*E(2*J-1))^2)
3130 X=(1+EO*EB)*S(J)+EO+EB*W
3140 Y=EO^2+2*EO*S(J)+W
3150 Z=1+2*EB*S(J)+EB^2*W
3160 U=SQR(Y/Z):V=X/Z
3170 R(J)=SQR((U-V)/2):S(J)=SQR((U+V)/2)
3175 IPOLE=IPOLE+1
3177 POLE(IPOLE,1)=-R(J)/FP:POLE(IPOLE,2)=S(J)/FP
3179 IPOLE=IPOLE+1
3180 PRINT "RF=";-R(J)/FP;"SF=";S(J)/FP
3181 POLE(IPOLE,1)=-R(J)/FP:POLE(IPOLE,2)=-S(J)/FP
3200 SR=SR+R(J)/U
3210 I=-I:W=I*R(J)/S(J)
3220 TQ=(TQ+W)/(1-TQ*W)
3230 IF T$<>"A" GOTO 3270
3240 U=(F(2)-S(J))/R(J):V=(F(2)+S(J))/R(J)
3250 W=I*(V-U)/(1+U*V)
3260 T0=(T0+W)/(1-T0*W)
3270 B(1)=B(1)+R(J):NEXT J
4010 IF T$="A" THEN T0=T0/(1+SQR(1+T0*T0))
4020 FOR K = IT TO M
4030 DB(K)=0:TB(K)=T0:I=1
4040 FOR J = 1 TO M
4050 DB(K)=DB(K)+1/(R(J)+(F(K)-S(J))^2/R(J))+1/(R(J)+(F(K)+S(J))^2/R(J))
4070 I = -I:W=(F(K)-I*S(J))/R(J)
4080 TB(K)=(TB(K)+W)/(1-TB(K)*W):NEXT J:NEXT K
5010 D(M+1)=D(M):F(M+1)=F(M):DB(M+1)=DB(M):TB(M+1)=TB(M):C(1)=0
5020 FOR J = 1 TO M+1-IT STEP 2
5030 TB(M+1-J)=-1/TB(M+1-J):NEXT J
5040 FOR J = IT TO M+1
5050 B(J)=(1+TB(J)^2)*DB(J)/(4*D(J))-TB(J)*F(J)/2
5060 C(J)=TB(J)/F(J):NEXT J
6010 FOR L = 1 TO 2
6020 FOR K = L+2 TO M+1 STEP 2
6030 FOR J = L TO K-2 STEP 2
6040 U=C(J)-C(K)
6050 V=1/(U/(B(J)*(D(K)-D(J)))-1)
6060 B(K)=(B(K)-B(J))*V*V-B(J)*(V+V+1)
6070 C(K)=U*V:NEXT J:NEXT K:NEXT L
7010 W=1:IF T$<>"C" THEN W=((1-TQ*T0)/(TQ+T0))^2
7020 FOR J = 1 TO M+1 STEP 2:B(J)=B(J)*W
7030 C(J)=C(J)*W:NEXT J
7040 PRINT "LD RESIS =";W;"   (";1/W;"   )"
7050 PRINT TAB(10);"L(C)";TAB(30);"C(L)";TAB(50);"PEAK"
7052 IF T$<>"A" THEN PRINT "  1                                       ";FP/B(1)
7060 REM
7062 REM FOR TYPE C ELLIPTIC FILTERS, STOPBAND EDGE = FS/FP AND NOT PZSCALE2
7064 PZSCALE2 = FS/FP
7066 REM
7085 V=0
7090 FOR J = IT TO M
7095 V=V+C(J)
7096 PRINT J;FP*C(J);FP/B(J);F(J)/FP
7097 NEXT J
7098 PRINT M+1;FP*C(M+1);"STPDB EDGE = ";FS/FP
7099 PRINT "TESTS ";B(M)/B(M+1)-1;(W+1)*SR-V-C(M+1)
8000 STOP
The following examples correspond to Figure 7.6, Table 7.2, equation (7.27), (7.29) and (7.31), and example 7.5 for elliptic type-a, type-b, and type-c implementations. The values in parenthesis would be used for implementation of a network dual (reference chapter 6, Duality and Reciprocity). The values given for RF and SF are the poles of the voltage transfer function, G(s). For type-a
REJECTION, RIPPLE(DB), 1/2-DEG(2-15), TYPE(A,B, OR C)
? 40,3,3,A
U= 0.82332693553922	AO=0.2296353108218732	EP=0.7106330752644
E=0.6263291057810176
E=0.374908159728896
RE=-9.517945787731751D-02	SE=0.6534081024395546
RE=-0.2296353108218732
RF=-1.168111217932183D-02	SF=0.9937797945078053
RF=-6.654472809240142D-02	SF=0.8809429907526448
RF=-0.2038118378411714		SF=0.4198476596368662
LD RESIS = 5.808899444425789	(0.1721496489252536)

	L(C)				C(L)			PEAK
1	-0.2486535799918705	0.5442446714777546	2.640083397927738
2	2.41298146685094	0.4121297384782688	1.220696624744963
3	2.755554805462586	0.2542370375954297	1.069838852537977
4	2.112437472774575	stpdb edge = 1.058914522870861


For type-b

REJECTION, RIPPLE(DB), 1/2-DEG(2-15), TYPE(A,B, OR C)
? 40,3,3,B
U= 0.82332693553922	AO=0.2296353108218732	EP=0.7106330752644
E=0.6263291057810176
E=0.374908159728896
RE=-9.517945787731751D-02	SE=0.6534081024395546
RE=-0.2296353108218732
RF=-1.359506620399677D-02	SF=0.9927096281135206
RF=-7.347347652631826D-02	SF=0.8638289465452303
RF=-0.195340838186894		SF=0.3898992196756554
LD RESIS = 5.808899444425789	(0.1721496489252536)

	L(C)			C(L)				PEAK
1				0.6095748249089779
2	2.536746048131171	0.4508445435835205	1.274114538352594
3	2.937673034828391	0.2742942351119816	1.083031150550583
4	2.278798027486919	stpdb edge = 1.069838852537977


For type-c

REJECTION, RIPPLE(DB), 1/2-DEG(2-15), TYPE(A,B, OR C)
? 40,3,3,C
U= 0.82332693553922	AO=0.2296353108218732	EP=0.7106330752644
E=0.6263291057810176
E=0.374908159728896
RE=-9.517945787731751D-02	SE=0.6534081024395546
RE=-0.2296353108218732
RF=-1.584642399560751D-02	SF=00.9915254673231737
RF=-.0879419143137565		SF=0.8402218817147896
RF=-0.325416647904805		SF=0.2724816311468957
LD RESIS = 1	(1)

	L(C)			C(L)				PEAK
1				2.329889028482919
2	1.836813453833249	0.8234170159417645	1.313671011294058
3	0.9116017598193474	0.7382454897654718	1.096064676798804
4	1.14313632053807	stpdb edge = 1.080875883444048	
Tests -2.518985020572018D-12	-2.939870569207415D-13

Main Software Page