Программа 1
10 REM РАСЧЕТ АЧХ И ЗАТУХАНИЯ АНАЛОГОВОГО ФИЛЬТРА
20 OPEN “0”, “#1”, “:LP:”
30 DEFINT I-N
40 DEFSTR Q
50 INPUT “ВВЕДИТЕ ПОРЯДОК ФИЛЬТРА N” ;N
60 K=FIX(N/2)
70 DIM A(K), B(K), FF(K)
80 INPUT “ВВЕДИТЕ КОЭФФИЦИЕНТ С” :C
90 PRINT “ВВЕДИТЕ КОЭФФИЦИЕНТЫ A(I), B(I), FF(I)”
100 FOR I=0 TO K
110 PRINT “A(”; I;”) = ”;: INPUT A(I)
120 PRINT “B(”; I;”) = ”;: INPUT B(I)
130 PRINT “FF(”; I;”) = ”;: INPUT FF(I)
140 NEXT I
150 INPUT “ВВЕДИТЕ ТИП ФИЛЬТРА” :Q
160 INPUT “ВВЕДИТЕ ШАГ ПО ЧАСТОТЕ DF, КОЛИЧЕСТВО ТОЧЕК L” ;DF,L
170 PRINT #1,
180 PRINT #1, “ЧАСТОТА АЧХ ЗАТУХАНИЕ”
190 PRINT #1,
200 F=0
210 FOR I=1 TO L
220 F1=F^2
230 T=1
240 FOR I=1 TO K
250 AI=A(I)^2:BI=B(I)^2
260 T=T/SQR((AI+BI-F1)^2+4*AI*FI)^2)
270 IF Q=”C” OR Q=”I” THEN T=T*SQR((FF(I)^2-F1)^2)
280 NEXT I
290 IF N MOD 2 =1 THEN T=T/SQR(F1+A(0)^2)
300 IF Q= “I” AND N MOD 2 =0 THEN T=T/SQR(1+C^2) ELSE T=T/C
310 IF T<>0 THEN T1=-20*LOG(T)/LOG(10) ELSE T1=999
320 PRINT #1, USING “###.###” ;F;
330 PRINT #1, USING “########.###” ; T, T1
340 F=F+DF
350 NEXT I1
360 CLOSE #1
370 PRINT “ РАБОТА ОКОНЧЕНА”
380 END
В программе коэффициенты ai обозначаются как A(I); вi – B(I), a i – FF(I).
Построение графиков АЧХ и затухания по результатам расчетов.
Определение передаточной функции H(z) цифрового фильтра с помощью билинейного преобразования (таблица 1).
Контрольный расчет АЧХ и затухания полученного БИХ-фильтра по разработанной программе.
Например программа расчета АЧХ и затухания для передаточной функции вида
10 REM РАСЧЕТ АЧХ И ЗАТУХАНИЯ БИХ-ФИЛЬТРА
20 OPEN “0”, #1, “:LP:”
30 DEFINT M, L, K, I
40 INPUT “ВВЕДИТЕ КОЭФФИЦИЕНТ С” ;C
50 INPUT “ВВЕДИТЕ КОЛИЧЕСТВО ЗВЕНЬЕВ”;K
60 DIM B(2,K), A(2,K)
70 PRINT “ВВЕДИТЕ КОЭФИЦИЕНТЫ B(L,I), A(L,I)”
80 FOR I=1 TO K
90 FOR L=0 TO 2
100 PRINT “B(”;L;”,”;I;”)=”;:INPUT B(L,I)
110 PRINT “A(“;L;”,”;I;”)=”;:INPUT A(L,I)
120 NEXT L,I
130 INPUT “ВВЕДИТЕ КОЛИЧЕСТВО РАСЧЕТНЫХ ТОЧЕК M”;M
140 DW=.5/(M-1)
150 PRINT #1,
160 PRINT #1, “ЧАСТОТА АЧХ ЗАТУХАНИЕ”
170 PRINT #1,
180 W=0
190 FOR I1=1 TO M
200 W1=2*3.141592*W
210 H=1
220 FOR I=0 TO 2
230 S1=0:S2=0:S3=0:S4=0
240 FOR L=0 TO 2
250 G1=COS(L*W1):G2=SIN(L*W1)
260 S1=S1+B(L,I)*G1:S2=S2+B(L,I)*G2
270 S3=S3+A(L,I)*G1:S4=S4+A(L,I)*G2
280 NEXT L
290 H=H*(S1^2+S2^2)/(S3^2+S4^2)
300 NEXT I
310 H=C*SQR(H)
320 IF H<>0 THEN H1=-20*LOG(H)/LOG(10) ELSE H1=999
330 PRINT #1, USING “##.####” ;W;
340 PRINT #1, USING “########.####” ;H,H1
350 W=W+DW
360 NEXT I1
370 CLOSE #1
380 PRINT “ РАБОТА ОКОНЧЕНА”
390 END
-
ЧАСТОТА
АЧХ
ЗАТУХАНИЕ
0.0000
0.8660
1.2494
0.0250
0.8813
1.0978
0.0500
0.9250
0.6770
0.0750
0.9818
0.1595
0.1000
0.9918
0.0717
0.1250
0.8660
1.2494
0.1500
0.6453
3.8047
0.1750
0.4477
6.9799
0.2000
0.3077
10.2388
0.2250
0.2128
13.4398
0.2500
0.1477
16.6100
0.2750
0.1019
19.8379
0.3000
0.0688
23.2535
0.3250
0.0444
27.0591
0.3500
0.0262
31.6366
0.3750
0.0126
37.9808
0.4000
0.0026
51.7926
0.4250
0.0047
46.6491
0.4500
0.0095
40.4255
0.4750
0.0123
38.1766
0.5000
0.0133
37.5514
Построение графиков АЧХ и затухания полученного БИХ-фильтра.