filter

Одномерный цифровой фильтр fi объекты

Синтаксис

y = filter(b,1,x)
[y,zf] = filter(b,1,x,zi)
y = filter(b,1,x,zi,dim)

Описание

y = filter(b,1,x) фильтрует данные в векторе фиксированной точки x использование фильтра, описанного вектором фиксированной точки b. Функция возвращает отфильтрованные данные в выходе fi объект y. Входные параметры b и x должен быть fi объекты. filter всегда действует по первому неодноэлементному измерению. Таким образом фильтр действует по первому измерению для вектор-столбцов и нетривиальных матриц, и вдоль второго измерения для векторов-строк.

[y,zf] = filter(b,1,x,zi) предоставляет доступ к начальным и итоговым условиям задержек, zi, и zfzi вектор продолжительности длины (b)-1, или массив с ведущей размерностью длины размера (b)-1 и с остальными измерениями, совпадающими с теми из xzi должен быть fi объект с совпадающим типом данных как y и zf. Если вы не задаете значение для zi, это принимает значение по умолчанию к массиву фиксированной точки со значением 0 и соответствующий numerictype и размер.

y = filter(b,1,x,zi,dim) выполняет операцию фильтрации в заданном измерении. Если вы не хотите задавать вектор начальных условий, используйте [] для входного параметра zi.

Входные параметры

b

Вектор фиксированной точки коэффициентов фильтра.

x

Вектор фиксированной точки, содержащий данные для функции, чтобы отфильтровать.

zi

Вектор фиксированной точки, содержащий начальные условия задержек. Если начальные условия задержек являются нулем, можно задать нуль, или, если вы не знаете соответствующего размера и numerictype для ziИспользование.

Если вы не задаете значение для zi, значения по умолчанию параметра к вектору фиксированной точки со значением нуля и того же numerictype и размер как выход zf (значение по умолчанию).

dim

Размерность, по которой можно выполнить операцию фильтрации.

Выходные аргументы

y

Выходной вектор, содержащий отфильтрованные данные фиксированной точки.

zf

Выходной вектор фиксированной точки, содержащий итоговые условия задержек.

Примеры

свернуть все

Следующий пример фильтрует высокочастотную синусоиду фиксированной точки от сигнала, который содержит и минимум - и высокочастотную синусоиду фиксированной точки.

w1 = .1*pi;
w2 = .6*pi;
n  = 0:999;
xd = sin(w1*n) + sin(w2*n);
x  = sfi(xd,12);
b  = ufi([.1:.1:1,1-.1:-.1:.1]/4,10);
gd = (length(b)-1)/2;
y  = filter(b,1,x);
 
% Plot results, accommodate for group-delay of filter
plot(n(1:end-gd),x(1:end-gd))
hold on
plot(n(1:end-gd),y(gd+1:end),'r--')
axis([0 50 -2 2])
legend('Unfiltered signal','Filtered signal')
xlabel('Sample index (n)')
ylabel('Signal value')

Получившийся график показывает обоим неотфильтрованные и отфильтрованные сигналы.

Больше о

свернуть все

Отфильтруйте длину (L)

Длина фильтра является длиной (b), или количество коэффициентов фильтра задало в векторе фиксированной точки b.

Порядок фильтра (N)

Порядок фильтра является количеством состояний (задержки) фильтра и равен L-1.

Советы

  • filter функционируйте только поддерживает КИХ-фильтры. В общем представлении фильтра, b/a, знаменатель, a, КИХ-фильтра является скаляром 1, который является вторым входом этой функции.

  • numerictype из b может отличаться, чем numerictype из x.

  • Если вы хотите задать начальные условия, но не знаете что numerictype чтобы использовать, сначала попытайтесь фильтровать свои данные без начальных условий. Можно сделать так путем определения [] для входа zi. После выполнения операции фильтрации у вас есть numerictype из y и zf (если требуется). Поскольку numerictype из zi должен совпадать с тем из y и zf, вы теперь знаете numerictype использовать в начальных условиях.

Алгоритмы

свернуть все

filter функционируйте использует Прямую Форму Транспонированная КИХ-реализация следующего разностного уравнения:

y(n)=b1*xn+b2*xn1+...+bL*xnN

где L длина фильтра и N порядок фильтра.

Следующая схема показывает, что прямая форма транспонировала КИХ-структуру фильтра, используемую filter функция:

Правила Распространения fimath

filter функционируйте использует следующие правила относительно fimath поведение:

  • globalfimath повинуется.

  • Если какие-либо из входных параметров имеют присоединенный fimath, затем это используется в промежуточных вычислениях.

  • Если больше чем один вход имеет присоединенный fimath, затем fimaths должно быть равным.

  • Выход, y, всегда сопоставляется с fimath по умолчанию.

  • Если входной вектор, zi, имеет присоединенный fimath, затем выходной вектор, zf, сохраняет этот fimath.

Расширенные возможности

Смотрите также

|

Введен в R2010a