Программа 20

Программа 20.1

100 'ФИЛЬТР ЧЕБЫШЕВА – ВЫЧИСЛЕНИЕ ВЕСОВЫХ КОЭФФИЦИЕНТОВ
110 '
120 'НАЧАЛЬНЫЕ ЗНАЧЕНИЯ
130 DIM A[22] 'В массив А записываются коэффициенты ai
140 DIM B[22] 'В массив В записываются коэффициенты bi
150 DIM TA[22] 'Массив ТА используется для объединения звеньев
160 DIM TB[22] 'Массив ТВ используется для объединения звеньев
170 '
180 FOR I% = 0 TO 22
190 A[I%] = 0
200 B[I%] = 0
210 NEXT I%
220 '
230 A[2] = 1
240 B[2] = 1
250 PI = 3.14159265
260 'ВВОД ЧЕТЫРЁХ ПАРАМЕТРОВ ФИЛЬТРА
270 INPUT "Введите частоту среза(от 0 до .5): ", FC
280 INPUT "Введите 0 для НЧ-фильтра, 1 для ВЧ-фильтра: ", LH
290 INPUT "Введите уровень неравномерности АЧХ в процентах (0…29): ", PR
300 INPUT "Введите количество полюсов (2,4,..20): ", NP
310 '
320 FOR P% = 1 TO NP/2 'ЦИКЛ ДЛЯ КАЖДОЙ ПАРЫ ПОЛЮСОВ
330 '
340 GOSUB 1000 'к Программе 20.2
350 '
360 FOR I% = 0 TO 22 'Добавление коэффициентов
370 TA[I%] = A[I%]
380 TB[I%] = B[I%]
390 NEXT I%
400 '
410 FOR I% = 2 TO 22
420 A[I%] = A0*TA[I%] + A1*TA[I%-1] + A2*TA[I%-2]
430 B[I%] = TB[I%] - B1*TB[I%-1] - B2*TB[I%-2]
440 NEXT I%
450 '
460 NEXT P%
470 '
480 B[2] = 0 'Окончание объединения коэффициентов
490 FOR I% = 0 TO 20
500 A[I%] = A[I%+2]
510 B[I%] = -B[I%+2]
520 NEXT I%
530 '
540 SA = 0 'НОРМИРОВАНИЕ КОЭФФИЦИЕНТА УСИЛЕНИЯ
550 SB = 0
560 FOR I% = 0 TO 20
570 IF LH = 0 THEN SA = SA + A[I%]
580 IF LH = 0 THEN SB = SB + B[I%]
590 IF LH = 1 THEN SA = SA + A[I%] * (-1)^I%
600 IF LH = 1 THEN SB = SB + B[I%] * (-1)^I%
610 NEXT I%
620 '
630 GAIN = SA / (1 - SB)
640 '
650 FOR I% = 0 TO 20
660 A[I%] = A[I%] / GAIN
670 NEXT I%
680 ' 'Результирующие коэффициенты содержатся в A[ ] и B[ ]
690 END