Математическая основа фильтрации является сверткой. Для фильтра конечного импульсного ответа (FIR) вывод y (k) операции фильтрации является сверткой входного сигнала x (k) с импульсным ответом h (k):
Если входной сигнал имеет также конечную длину, можно реализовать операцию фильтрации с помощью
функции MATLAB® conv
. Например, чтобы отфильтровать случайный вектор с пятью выборками с фильтром усреднения третьего порядка, можно сохранить x (k) в векторном x
, h (k) в векторном h
, и применить операцию свертки к двум:
x = randn(5,1);
h = [1 1 1 1]/4; % A third-order filter has length 4
y = conv(h,x)
y = -0.3375 0.4213 0.6026 0.5868 1.1030 0.3443 0.1629 0.1787
y
является той меньше, чем сумма длин x
и h
.Передаточной функцией фильтра является Z-преобразование своего импульсного ответа. Для КИХ-фильтра Z-преобразование вывода y, Y (z), является продуктом передаточной функции и X (z), Z-преобразование входа x:
Полиномиальные коэффициенты h (1), h (2), …, h (n + 1) соответствуют коэффициентам импульсного ответа фильтра th-порядка n.
Содействующие индексы фильтра, запущенные от 1 до (n + 1), а не от 0 до n. Это отражает стандартную схему индексации, используемую для векторов MATLAB.
КИХ-фильтры также называются все-нулем, нерекурсивными фильтрами, или скользящего среднего значения (MA).
Для фильтра бесконечного импульсного ответа (IIR) передаточная функция не является полиномом, а рациональной функцией. Z-преобразования сигналов ввода и вывода связаны
где b (i) и a (i) является коэффициентами фильтра. В этом случае порядок фильтра является максимумом n и m. БИХ-фильтры с n = 0 также называются все-полюсом, рекурсивным, или авторегрессивным (AR) фильтры. БИХ-фильтры и с n и с m, больше, чем нуль, также называются нулем полюса, рекурсивное, или авторегрессивное скользящее среднее значение (ARMA) фильтры. AR акронимов, MA и ARMA обычно применяются к фильтрам, сопоставленным с отфильтрованными стохастическими процессами.
filter
Для БИХ-фильтров операция фильтрации описана не простой сверткой, а разностным уравнением, которое может быть найдено от отношения передаточной функции. Примите, что a (1) = 1, переместите знаменатель в левую сторону и возьмите обратное Z-преобразование, чтобы получить
С точки зрения текущих и прошлых входных параметров, и мимо выходных параметров, y (k)
который является стандартным представлением временного интервала цифрового фильтра. Начиная с y (1) и принятие причинной системы с нулевыми начальными условиями, представление эквивалентно
Чтобы реализовать эту операцию фильтрации, можно использовать функцию filter
MATLAB. filter
хранит коэффициенты в двух векторах - строках, один для числителя и один для знаменателя. Например, чтобы решить разностное уравнение
можно использовать
b = 1; a = [1 -0.9]; y = filter(b,a,x);
filter
дает вам столько же выходных выборок, сколько существуют входные выборки, то есть, длина y
совпадает с длиной x
. Если первый элемент a не 1, то filter
делит коэффициенты на a (1) прежде, чем реализовать разностное уравнение.conv
| designfilt
| filter