exponenta event banner

firceqrip

Ограниченный эквиптный фильтр FIR

Синтаксис

B = firceqrip(n,Fo,DEV)
B = firceqrip(...,'slope',r)
B = firceqrip('minorder',[Fp Fst],DEV)
B = firceqrip(...,'passedge')
B = firceqrip(...,'stopedge')
B = firceqrip(...,'high')
B = firceqrip(...,'min')
B = firceqrip(...,'invsinc',C)
B = firceqrip(...,'invdiric',C)

Описание

B = firceqrip(n,Fo,DEV) конструирует заказ n фильтр (длина фильтра равна n + 1) фильтр КИХ нижних частот с линейной фазой.

firceqrip производит те же эквириптные фильтры нижних частот, что и firpm производит, используя алгоритм Паркса-Макклеллана. Разница заключается в том, как указать признаки фильтра для функции.

Входной аргумент Fo задает частоту на верхнем крае полосы пропускания в нормализованной частоте (0 <Fo<1). Двухэлементный вектор dev указывает пиковую или максимальную допустимую ошибку в полосе пропускания и полосах останова. Войти [d1 d2] для dev где d1 устанавливает ошибку полосы пропускания и d2 устанавливает ошибку полосы останова.

B = firceqrip(...,'slope',r) использует входное ключевое слово 'slope«и входной аргумент» r конструирование фильтра с неэквриппельной стоп-полосой. r задается как положительная постоянная и определяет наклон затухания полосы останова в дБ/нормированной частоте. Большие значения r приводят к увеличению затухания полосы останова в дБ/нормированной частоте.

B = firceqrip('minorder',[Fp Fst],DEV) фильтр конструкций с минимальным количеством коэффициентов, необходимых для удовлетворения отклонений в DEV = [d1 d2] при ширине перехода не более FstFpразность между граничными частотами полосы останова и полосы пропускания. Можно указать 'mineven' или 'minodd' вместо 'minorder' для проектирования фильтров минимального четного порядка (нечетная длина) или минимального нечетного порядка (четная длина) соответственно. 'minorder' не применяется при указании 'min' (минимальная фаза), 'invsinc', или 'invdiric' варианты.

B = firceqrip(...,'passedge') создает фильтр, где Fo определяет частоту начала отката полосы пропускания.

B = firceqrip(...,'stopedge') создает фильтр, где Fo определяет частоту, с которой начинается полоса останова.

B = firceqrip(...,'high') конструирует фильтр FIR верхних частот вместо фильтра нижних частот.

B = firceqrip(...,'min') конструирует фильтр с минимальной фазой.

B = firceqrip(...,'invsinc',C) создает фильтр нижних частот, отклик по величине которого имеет форму обратной синк-функции. Это может быть использовано для компенсации синк-подобных откликов в частотной области, таких как эффект удержания нулевого порядка в цифроаналоговом преобразователе. Величина компенсации в полосе пропускания контролируется C, который задается как скалярный или двухэлементный вектор. Элементы C указаны следующим образом:

  • Если C подается как действительный скаляр или первый элемент двухэлементного вектора, firceqrip создает фильтр с амплитудным откликом 1/sinc (C*pi*F) где F - нормированная частота.

  • Если C подается в виде двухэлементного вектора, отклик обратной синк-формы величины поднимается до положительной мощности C(2). Если мы установим P=C(2), firceqrip создает фильтр с амплитудным откликом 1/sinc (C*pi*F) P.

Если этот фильтр FIR используется с каскадным фильтром интегратора-гребенки (CIC), установка C(2) равное числу ступеней компенсирует мультипликативный эффект последовательных синк-подобных откликов фильтров ЦВК.

Примечание

Поскольку значение обратной функции sinc становится неограниченным при C=1/F, значение C должна быть больше, чем обратная частота края полосы пропускания. Это может быть выражено как Fo<1/C. Для пользователей, знакомых с прореживателями CIC, C равно 1/2 произведения дифференциальной задержки и коэффициента прореживания.

