Математическим фундаментом фильтрации является свертка. Для фильтра с конечной импульсной характеристикой (КИХ) выходным 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) соответствуют коэффициентам импульсной характеристики фильтра n-го порядка.
Примечание
Индексы коэффициентов фильтра выполняются от 1 до (n + 1), а не от 0 до n. Это отражает стандартную схему индексации, используемую для векторов MATLAB.
Конечная импульсная характеристика также называются фильтрами с нулем, нерекурсивными или скользящим средним (MA).
Для фильтра с бесконечной импульсной характеристикой (БИХ) передаточная функция является не полиномиальной, а рациональной функцией. 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) и принимая причинную систему с нулевыми начальными условиями, представление эквивалентно
Для реализации этой операции фильтрации можно использовать MATLAB filter
функция. filter
сохраняет коэффициенты в два векторов-строк, один для числителя и один для знаменателя. Для примера решить разностное уравнение
вы можете использовать
b = 1; a = [1 -0.9]; y = filter(b,a,x);
filter
дает вам столько выходных выборок, сколько есть входных выборок, то есть длину y
совпадает с длиной x
. Если первый элемент a не 1, то filter
делит коэффициенты на a (1) перед реализацией разностного уравнения.conv
| designfilt
| filter