Математическим фундаментом фильтрации является свертка. Для фильтра с конечной импульсной характеристикой (КИХ) выходной сигнал y (k) операции фильтрации представляет собой свертку входного сигнала x (k) с импульсной характеристикой h (k):
− l).
Если входной сигнал также имеет конечную длину, можно выполнить операцию фильтрации с помощью 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.1787y на единицу меньше суммы длин x и h.Передаточной функцией фильтра является Z-преобразование его импульсной характеристики. Для КИХ-фильтра Z-преобразование выходного сигнала y, Y (z), является произведением передаточной функции и X (z), Z-преобразование входного сигнала x:
(n + 1) z − n) X (z).
Коэффициенты многочлена h (1), h (2),..., h (n + 1) соответствуют коэффициентам импульсной характеристики фильтра n-го порядка.
Примечание
Индексы коэффициентов фильтра работают от 1 до (n + 1), а не от 0 до n. Это отражает стандартную схему индексирования, используемую для векторов MATLAB.
Фильтры FIR также называются фильтрами всех нулей, невосстановительных или скользящих средних (MA).
Для фильтра с бесконечной импульсной характеристикой (БИХ) передаточная функция является не многочленом, а рациональной функцией. Z-преобразования входного и выходного сигналов связаны
a (2) z − 1 +... + a (m + 1) z − mX (z),
где b (i) и a (i) - коэффициенты фильтра. В этом случае порядок фильтра равен максимуму n и m. фильтры БИХ с n = 0 также называются всеполюсными, рекурсивными или авторегрессионными (AR) фильтрами. Фильтры IIR с n и m больше нуля также называются полюсно-нулевыми, рекурсивными или авторегрессионными фильтрами скользящего среднего (ARMA). Сокращения AR, MA и ARMA обычно применяются к фильтрам, связанным с отфильтрованными стохастическими процессами.
filter ФункцияДля БИХ-фильтров операция фильтрации описывается не простым свёртыванием, а уравнением разности, которое можно найти из соотношения «передача-функция». Предположим, что a (1) = 1, переместите знаменатель в левую сторону и выполните обратное Z-преобразование, чтобы получить
) x (k − 1) +⋯+b (n + 1) x (k − n).
С точки зрения текущих и прошлых входов и прошлых выходов y (k) равно
(k − 1) −⋯−a (m + 1) y (k − m),
которое является стандартным представлением во временной области цифрового фильтра. Начиная с y (1) и предполагая причинную систему с нулевыми начальными условиями, представление эквивалентно
+b (n) x (1) −a (2) год (n−1) − ⋯−a (n) y (1).
Для реализации этой операции фильтрации можно использовать MATLAB. filter функция. filter сохраняет коэффициенты в двух векторах строк, один для числителя и один для знаменателя. Например, для решения уравнения разности
1X (z) = H (z) X (z),
вы можете использовать
b = 1; a = [1 -0.9]; y = filter(b,a,x);
filter дает вам столько выходных выборок, сколько есть входных выборок, то есть длину y совпадает с длиной x. Если первый элемент не равен 1, то filter делит коэффициенты на a (1) перед реализацией уравнения разности.conv | designfilt | filter