B = firceqrip(...,'invdiric',C) создает фильтр нижних частот с полосой пропускания, которая имеет форму обратной синк-функции Дирихле. Частотная характеристика обратной функции Дирихле sinc задаётся {rC (sin (f/2r) sin (Cf/2)}, где C, r и p - скаляры. ВходC может быть скаляром или вектором, содержащим 2 или 3 элемента. Если C является скаляром, p и r равно 1. Если C - двухэлементный вектор, первый элемент - C и вторым элементом является p, [C p]. Если C является трехэлементным вектором, третий элемент - r, [C p r].

Примеры

Чтобы представить несколько вариантов фильтров FIR, которые вы проектируете с помощью firceqrip, эти пять примеров охватывают оба синтаксиса по умолчанию b = firceqrip(n,wo,del) и некоторые необязательные входные аргументы. Для каждого примера входные аргументы n, wo, и del остаются прежними.

Проектирование фильтра с использованием firceqrip

Проектирование фильтра FIR 30-го порядка с использованием firceqrip.

b = firceqrip(30,0.4,[0.05 0.03]); fvtool(b)

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.

Проектирование фильтра FIR минимального порядка с использованием firceqrip. Частоты края полосы пропускания и края полосы останова составляют 0,35δ и 0,45δ рад/выборка. Допустимые отклонения составляют 0,02 и 1е-4.

b = firceqrip('minorder',[0.35 0.45],[0.02 1e-4]); fvtool(b)

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.

Проектирование фильтра FIR 30-го порядка с помощью stopedge ключевое слово для определения ответа на краю полосы останова фильтра.

b = firceqrip(30,0.4,[0.05 0.03],'stopedge'); fvtool(b)

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.

Проектирование фильтра FIR 30-го порядка с помощью slope ключевое слово и r = 20.

b = firceqrip(30,0.4,[0.05 0.03],'slope',20,'stopedge'); fvtool(b)

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.

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

b = firceqrip(30,0.4,[0.05 0.03],'stopedge','min'); fvtool(b)

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. Частота отсечки wo = 0.4 теперь применяется к краю полосы останова, а не к точке, в которой величина частотной характеристики равна 0,5.

Просмотр графика нулевого полюса, показанного здесь, показывает, что это фильтр с минимальной фазой FIR - нули лежат на единичной окружности или внутри нее, z = 1

fvtool(b,'polezero')

Figure Filter Visualization Tool - Pole-Zero Plot contains an axes and other objects of type uitoolbar, uimenu. The axes with title Pole-Zero Plot contains 4 objects of type line, text.

Проектирование фильтра FIR 30-го порядка с помощью invsinc ключевое слово для формирования полосы пропускания фильтра с обратной функцией sinc.

b = firceqrip(30,0.4,[0.05 0.03],'invsinc',[2 1.5]); fvtool(b)

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.

Применяемая обратная функция sinc определяется как 1/sinc (2 * w) ^ 1.5.

Инверсно-дирихлетовидная полоса пропускания

Спроектируйте два ограниченно установленных эквиппельных КИХ-фильтра порядка 30 с инверсно-дирихлетовидными полосами пропускания. Частота отсечки в обеих конструкциях составляет pi/4 радиана/образец. Набор C=1 в одной конструкции C=2 во второй конструкции. Максимальная полоса пропускания и пульсация полосы останова составляет 0,05. Набор p=1 в одной конструкции и p=2 во второй конструкции.

Спроектируйте фильтры.

b1 = firceqrip(30,0.25,[0.05 0.05],'invdiric',[1 1]);
b2 = firceqrip(30,0.25,[0.05 0.05],'invdiric',[2 2]);

Получение частотных характеристик фильтра с помощью freqz. Постройте график откликов величины.

 [h1,~] = freqz(b1,1);
 [h2,w] = freqz(b2,1);
 plot(w,abs(h1)); hold on;
 plot(w,abs(h2),'r');
 axis([0 pi 0 1.5]);
 xlabel('Radians/sample');
 ylabel('Magnitude');
 legend('C=1 p=1','C=2 p=2');

Figure contains an axes. The axes contains 2 objects of type line. These objects represent C=1 p=1, C=2 p=2.

Осмотрите пульсацию стоп-полосы в проекте с помощью C=1 и p=1. Ограниченная конструкция устанавливает максимальную пульсацию 0,05. Увеличьте масштаб стоп-полосы от частоты отсечения pi/4 радиан/образец до 3pi/4 радиан/образец.

 figure;
 plot(w,abs(h1));
 set(gca,'xlim',[pi/4 3*pi/4]);
 grid on;

Figure contains an axes. The axes contains an object of type line.

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

.
Представлен в R2011a