Программа 16

Программа 16.1

100 'НИЗКОЧАСТОТНЫЙ ОКОННЫЙ ФИЛЬТР
110 'Данная программа предназначена для обработки 5000 отсчётов
120 'и получения 4900 отсчётов выходного сигнала.
130 '
140 DIM X[5000] 'X[ ] – массив отсчётов входного сигнала
150 DIM Y[5000] 'Y[ ] – массив отсчётов выходного сигнала
160 DIM H[100] 'H[ ] – массив весовых коэффициентов НЧ-фильтра
170 '
180 PI = 3.14159265
190 FC = .14 'Определение частоты среза (в диапазоне 0…0.5)
200 M% = 100 'Определение порядка фильтра (101-й порядок)
210 '
220 GOSUB XXXX 'Некоторая подпрограмма загрузки данных в X[ ]
230 '
240 ' 'Вычисление весовых коэффициентов НЧ-фильтра (16.4)
250 FOR I% = 0 TO 100
260 IF (I%-M%/2) = 0 THEN H[I%] = 2*PI*FC
270 IF (I%-M%/2) <> 0 THEN H[I%] = SIN(2*PI*FC * (I%-M%/2)) / (I%-M%/2)
280 H[I%] = H[I%] * (0.54 - 0.46*COS(2*PI*I%/M%) )
290 NEXT I%
300 '
310 SUM = 0 'Нормирование коэффициентов НЧ-фильтра для получения
320 FOR I% = 0 TO 100 'единичного коэффициента усиления на нулевой частоте
330 SUM = SUM + H[I%]
340 NEXT I%
350 '
360 FOR I% = 0 TO 100
370 H[I%] = H[I%] / SUM
380 NEXT I%
390 '
400 FOR J% = 100 TO 4999 'Операция свёртки с входным сигналом
410 Y[J%] = 0
420 FOR I% = 0 TO 100
430 Y[J%] = Y[J%] + X[J%-I%] * H[I%]
440 NEXT I%
450 NEXT J%
460 '
470 END