Программа 33.3

 

1000 'ЭТА ПОДПРОГРАММА ВЫЗЫВАЕТСЯ ИЗ СТРОКИ 340 ПРОГРАММЫ 33.2

1010 '

1020 ' Входные переменные подпрограммы:   PI, FC, LH, PR, HP, P%

1030 ' Выходные переменные подпрограммы:  A0, A1, A2, B1, B2

1040 ' Внутренние переменные:             RP, IP, ES, VX, KX, T, W, M, D, K,

1050 '                                    X0, X1, X2, Y1, Y2

1060 '

1070 '                  'Вычисление координат полюса на единичной окружности

1080 RP = -COS(PI/(NP*2) + (P%-1) * PI/NP)

1090 IP = SIN(PI/(NP*2) + (P%-1) * PI/NP)

1100 '

1110 '                              'Преобразование окружности в эллипс

1120 IF PR = 0 THEN GOTO 1210

1130 ES = SQR( (100 / (100-PR))^2 -1 )

1140 VX = (1/NP) * LOG( (1/ES) + SQR( (1/ES^2) + 1) )

1150 KX = (1/NP) * LOG( (1/ES) + SQR( (1/ES^2) - 1) )

1160 KX = (EXP(KX) + EXP(-KX))/2

1170 RP = RP * ( (EXP(VX) - EXP(-VX) ) /2 ) / KX

1180 IP = IP * ( (EXP(VX) + EXP(-VX) ) /2 ) / KX

1190 '

1200 '                              'Преобразование S-области в Z-область

1210 T = 2 * TAN(1/2)

1220 W = 2*PI*FC

1230 M = RP^2 + IP^2

1240 D = 4 - 4*RP*T + M*T^2

1250 X0 = T^2/D

1260 X1 = 2*T^2/D

1270 X2 = T^2/D

1280 Y1 = (8 - 2*M*T^2)/D

1290 Y2 = (-4 - 4*RP*T - M*T^2)/D

1300 '                              'Преобразование НЧ-фильтра в НЧ-фильтр или

1310 '                              'НЧ-фильтра в ВЧ-фильтр

1320 IF LH = 1 THEN K = -COS(W/2 + 1/2) / COS(W/2 - 1/2)

1330 IF LH = 0 THEN K = SIN(1/2 - W/2) / SIN(1/2 + W/2)

1340 D = 1 + Y1*K - Y2*K^2

1350 A0 = (X0 - X1*K + X2*K^2)/D

1360 A1 = (-2*X0*K + X1 + X1*K^2 - 2*X2*K)/D

1370 A2 = (X0*K^2 - X1*K + X2)/D

1380 B1 = (2*K + Y1 + Y1*K^2 - 2*Y2*K)/D

1390 B2 = (-(K^2) - Y1*K + Y2)/D

1400 IF LH = 1 THEN A1 = -A1

1410 IF LH = 1 THEN B1 = -B1

1420 '

1430 RETURN