Цифровые фильтры

В файлах iir.c и iir.h находится простая реализация рекурсивного цифрового фильтра. Пример использования:

#include "iir.h"

iir_t filter;

iir_init (&filter, 4, 0.000753760416177, 0.00301504166471,
	0.00452256249706, 0.00301504166471, 0.000753760416177,
	3.16981170873, -3.91147934979, 2.21056922286, -0.480961748453);

value = iir_filter (&filter, value);

Фильтры Чебышева

В книге "Digital signal processing" приводится программа для вычисления коэффициентов фильтра Чебышева. В файле cheb.py - вариант этой программы на языке Python.

Вызов для вычисления фильтра нижних частот:

python cheb.py "low-pass" cutoff npoles

или для фильтра верхних частот:

python cheb.py "high-pass" cutoff npoles

Здесь:

  • cutoff — частота среза, от 0 до 0.5 (от частоты дискретизации)
  • npoles — количество полюсов, от 2 до 20 (четное)

Пример:

python cheb.py "low-pass" 0.07 4

Результат:

Chebyshev filter: low-pass
Cutoff frequency: 0.07
 Number of poles: 4
  Percent ripple: 0.5

Stage 1:
        A = 0.0388306998038 0.0776613996076 0.0388306998038
        B = 1.51623806781 -0.592450666503
Stage 2:
        A = 0.0432862759754 0.0865725519509 0.0432862759754
        B = 1.65357364092 -0.811817381001
Coefficients:
        A = 0.000753760416177 0.00301504166471 0.00452256249706 0.00301504166471 0.000753760416177
        B = 3.16981170873 -3.91147934979 2.21056922286 -0.480961748453

Литература

Литература по цифровой обработке сигналов.

 
proj/digfilters.txt · Последние изменения: 2006/02/26 09:11 vak
 
Copyright (C) 1996-2013 Serge Vakulenko
serge@vak.ru