Чем фильтр скользящего среднего отличается от фильтра конечной импульсной характеристики?

Фильтр скользящего среднего является частным случаем обычного фильтра конечной импульсной характеристики. Оба фильтра имеют конечные импульсные характеристики. Фильтр скользящего среднего использует последовательность масштабированных 1с в качестве коэффициентов, в то время как коэффициенты конечной импульсной характеристики разработаны на основе спецификаций фильтра. Они обычно не являются последовательностью 1с.

Скользящее среднее значение потоковых данных вычисляется конечным скользящим окном:

movAvg=x[n]+x[n1]+...+x[nN]N+1

N + 1 - длина фильтра. Этот алгоритм является частным случаем регулярного КИХ-фильтра с вектором коэффициентов [b 0, b 1,..., b N].

FIROutput=b0x[n]+b1x[n1]+...+bNx[nN]

Чтобы вычислить вывод, регулярный КИХ-фильтр умножает каждую выборку данных на коэффициент из вектора [b 0, b 1,..., b N] и добавляет результат. Фильтр скользящего среднего не использует никаких умножителей. Алгоритм добавляет все выборки данных и умножает результат на 1/ filterLength.

Частотная характеристика скользящего среднего фильтра и конечной импульсной характеристики

Сравните частотную характеристику фильтра скользящего среднего с частотой обычного фильтра конечной импульсной характеристики. Установите коэффициенты регулярной конечной импульсной характеристики как последовательность масштабированных 1-х. Масштабный коэффициент 1/|filterLength|.

Создайте dsp.FIRFilter Система object™ и устанавливает свои коэффициенты равными 1/40. Чтобы вычислить скользящее среднее значение, создайте dsp.MovingAverage Системный объект с раздвижным окном длиной 40. Оба фильтра имеют одинаковые коэффициенты. Входной вход является Гауссовым белым шумом со средним значением 0 и стандартным отклонением 1.

filter = dsp.FIRFilter('Numerator',ones(1,40)/40);
mvgAvg = dsp.MovingAverage(40);
input = randn(1024,1);
filterOutput = filter(input);
mvgAvgOutput = mvgAvg(input);

Визуализируйте частотную характеристику обоих фильтров с помощью fvtool.

hfvt = fvtool(filterOutput,1,mvgAvgOutput,1);
legend(hfvt,'FIR Filter','Moving Average Filter');

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains 2 objects of type line. These objects represent FIR Filter, Moving Average Filter.

Частотные характеристики точно совпадают, что доказывает, что фильтр скользящего среднего является частным случаем конечной импульсной характеристики фильтра.

Для сравнения просмотрите частотную характеристику фильтра без шума.

fvtool(filter);

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains an object of type line.

Сравните частотную характеристику фильтра с характеристикой идеального фильтра. Можно видеть, что основной лепесток в полосе пропускания не плоский, а рябь в полосе стопора не ограничена. Частотная характеристика фильтра скользящего среднего не совпадает с частотной характеристикой идеального фильтра.

Чтобы реализовать идеальный конечная импульсная характеристика, измените коэффициенты фильтра на вектор, который не является последовательностью масштабированных 1с. Частотная характеристика фильтра изменяется и имеет тенденцию двигаться ближе к идеальной фильтрующей характеристики.

Проектируйте коэффициенты фильтра на основе предопределенных спецификаций фильтра. Для примера спроектируйте конечную импульсную характеристику фильтр равновесия с нормализованной частотой отключения 0,1, неравномерность в полосе пропускания 0,5 и затухание в полосе задерживания 40 дБ. Использование fdesign.lowpass для определения спецификаций фильтра и design способ разработки фильтра.

FIReq = fdesign.lowpass('N,Fc,Ap,Ast',40,0.1,0.5,40);
filterCoeff = design(FIReq,'equiripple','SystemObject',true);
fvtool(filterCoeff)

Figure Filter Visualization Tool - Magnitude Response (dB) contains an axes and other objects of type uitoolbar, uimenu. The axes with title Magnitude Response (dB) contains 2 objects of type line.

Реакция фильтра в полосе пропускания почти плоская (подобна идеальной реакции), и полоса остановки имеет ограниченные равновесия.

Похожие темы